Cloud Run のトラブルシューティングの概要

このページでは、Cloud Run エラーの一般的なトラブルシューティング方法について説明します。Personalized Service Health は、基盤となる Google Cloud インフラストラクチャに起因するすべての Cloud Run インシデントを公開し、プロジェクトに影響する Google Cloud サービスの中断を特定します。また、Personalized Service Health イベントにアラートを設定することも検討してください。すべての Google Cloud サービスに影響するインシデントについては、Google Cloud Service Health ダッシュボードを確認してください。

Cloud Run リソースに関連する問題を解決するには、Cloud Run トラブルシューティング ガイドの次のセクションをご覧ください。

Cloud Run のトラブルシューティング戦略

以降のセクションでは、一般的なトラブルシューティング戦略を適用してエラーを解決する方法を説明します。トラブルシューティング ガイドの手順を踏んでもなおエラーが発生する場合は、次のステップをご確認ください。

Cloud Logging を使用して適切なログを出力する

デバッグ用の適切なログがあると、Cloud Run リソースのトラブルシューティングが容易になります。コンテナログとリクエストログを関連付ける方法でログを書き込む必要があります。

関連付けられたログを使用すると、詳細な分析が必要なリクエストを特定し、リクエストのトレースを見つけて、問題の根本原因を分析できます。ログの書き込みの詳細については、コンテナログを書き込むをご覧ください。

ログ エクスプローラでインスタンスを調査する

Cloud Run の各リクエストログには、リクエストを処理するインスタンスを表す instanceId フィールドが含まれています。指定した同時実行値によっては、1 つのインスタンスで複数のリクエストが同時に処理されている場合があります。

複数のインスタンスが同時にログを出力している場合は、インスタンスをフィルタして、インスタンスのクラッシュにつながる連続したリクエストを特定する必要があります。

インスタンスをフィルタすると、コールド スタートやレイテンシの増加に関連する特定のパフォーマンスの問題をデバッグできます。後続の同時リクエストで値が再利用される場合、これらの問題は、グローバル スコープで宣言された変数にバインドされることがあります。たとえば、インスタンスに単一の接続プールのグローバル オブジェクトを作成し、このオブジェクトを複数のリクエストで使用する場合があります。

ログ エクスプローラで特定のインスタンスのみを表示するには、次の操作を行います。

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

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

  2. ページの上部で既存の Google Cloud プロジェクトを選択するか、新しいプロジェクトを作成します。

  3. リソースの Cloud Run リビジョン(サービスの場合)または Cloud Run ジョブ(ジョブの場合)を選択します。

  4. ログエントリを開いて、特定のインスタンスでフィルタします。

  5. インスタンス ID の値をクリックし、[一致エントリを表示] を選択します。

予期しないリクエスト レイテンシを解決する

レイテンシに関する問題が発生した場合は、次のことを行います。

  1. レイテンシが Cloud Run リソースに対するすべてのリクエストに影響しているのか、ごく一部のリクエストにのみ影響しているのかを確認します。Cloud Run は Cloud Monitoring と自動的に統合されます。設定も構成も必要ありません

    個々のリクエスト レイテンシの指標を表示するには、次の操作を行います。

    1. Google Cloud コンソールで、[Cloud Run] ページに移動します。

      Cloud Run に移動

    2. リストからサービスまたはジョブを選択します。

    3. [指標] タブをクリックして、[リクエストのレイテンシ] ダッシュボードを表示します。

    Cloud Monitoring でレイテンシ指標を表示するには、[指標] リストから、[Cloud Run のリビジョン] > [Request_latencies] > [リクエストのレイテンシ] を選択します。

    使用可能なすべての Cloud Run 指標のリストと詳細については、Cloud Monitoring の Google Cloud 指標をご覧ください。

  2. レイテンシが高いリクエストを特定して、レイテンシの原因を把握します。Cloud Trace または Cloud Logging を使用して、特定のリクエストに要した時間を把握できます。

    Cloud Logging を使用してレイテンシの高いリクエストを特定するには、traceSampled=true フィルタを適用して、Cloud Logging のログを Cloud Trace のトレースと関連付けます。詳細については、Cloud Logging との統合をご覧ください。

    他のサービスへのリクエストなどの依存関係が原因でレイテンシの問題が発生することがあります。このようなリクエストを特定するには、リクエストをターゲットとする明示的なロギングが必要です。このようなログを出力しないと、Cloud Run サービスに起因するレイテンシの問題として表示される可能性があります。

    また、選択した期間のコンテキストでレイテンシの急増を評価することも検討してください。急増の重要性は相対的です。短い期間での急増は、長い期間では無視できる場合があり、その逆も同様です。このため、時間枠はレイテンシ データの解釈に大きな影響を与えます。

  3. 受信リクエストのレイテンシを短縮し、コールド スタートを回避するには、最小インスタンス数を増やしてみてください。また、ソースコードの変更も検討し、バッキング サービスへの接続数を制限するようにスケーリングの設定を調整する必要があります。

    詳細については、パフォーマンスの最適化をご覧ください。

Gemini の支援機能によるトラブルシューティング

Gemini Cloud Assist のチャットを使ってログを分析し、エラーのトラブルシューティングを行うことができます。Gemini の支援機能を使用すると、ツールのログ分析機能を利用してエラーを迅速に特定、解決できるため、貴重な時間と労力を節約できます。

Google Cloud コンソールから Gemini Cloud Assist を使用する手順は次のとおりです。

  1. Gemini Cloud Assist が Google Cloud ユーザー アカウントとプロジェクト用に設定されていることを確認します。
  2. Google Cloud プロジェクトで Cloud Run 開発環境を設定し、適切なデプロイ権限があることを確認します。

  3. Google Cloud コンソールの [Cloud Run] ページに移動します。

    Cloud Run に移動

  4. コンソールのツールバーで、 Google Cloud プロジェクトを選択します。Gemini Cloud Assist へのアクセス権が付与された後に送信したプロジェクト ID に関連付けられたプロジェクトを使用します。

  5. [spark Gemini AI チャットを開く / 閉じる] をクリックします。

    Gemini パネルが開きます。

  6. 必要に応じて、利用規約に同意する場合は、[同意する] をクリックします。

  7. 特定のアプリケーションについて質問がある場合は、質問する前に、リソースが表示されているページに移動してコンテキストを提供してください。回答の生成時に、Gemini が現在のコンソール ページとプロジェクトに関する情報を含めます。

  8. [Gemini] パネルにプロンプトを入力します。

    次の表に、Cloud Run で Gemini Cloud Assist を使用するためのプロンプトの例を示します。

    プロンプト 回答の種類
    「Cloud Run コンテナログに表示されているこのエラー メッセージを説明して。」 プロンプトに特定のエラー メッセージが含まれていない場合、出力には Cloud Run コンテナログの一般的なエラー メッセージに関するトラブルシューティングのガイダンスが含まれます。
    「Cloud Run サービスのログに表示されているこのエラー メッセージを説明して。」

    HTTP 429 The request was aborted because there was no available instance. The Cloud Run service might have reached its maximum container instance limit or the service was otherwise not able to scale to incoming requests. This might be caused by a sudden increase in traffic, a long container startup time or a long request processing time."
    Cloud Run のエラー メッセージとエラーの解決方法の説明。
    「Cloud Run サービスのデプロイ時に表示される次のエラー メッセージをどうすれば解決できる?」

    HTTP 404: Not found
    エラーの一般的な原因とエラーのトラブルシューティング方法。
    「Cloud Run サービスがクラッシュし続ける原因として、何が考えられる?」 原因の調査方法と問題の解決方法。
    「ログに表示された 5XX エラーの原因が Google インフラストラクチャ サービスの停止かどうかを確認するにはどうすればよい?」 5XX エラーの原因を特定する手順。
    「エラー com.google.apps.framework.request.BadRequestException Project PROJECT has serving status SYSTEM_DISABLED and cannot be modified の原因を特定するにはどうすればよい?」 Google Cloud プロジェクトがシステムレベルで管理上無効になっていることが示されます。原因を詳しく調査するための手順が案内されます。
    ingress=internal を設定しているのに、なぜブラウザから Cloud Run サービスにアクセスできる?」 ingress 設定を internal に構成した場合に想定される動作の説明。ブラウザからのアクセスが可能であると思われる他のシナリオの説明も含まれます。

詳しくは、次のリソースをご覧ください。

次のステップ

Cloud Run のドキュメントで問題の解決策が見つからない場合は、次の手順で対応します。