Python 3.7上的Flask比使用Google App Engine标准环境的Python 2.7上的webapp2要求更高(也更昂贵)

2024-05-23 23:20:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我最近将[python 2.7/webapp2]中构建的一个非常简单的项目移植到[python 3.7/Flask],在上个月,我看到成本从0美元提高到了20美元

该项目非常简单(90行代码):只有两个请求处理程序,它们根据查询字符串中传递的值返回不同的json。除了略微不同的语法之外,代码中几乎没有什么不同。流量和请求也没有太大变化,如果有什么变化的话,也会减少

在账单中,我可以看到前端时间是如何显著增加的,以及GAE是如何比以前更频繁地增加实例的

有没有人经历过同样的行为?python 3.7和Flask是否比2.7上的webapp2“重”

为了完整起见,这两个版本都部署了标准的vanilla gcloud app deploy,没有其他选项。它在F1实例上使用标准环境,没有后台工作人员或任务。app.yaml与实例设置相关的部分基本相同:

env: standard
instance_class: F1
automatic_scaling:
  min_idle_instances: automatic
  max_idle_instances: automatic
  min_pending_latency: automatic
  max_pending_latency: automatic

没有流量的版本没有任何实例在运行(无法停止它们,因此它们正在提供服务,但有0个实例)

为了清晰起见,我可以附上新版本的图表,以及我临时重新启用的旧版本的图表。从图中可以清楚地看出,新设置是如何在没有明显原因的情况下启动实例的,而旧设置保持一个cool flat 1实例处于活动状态

New configuration

Old configuration


Tags: 项目instances实例代码版本appflask标准
1条回答
网友
1楼 · 发布于 2024-05-23 23:20:02

正如您所熟悉的,应用程序引擎定价主要基于实例运行的小时数https://cloud.google.com/appengine/pricing

Flask或python37运行时没有什么特别之处会导致它比python27 webapp2应用程序运行得“更重”。然而,使用模式可能会导致这样的计费行为。例如:

  • 如果旧版本(在您的例子中是python27应用程序)被禁用,并且扩展类型允许实例继续在旧版本上运行,那么您将支付两个版本的计算时间
  • 使用传入的HTTP请求触发后台工作(例如,数据处理、媒体压缩等),并在工作完成之前返回,会导致计算时间过长,从而导致高账单

这里探讨了其他可能性:https://stackoverflow.com/a/47245172/11957811。为了确定在您的具体案例中导致确切费用的原因,我们需要了解您是如何部署新旧应用程序的(例如,您运行了哪些gcloud命令和标志),以及两者的app.yaml配置是什么

相关问题 更多 >