イベントによるトリガー

Eventarc は、基盤となるインフラストラクチャを実装、カスタマイズ、またはメンテナンスすることなく、イベント ドリブン アーキテクチャを構築できる Google Cloud サービスです。

Eventarc トリガーを作成するには、トリガーのフィルタを指定し、イベントソースやターゲット Cloud Run サービスなど、イベントのルーティングを構成します。指定したイベントまたはイベントセットがフィルタと一致すると、イベントに応じて Cloud Run サービスが自動的に呼び出されます。

Cloud Run サービスに送信されたイベントは、HTTP リクエストの形式で受信されます。

サービスに対するリクエストをトリガーするイベントの種類は次のとおりです。

このページでは、Cloud Run コンソール ページでサービスのトリガーを作成する方法について説明します。関数のトリガーを作成する方法については、Cloud Run で関数をデプロイするをご覧ください。

Google Cloud CLI または Eventarc コンソール ページで Eventarc トリガーを作成することもできます。特定のプロバイダ、イベントタイプ、宛先のトリガーを作成する手順については、リストをフィルタして、Eventarc のイベント プロバイダと宛先の詳細をご覧ください。

始める前に

Eventarc でトリガーを作成する前に、トリガー ID に必要なロールを理解してください。

  1. Eventarc API を有効にします。

    API を有効にする

  2. すべての Eventarc トリガーは、トリガーの作成時に Identity and Access Management(IAM)サービス アカウントに関連付けられます。このサービス アカウントはトリガー サービス アカウントと呼ばれ、Eventarc API の呼び出しに使用されます。たとえば、認証を必要とする Cloud Run サービスにイベントを送信するには、トリガー ID に Cloud Run 起動元 IAMroles/run.invoker)ロールが付与されていることを確認します。

  3. Cloud Storage からの直接イベントのトリガーを作成する場合は、Cloud Storage サービス アカウントに pubsub.publisher ロールを付与します。

    SERVICE_ACCOUNT="$(gcloud storage service-agent --project=PROJECT_ID)"
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:${SERVICE_ACCOUNT}" \
        --role='roles/pubsub.publisher'
    

    PROJECT_ID は、Google Cloud プロジェクト ID に置き換えます。プロジェクト ID は、Google Cloud コンソールの [ようこそ] ページで確認できます。

トリガーを作成する

サービスをデプロイしたら、Cloud Run コンソール ページを使用して Eventarc トリガーを作成できます。

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

    Cloud Run に移動します

  2. サービスのリストで既存のサービスをクリックするか、新しいサービスを作成します。

  3. サービスの詳細ページで、[トリガー] タブをクリックします。

  4. [Eventarc トリガーを追加] をクリックします。

    [Eventarc トリガー] ペインが開きます。イベントの最適なルーティング方法を決定するには、イベント ルーティング オプションをご覧ください。

  5. 特定のプロバイダ、イベントタイプ、 の宛先のトリガーを作成するの手順に沿って操作し、「トリガーを作成する」セクションにあるコンソールの手順を参照してください。

  6. Cloud Run サービスを呼び出すサービス アカウントを選択するか、新しいサービス アカウントを作成します。

    これにより、トリガーに関連付けられた IAM サービス アカウントのメールアドレスが指定されます。Cloud Run の宛先の場合、サービスを呼び出すときにこのサービス アカウントを使用して ID トークンを生成します。

  7. 受信リクエストの送信先であるサービスの URL パスを指定することもできます。

    これは、トリガーのイベントが送信される宛先サービスの相対パスです。例: //routerouteroute/subroute

  8. トリガーの作成後、[トリガー] タブにチェックマーク が付いていることを確認します。

次のステップ