問題のトラブルシューティング

このページでは、Eventarc の使用時に発生する可能性のある問題を解決する方法について説明します。

Eventarc トリガーソース

このセクションでは、イベントのソースで発生した問題のトラブルシューティングのヒントを紹介します。

ソースが存在しない

トリガー フィルタが適切に指定されていることを確認してください。

イベントはソースから生成されているが、ターゲットで受信されていない

Cloud Run ターゲットと同じリージョンにあるソースからイベントをフィルタしていることを確認してください。詳細については、Eventarc でサポートされているロケーションをご覧ください。

以前にイベントを配信したトリガーが停止している

  1. ソースがイベントを生成していることを確認します。Cloud Audit Logs で、モニタリング対象サービスがログを作成していることを確認します。ログが記録されていてもイベントが配信されない場合は、サポートにお問い合わせください。

  2. 同じトリガー名の Pub/Sub トピックが存在することを確認します。

    1. トリガーを一覧表示する方法については、gcloud eventarc triggers list をご覧ください。
    2. Pub/Sub トピックを一覧表示するには、次のコマンドを実行します。

        gcloud pubsub topics list
      

    Pub/Sub トピック名に、作成されたトリガーの名前が含まれていることを確認します。Pub/Sub トピックがない場合は、トリガーの作成時にトピックを作成します。

  3. Pub/Sub トピックの正常性を確認します。

    1. Cloud Console で [Cloud Run] に移動し、作成したサービスを選択して [トリガー] タブに移動します。[トリガー] タブにチェックマーク があることを確認します。
    2. Cloud Pub/Sub トピックの構成を確認します。Pub/Sub トピックがない場合は、トリガーの作成時にトピックを作成します。問題が解決されない場合は、サポートまでご連絡ください

      Pub/Sub トピックに移動

    3. 指標 topic/send_message_operation_count を含むトピックにメッセージが公開されているかどうかをモニタリングします。トピックにメッセージが公開されていない場合は、Cloud Audit Logs で、モニタリング対象サービスがログを出力していることを確認します。ログが記録されていてもイベントが配信されない場合は、サポートにお問い合わせください。

    4. response_code で、指標 subscription/push_request_count を含むメッセージが正常に push されているかどうかをモニタリングします。push エラーが報告された場合は、Cloud Run サービスログを確認します。受信エンドポイントが OK 以外のステータス コードを返した場合、Cloud Run コードが期待どおりに機能していません。この場合、サポートにお問い合わせいただく必要があります。

Eventarc トリガー

このセクションでは、トリガーで発生した問題のトラブルシューティングのヒントを紹介します。

Failed to load service details: permission denied

トリガーを作成するときに、トリガーの権限が構成され、Pub/Sub サービス アカウントに iam.serviceAccountTokenCreator ロールが付与されているかどうかを確認します。詳細については、Eventarc のロールと権限をご覧ください。

Eventarc の使用時に予期しない請求が発生する

トリガーを作成するときは、構成したフィルタがトリガーを無期限に設定できない可能性があるかどうかを確認します。想定外の請求を回避するには、Google Cloud の課金コンソールを使用して 1 か月の予算とアラートを設定します。詳細については、予算の作成をご覧ください。

Eventarc トリガー ターゲット

このセクションでは、ターゲットで発生した問題のトラブルシューティングのヒントを紹介します。

Cloud Run サービスがイベントを受信しない

サービスがイベントを受信しない場合、イベントタイプごとに次の解決策が考えられます。

Cloud Audit Logs
  • 管理読み取りデータ読み取りデータ書き込みのログタイプが有効になっていることを確認します。Cloud Audit Logs は、[IAM と管理] > [監査ログ] で有効にします。
  • トリガーを作成してから十分な時間が経過していることを確認します。監査ログのトリガーがイベントを送信するまで 10 分ほどかかります。
  • Eventarc トリガーを作成するための前提条件を満たします。
  • イベント フィルタが過度に制限されていないことを確認します。詳細については、Cloud Audit Logs のイベント フィルタをご覧ください。
  • [ロギング] > [ログ エクスプローラ] で監査ログをチェックし、モニタリング対象サービスが監査ログを生成していることを確認します。
  • Cloud Run の Cloud Run ログを確認します。Cloud Run で作成したサービスをクリックして [ログ] タブに移動します。ログに、サービスが OK 以外のステータス コードを受け取ったことが記録されている場合、Cloud Run サービスはイベントを拒否しています。
Pub/Sub
  • Eventarc トリガーが作成されたことを確認します。
  • Pub/Sub トピックが作成され、Eventarc トリガーに接続されていることを確認します。
  • Pub/Sub トピックが存在することを確認します。Pub/Sub に移動し、トピックを検索します。
  • トリガーを作成してから十分な時間が経過していることを確認します。イベントが送信されるまでに 10 分ほどかかることがあります。
  • Cloud Run の Cloud Run ログを確認します。Cloud Run で作成したサービスをクリックして [ログ] タブに移動します。ログに、サービスが OK 以外のコードを受け取ったことが記録されている場合、Cloud Run サービスはイベントを拒否しています。

トリガーが設定されているが、ターゲットでイベントが受信されていない

  • 送信するイベント ペイロードがイベントサイズの上限(512 KB)を超えていないことを確認します。Pub/Sub の push サブスクリプションには、公開リージョンあたりのスループットなどの一連のリソース上限も適用されます。このため、Pub/Sub イベントのペイロードは 512 KB 未満にする必要があります。

  • Cloud Run トリガーに関連付けられている Pub/Sub トピックを見つけます。

    1. [Pub/Sub] > [トピック] に移動します。

      Pub/Sub トピックに移動

    2. Pub/Sub トピック名に、作成されたトリガーの名前が含まれていることを確認します。

  • 指標 topic/send_message_operation_count を含むトピックにメッセージが公開されているかどうかをモニタリングします。トピックにメッセージが公開されていない場合は、Cloud Audit Logs で、モニタリング対象サービスがログを出力していることを確認します。ログが記録されていてもイベントが配信されない場合は、サポートにお問い合わせください。

  • response_code で、指標 subscription/push_request_count を含むメッセージが正常に push されているかどうかをモニタリングします。push エラーが報告された場合は、Cloud Run サービスログを確認します。受信エンドポイントが OK 以外のステータス コードを返した場合、Cloud Run コードが期待どおりに機能していません。この場合、サポートにお問い合わせいただく必要があります。

Pub/Sub トピックがない

Pub/Sub トピックが削除または変更された可能性があります。トリガーを作成すると、新しい Pub/Sub トピックが作成されるため、既存のトリガーを削除して再度作成してください。

INVALID_ARGUMENT: cloud run service "SERVICE_NAME" in region "REGION_NAME" does not exist

サービス アカウントが削除されたターゲット サービスのサービス アカウントが削除された場合、Cloud Run にイベントは配信されません。新しい Cloud Run サービス アカウントを作成します。

Cloud Run サービスが停止している

Cloud Run サービスが停止している場合でも、Pub/Sub はデフォルトでイベントを 7 日間保持し、ターゲットへのイベント送信を再試行します。Pub/Sub リソースの上限の詳細については、割り当てと上限をご覧ください。