レスポンス エラーのトラブルシューティング

Cloud Endpoints Frameworks API へのリクエストで正常なレスポンスが返されない場合は、Google Cloud Console で Cloud Logging を使用してトラブルシューティングを行えます。

ログの表示

  1. Google Cloud コンソールで、[Logging] > [ログ エクスプローラ] ページに移動します。

    [ログ エクスプローラ] ページに移動

  2. ページの上部にあるプロジェクト プルダウン リストから、API を作成した Google Cloud プロジェクトを選択します。

  3. [GAE アプリケーション] と [すべてのログ] を選択します。

  4. エラーを示す行が表示されるまで、時間範囲を調整します。

  5. [すべて展開] をクリックして、エラーのログ全体を表示します。

次のセクションでは、特定のエラー メッセージに関するトラブルシューティング情報を示します。問題を解決できない場合は、エラーを示すログエントリの 1 つをコピーして、テキスト ファイルに貼り付けます。Google へのご連絡の際にそのログをご提供ください。

503 Service Unavailable

App Engine からリクエストへのレスポンスが返されるまで数分かかることがあります。リクエストを送信して 503 エラーが返された場合は、数分待ってからもう一度リクエストしてください。それでもレスポンスが返されない場合は、Cloud Logging ログを確認してください。Cloud Logging ログに次のエラー メッセージが表示される場合があります。

エラー メッセージ トラブルシューティング
No service YOUR_PROJECT_ID.appspot.com found or permission denied.If this is a new Endpoints service, make sure you've deployed the service config using gcloud. app.yaml ファイルで指定されたサービスのサービス構成を読み込めない場合に Endpoints Frameworks for Python がこのエラーをログに記録します。このエラーは、gcloud endpoints services deploy を使用して API の OpenAPI ドキュメントをまだデプロイしていない場合、または Service Management API が有効になっていない場合に発生することがあります。API の OpenAPI ドキュメントをデプロイすると、gcloud コマンドによって自動的に以下が有効化されます。
  • Service Management API(servicemanagement.googleapis.com
  • エンドポイント(endpoints.googleapis.com)
  • Cloud API(cloudapis.googleapis.com
これらのサービスを無効にしている場合は、再び有効化する必要があります。詳細については、API の有効化と無効化をご覧ください。
The service YOUR_PROJECT_ID.appspot.com was found, but no service config was found for version SERVICE_CONFIG_ID. app.yaml ファイルの ENDPOINTS_SERVICE_VERSION に指定されたサービス構成 ID が見つからない場合に Endpoints Frameworks for Python がこのエラーをログに記録します。このエラーを解決するには、次のようにします。
  1. サービス構成 ID を取得します
  2. app.yaml ファイルを編集し、ENDPOINTS_SERVICE_VERSION をサービス構成 ID に設定します。
  3. アプリを再デプロイします:
    
    gcloud app deploy

404 Not Found

Endpoints Frameworks バージョン 2 に移行後 404 Not Found エラー メッセージが表示されるようになった場合は、次のセクションを参照して問題を解決します。

サンプル Invoke-WebRequest に関する問題

Windows PowerShell の一部のバージョンでは、チュートリアルのサンプル Invoke-WebRequest が失敗します。また、文字に変換しなければならない符号なしバイトのリストがレスポンスに含まれていたという報告もあります。サンプルの Invoke-WebRequest から返された結果が期待どおりでない場合は、別のアプリケーションを使用してリクエストを送信してみてください。いくつかの対処方法を以下に示します。

  • Cloud Shell を起動し、同じチュートリアルに示されている Linux の手順に従ってリクエストを送信します。
  • Chrome ブラウザの拡張機能である Postman(提供元: www.getpostman.com)などのサードパーティ製アプリケーションを使用します。Postman でリクエストを送信するとき、以下の点に注意してください。

    • HTTP 動詞として POST を選択します。
    • ヘッダーで、キー content-type とその値 application/json を選択します。
    • 本文で、次のように入力します: {"message":"hello world"}
    • サンプル アプリケーションの URL を入力します。次に例を示します。

      https://example-project-12345.appspot.com/_ah/api/echo/v1/echo
      
  • curl をダウンロードしてインストールし、コマンド プロンプトで実行します。Windows では一重引用符内にネストされた二重引用符は処理されないため、サンプルの --data オプションを次のように変更する必要があります: --data "{\"message\":\"hello world\"}"

次のステップ