排查部署错误

如果您在使用 App Engine Admin API 部署应用时遇到问题,本页中会列出您可能会看到的错误消息,并提供了解决每个错误的建议。

调用者无权访问项目

部署应用时,会出现以下错误:

User EMAIL_ADDRESS does not have permission to access project PROJECT_ID (or it may not exist): The caller does not have permission

如果您用于部署应用的帐号无权为当前项目部署应用,则会发生此错误。

如需解决此问题,请向帐号授予 App Engine Deployer (roles/appengine.deployer) 角色。如需查看用于部署的帐号,请执行以下操作之一:

  • 如果您使用 gcloud 命令行工具进行部署,请运行 gcloud auth list 命令。
  • 如果您从 IDE 部署,请查看 Cloud Tools 插件的设置。

无法从 GCR 提取元数据

部署应用时,会出现以下错误:

Failed to fetch metadata from GCR, with reason: generic::permission_denied

如果您通过没有 Storage Admin (roles/compute.storageAdmin) 角色的服务帐号使用 gcloud app deploy 命令,则会发生此错误。

如需解决此问题,请向服务帐号授予 Storage Admin 角色

  • 如需查看您使用的帐号,请运行 gcloud auth list 命令。
  • 如需了解在某些情况下仅分配 App Engine Deployer (roles/appengine.deployer) 角色可能不够的原因,请参阅 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 (roles/storage.objectViewer) 角色,则会发生此错误。

如需解决此问题,请向服务帐号授予 Storage Object Viewer 角色

未能创建 Cloud Build

部署应用时,会出现以下错误:

Failed to create cloud build: Permission denied

如果您通过没有 Cloud Build Editor (roles/cloudbuild.builds.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 (roles/appengine.deployer) 角色,则会发生此错误。

如需解决此问题,请确认您已向用于部署应用的服务帐号授予 App Engine Deployer 角色;如果服务帐号没有该角色,请授予该角色。如需查看用于部署的帐号,请执行以下操作之一:

  • 如果您使用 gcloud 命令行工具进行部署,请运行 gcloud auth list 命令。
  • 如果您从 IDE 部署,请查看 Cloud Tools 插件的设置。

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

部署应用时,会出现以下错误:

Timed out waiting for the app infrastructure to become healthy

各种因素都可能会导致此错误,例如缺少权限、代码错误、CPU 或内存不足或运行状况检查失败。只有在 App Engine 柔性环境中才会发生该错误。

如需解决此问题,请排除以下可能的原因:

  1. 确认您已向默认 App Engine 服务帐号授予 Editor (roles/editor) 角色

  2. 检查您的项目的组织政策是否限制对外部 IP 地址的访问权限。如需了解详情,请参阅 App Engine 柔性环境已知问题

  3. 确认您已向用于运行应用的服务帐号授予以下角色(通常是默认服务帐号,即 app-id@appspot.gserviceaccount.com):

  4. 如果此服务帐号不具有这些角色,请授予这些角色。