2017-09-09 65 views
1

我们更新了我们的谷歌应用程序引擎运行状况检查,从旧版本升级到新版本,现在我们的部署失败了。该项目没有其他任何改变。我们测试了默认设置,然后进行了扩展检查以防万一。是否更新健康检查,导致App Engine部署失败?

这是错误: ERROR: (gcloud.app.deploy) Error Response: [4] Your deployment has failed to become healthy in the allotted time and therefore was rolled back. If you believe this was an error, try adjusting the 'app_start_timeout_sec' setting in the 'readiness_check' section.

这是我们的app.yaml:

liveness_check: 
    check_interval_sec: 120 
    timeout_sec: 40 
    failure_threshold: 5 
    success_threshold: 5 
    initial_delay_sec: 500 

readiness_check: 
    check_interval_sec: 120 
    timeout_sec: 40 
    failure_threshold: 5 
    success_threshold: 5 
    app_start_timeout_sec: 1500 

不幸的是,无论配置,无论是准备和活跃度检查抛出404。

什么可能导致问题?我们该如何调试呢? 是否可以回滚到传统健康检查?

+0

更新:更新后的运行状况检查导致问题。我们只是改变了我们的app.yaml使用传统的健康检查,我们能够顺利部署。 – Mike

+0

你如何回到使用传统健康检查?命令'gcloud beta app update --split-health-checks'只能用一种方法。 – speedplane

+0

现在(直到2018-09-30),您可以运行'gcloud app update --no-split-health-checks'并重新部署,回滚到旧的运行状况检查。但请注意,2018年9月底之前的健康检查将会消失。来源:https://cloud.google.com/appengine/docs/flexible/python/configuring-your-app-with-app-yaml#health_checks – sengi

回答

1

这通常是在应用程序仍在从传统运行状况检查标志中读取和/或使用gcloud app deploy部署应用程序而未首先启用更新的运行状况检查时导致的。您可以通过以下方式进行检查:

1-确保传统health_check标志在您的app.yaml中不存在。

2-运行gcloud beta app describe查看splitHealthChecks标志在featureSettings下是否设置为true。

默认情况下,来自更新的运行状况检查的HTTP请求不会转发到您的应用程序容器。如果您想要将健康检查扩展到您的应用程序,请为活跃检查或准备就绪检查指定路径。

然后,您可以使用gcloud beta app update --split-health-checks --project [your-project-id]启用更新的健康检查。有关更多详细信息,请参阅this public issue tracker或有关Updated Health Checks的文章。

+0

如果您在同一个项目下有两个应用程序,该怎么办?我有一个运行在GAE classic上的'app.yaml'和一个灵活运行的'vm.yaml'。 'gcloud beta app update'如何影响这些? – speedplane

+1

@speedplane只需在app.yaml中指定常规旧运行状况检查即可。这就是我所做的工作。 '''health_check: enable_health_check:真 check_interval_sec:5 timeout_sec:4 UNHEALTHY_THRESHOLD:2 healthy_threshold:2''' – Mike

+0

的分裂的健康检查设置为项目范围内。但它不适用于App Engine标准,只适用于灵活环境。 https://cloud.google.com/appengine/docs/flexible/python/configuring-your-app-with-app-yaml#health_checks – sengi