デプロイエラーのトラブルシューティング

App Engine Admin API を使用したアプリのデプロイで問題が発生した場合は、このページに表示されるエラー メッセージと、各エラーの修正に関するヒントが表示されます。

The caller does not have permission to access project

アプリをデプロイすると、次のエラーが発生します。

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 デプロイ担当者(roles/appengine.deployer)ロール付与します。デプロイに使用したアカウントを確認するには、次のいずれかを行います。

  • gcloud コマンドライン ツールを使用してデプロイした場合は、gcloud auth list コマンドを実行します。
  • IDE からデプロイした場合は、Cloud Tools プラグインの設定を表示します。

Failed to fetch metadata from GCR

アプリをデプロイすると、次のエラーが発生します。

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

このエラーは、ストレージ管理者(roles/compute.storageAdmin)ロールを持たないサービス アカウントから gcloud app deploy コマンドを使用すると発生します。

この問題を解決するには、サービス アカウントにストレージ管理者のロール付与します。

  • 使用したアカウントを確認するには、gcloud auth list コマンドを実行します。
  • App Engine デプロイ担当者(roles/appengine.deployer)のロールのみでは不十分な場理由については、App Engine のロールをご覧ください。

Service accounts must have permissions on the image

アプリをデプロイすると、次のエラーが発生します。

The App Engine appspot and App Engine flexible environment service accounts must have permissions on the image IMAGE_NAME

このエラーは、デフォルトの App Engine サービス アカウントにストレージ オブジェクト閲覧者(roles/storage.objectViewer)ロールがない場合に発生します。

この問題を解決するには、サービス アカウントにストレージ オブジェクト閲覧者ロール付与します。

Failed to create cloud build

アプリをデプロイすると、次のエラーが発生します。

Failed to create cloud build: Permission denied

このエラーは、Cloud Build 編集者(roles/cloudbuild.builds.editor)ロールが割り当てられていないアカウントから gcloud app deploy コマンドを使用すると発生します。

この問題を解決するには、アプリのデプロイに使用しているサービス アカウントに Cloud Build 編集者ロール付与します。

使用したアカウントを確認するには、gcloud auth list コマンドを実行します。

Permissions error fetching application

アプリをデプロイすると、次のエラーが発生します。

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 デプロイ担当者(roles/appengine.deployer)ロールがない場合に表示されます。

この問題を解決するには、アプリのデプロイに使用したサービス アカウントに App Engine デプロイ担当者ロールが付与されていることを確認し、付与されていない場合はこのロールを付与します。デプロイに使用したアカウントを確認するには、次のいずれかを行います。

  • gcloud コマンドライン ツールを使用してデプロイした場合は、gcloud auth list コマンドを実行します。
  • IDE からデプロイした場合は、Cloud Tools プラグインの設定を表示します。

Timed out waiting for the app infrastructure to become healthy

アプリをデプロイすると、次のエラーが発生します。

Timed out waiting for the app infrastructure to become healthy

権限不足、コードエラー、CPU 性能やメモリ容量の不足、ヘルスチェックの失敗など、さまざまな要因が考えられます。このエラーは、App Engine フレキシブル環境でのみ発生します。

この問題を解決するには、次のように考えられる原因を排除します。

  1. 編集者(roles/editor ロール)がデフォルトの App Engine サービス アカウントに付与されていることを確認します。

  2. プロジェクトの組織ポリシーが外部 IP アドレスへのアクセスを制限しているかどうかを確認します。詳細については、App Engine フレキシブル環境の既知の問題をご覧ください。

  3. アプリケーションの実行に使用するサービス アカウント(通常はデフォルトのサービス アカウント app-id@appspot.gserviceaccount.com)に次のロールが付与されていることを確認します。

  4. 上記のロールがサービス アカウントにない場合は、それを付与します。