问题排查

如果您在使用 App Engine 时遇到问题,可查阅以下实用的问题排查步骤。

部署错误

本部分列出了您在部署应用时可能会看到的错误消息,并提供了有关如何修正每个错误的建议。

调用者无权访问项目

User EMAIL_ADDRESS does not have permission to access project PROJECT_ID (or it may not exist): The caller does not have permission
说明:如果您用于部署应用的帐号 (EMAIL_ADDRESS) 无权为 PROJECT_ID 部署应用,则会出现此错误。
解决方案:为该账户授予“App Engine 部署者”角色。如要查看您用于部署的帐号,请执行以下操作:
  • 如果您使用 gcloud 命令行工具进行部署,请运行 gcloud auth list 命令。
  • 如果您从 IDE 部署,请查看 Cloud Tools 插件的设置。

无法从 GCR 提取元数据

Failed to fetch metadata from GCR, with reason: generic::permission_denied
说明:如果您通过没有“Storage Admin”角色的服务帐号使用 gcloud app deploy 命令,会发生此错误。
解决方案:向服务帐号授予“Storage Admin”角色。如要查看您使用的帐号,请运行 gcloud auth list 命令。如需了解在某些情况下仅分配“App Engine部署者”角色可能还不够的原因,请参阅 App Engine 角色

服务帐号必须拥有映像的权限

The App Engine appspot and App Engine flexible environment service accounts must have permissions on the image IMAGE_NAME
说明:如果默认的 App Engine 服务帐号没有“Storage Object Viewer”角色,则会发生此错误。
解决方案: 为服务帐号授予“Storage Object Viewer”角色。

未能创建 Cloud Build

Failed to create cloud build: Permission denied
说明:如果您通过没有“Cloud Build Editor”角色的帐号使用 gcloud app deploy 命令,则会发生此错误。
解决方案: 为用于部署应用的服务帐号授予“Cloud Build Editor”角色。如要查看您使用的帐号,请运行 gcloud auth list 命令。

提取应用权限错误

Permissions error fetching application apps/app_name. Please make sure you are using the correct project ID and that you have permission to view applications on the project
说明:如果您用于部署应用的帐号没有 App Engine Deployer 角色,则会发生此错误。
解决方案:验证您是否已将“App Engine Deployer”角色授予用于部署应用的服务帐号;如果服务帐号没有该角色,请为其授予该角色。如要查看您用于部署的帐号,请执行以下操作:
  • 如果您使用 gcloud 命令行工具进行部署,请运行 gcloud auth list 命令。
  • 如果您从 IDE 部署,请查看 Cloud Tools 插件的设置。

等待应用基础架构恢复正常运行时超时

Timed out waiting for the app infrastructure to become healthy
说明:在柔性环境中出现此错误。各种因素都可能会导致此错误,例如缺少权限、代码错误、CPU 或内存不足或运行状况检查失败。
解决方案:要找出潜在原因,请执行以下操作:
  1. 验证是否已向默认 App Engine 服务帐号授予了 "Editor" 角色;如果该服务帐号没有该角色,请为其授予该角色。
  2. 检查项目的组织政策是否限制对外部 IP 的访问。如需了解详情,请参阅 App Engine 柔性已知问题
  3. 确认您已向用于运行柔性环境的应用(通常是默认服务帐号 app-id@appspot.gserviceaccount.com)的服务帐号授予以下角色: 如果服务帐号没有这些角色,请为其授予这些角色。