本文档介绍如何排查 App Engine 柔性环境中的 Cloud Endpoints 部署问题。如果向 API 发送请求后收到错误响应,请参阅排查响应错误问题,了解如何排查此类错误问题。
部署错误
本部分介绍如何排查 gcloud app deploy
错误。
错误消息 | 问题排查 |
---|---|
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.
|
检查您的 确保在项目中启用了 Endpoints 和 ESP 所需的所有 Google Cloud 服务。如需了解详细,请参阅检查所需服务。 |
有关 rollout_strategy
的错误消息
如您在部署之前配置了 app.yaml
,则必须向其添加 endpoints_api_service
部分。可扩展服务代理 (ESP) 需要通过这部分中指定的设置为您的服务获取配置。您必须执行以下操作之一:在 config_id
字段中指定配置 ID,或者包括 rollout_strategy: managed
选项。该选项将 ESP 配置为使用最新部署的服务配置。指定此选项后,在部署新的服务配置后,ESP 最多会在 5 分钟内检测到更改并自动开始使用该服务配置。建议您指定此选项,而不是指定特定配置 ID 供 ESP 使用。例如:
endpoints_api_service:
name: example-project-12345.appspot.com
rollout_strategy: managed
如果 endpoints_api_service
部分不包含 ESP 获取服务配置所需的信息,则会显示以下消息之一:
错误消息 | 问题排查 |
---|---|
config_id is forbidden when rollout_strategy is set
to "managed"
|
您不能同时指定配置 ID 和 rollout_strategy: managed 。除非您有明确的理由需要使用特定配置 ID,否则我们建议您从 app.yaml 文件中移除 config_id: [YOUR_CONFIG_ID] 并重新运行 gcloud app deploy 。 |
config_id must be specified when rollout_strategy is
unspecified or set to "fixed"
|
当 app.yaml 文件不包含 rollout_strategy: managed ,或者 rollout_strategy 设置为 fixed 而您没有指定配置 ID 时,就会出现此错误。除非您有明确的理由使用特定配置 ID,否则我们建议您将 rollout_strategy: managed 添加到 app.yaml 文件的 endpoints_api_service 部分,并重新运行 gcloud app deploy 命令。 |
查看实例日志
App Engine 崩溃和系统日志提供信息来说明应用为何无法按预期启动或执行。您可以在 Endpoints 日志中找到更多调试信息。
在 Google Cloud 控制台中,通过 SSH 连接到您的虚拟机。如需了解详情,请参阅连接到实例。
使用文本查看器,例如
tail
:tail -f /var/log/nginx/error.log