Google app engine 使用appcfg.py部署期间的App Engine 404

Google app engine 使用appcfg.py部署期间的App Engine 404,google-app-engine,google-app-engine-python,google-app-engine-launch,Google App Engine,Google App Engine Python,Google App Engine Launch,每当我使用app_cfg.py部署我的项目时,我们的项目都会在3-4秒的时间内返回404 not found错误。我认为这可以通过多台机器的启动和运行来避免。在云控制台中,它只显示始终运行的一个实例,即使我将min_idle_实例设置为三个 如何避免在部署期间对服务器进行404'ing操作? 下面是app.yaml文件的一部分 instance_class: F4 automatic_scaling: min_idle_instances: 3 max_idle_instances: 6

每当我使用app_cfg.py部署我的项目时,我们的项目都会在3-4秒的时间内返回404 not found错误。我认为这可以通过多台机器的启动和运行来避免。在云控制台中,它只显示始终运行的一个实例,即使我将min_idle_实例设置为三个

如何避免在部署期间对服务器进行404'ing操作?

下面是app.yaml文件的一部分

instance_class: F4
automatic_scaling:
  min_idle_instances: 3
  max_idle_instances: 6
  min_pending_latency: 30ms  # default value
  max_pending_latency: automatic
  max_concurrent_requests: 40

我看到两种可能的解释:

  • 如果您部署的服务/应用程序版本与已经承载流量的服务/应用程序版本相同:您实际上是在重新编写应用程序代码,因此GAE将停止所有实例并启动新实例。当这种情况发生时,应用程序将无法工作。还有延长停机时间的风险,请参阅

  • 即使您正在部署一个不同的版本,但您立即将100%的流量切换到该版本,并且流量很高—autoscaler需要一些时间来分析流量模式,并启动足够的动态实例来处理它。请参阅中的详细信息

我认为使用
app_cfg.py
gcloud app deploy
进行部署在这两种情况下都无关紧要

始终部署一个新版本,并在确认其运行正常后逐渐切换流量,这应该可以解决所有这些情况


空闲实例帮不上忙,因为它们必须使用新代码来启动。无论如何,它们只在高峰值瞬态时有用,请参见

谢谢。我将更改部署脚本以增加版本,并在部署后将流量迁移到新版本