【发布时间】:2018-09-12 12:38:56
【问题描述】:
是否可以在 App Engine Standard 中为实例实施自定义运行状况检查?我尝试配置 liveness-check 和 readiness-check,但这些似乎仅在 flex 环境中受支持。
我想这样做的原因是最近我们多次遇到以下问题:由于一个错误,其中一个实例停止成功响应请求,总是返回 HTTP 状态 500。然后这个实例一直保持活动状态并且可以访问数小时,从而导致我们的客户出现间歇性故障。
【问题讨论】:
是否可以在 App Engine Standard 中为实例实施自定义运行状况检查?我尝试配置 liveness-check 和 readiness-check,但这些似乎仅在 flex 环境中受支持。
我想这样做的原因是最近我们多次遇到以下问题:由于一个错误,其中一个实例停止成功响应请求,总是返回 HTTP 状态 500。然后这个实例一直保持活动状态并且可以访问数小时,从而导致我们的客户出现间歇性故障。
【问题讨论】:
在 Google Groups 中有一个非常相似(甚至相同)的问题,你可以在这个link 中查看。
我引用回复:
您无法在 Google App Engine (GAE) 标准环境中实施自定义运行状况检查。我们的公共文档显示,通过配置 app.yaml 文件 [1],可以在自定义运行时应用程序(即 GAE Flex 应用程序)中添加您所指的旧版和更新的健康检查。这是切换到 GAE Flex 的优势。
对于不提供灵活性的 App Engine Standard,可能会在没有事先警告的情况下发生导致提前终止或频繁重启的硬件和软件故障。这有时表现为一个无响应的实例,返回 HTTP 状态 500。我们建议您构建您的 GAE 标准应用程序以便能够处理此问题 [2]。您可以参考此文档为您的 GAE 应用的 app.yaml 配置 app.yaml 文件。
[1]https://cloud.google.com/appengine/docs/flexible/custom-runtimes/configuring-your-app-with-app-yaml
[2]https://cloud.google.com/appengine/docs/standard/go/how-instances-are-managed#instance_uptime
[3]https://cloud.google.com/appengine/docs/standard/python/config/appref
【讨论】: