App Engine フレキシブル環境でのデプロイのトラブルシューティング

このドキュメントでは、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.

app.yaml ファイルに app_start_timeout_sec の値を持つ readiness_check セクションがあることを確認します。存在しない場合は、セクションを追加して、app_start_timeout_sec の値をデフォルトの 300 秒よりも大きい値に設定します。詳しくは、準備チェックをご覧ください。

Endpoints と ESP に必要なすべての Google Cloud サービスがプロジェクトで有効になっていることを確認します。詳しくは、必要なサービスの確認をご覧ください。

rollout_strategy に関するエラー メッセージ

デプロイ前に app.yaml を構成する場合は、endpoints_api_service セクションを追加する必要があります。Extensible Service Proxy(ESP)は、このセクションに指定した値を使用して、サービスの構成を取得します。config_id フィールドに構成 ID を指定するか、rollout_strategy: managed オプションを追加します。この両方を行うことはできません。このオプションを構成すると、ESP はデプロイされた最新のサービス構成を使用します。このオプションを指定すると、新しいサービス構成をデプロイしてから 5 分以内に ESP が変更を検出し、自動的に使用します。ESP が特定の構成 ID でなく、このオプションを使用するようにしてください。次に例を示します。

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.yamlrollout_strategy: managed が含まれていない場合か、rollout_strategyfixed に設定され、構成 ID を指定していない場合に表示されます。特定の構成 ID を使用する理由がない限り、app.yamlendpoints_api_service セクションに rollout_strategy: managed を追加して gcloud app deploy を再度実行することをおすすめします。

インスタンスのログを確認する

App Engine クラッシュログとシステムログを見ると、アプリケーションの起動失敗や予期しない動作が発生した原因を確認できます。Endpoints ログでは、さらに詳細なデバッグ情報を確認できます。

  1. Google Cloud コンソールで、仮想マシンに SSH で接続します。詳細については、インスタンスへの接続をご覧ください。

  2. tail などのテキスト ビューアを使用します。

     tail -f /var/log/nginx/error.log
    

次のステップ