Eventarc トリガー

Eventarc トリガーを使用すると、Eventarc でサポートされている任意のイベントタイプで関数をトリガーできます。関数に Eventarc トリガーを指定するときに、イベント フィルタを設定します。フィルタに一致するイベントが発生するたびに、関数が呼び出されます。

Cloud Run 関数のイベント ドリブン関数は、Eventarc トリガーを使用します。詳細については、Eventarc のドキュメントの Eventarc トリガーをご覧ください。サポートされているイベントタイプの一覧については、Eventarc でサポートされているイベントタイプをご覧ください。

関数が Eventarc トリガーを使用するには、CloudEvent 関数として実装する必要があります。イベントデータは CloudEvents 形式で関数に渡されます。CloudEvent データ ペイロードはイベントタイプに対応しています。Google イベント リポジトリには、イベントデータを処理するための追加のリソースが含まれています。

トリガーのロケーション

Eventarc トリガーは特定のロケーションにリンクされます。一般に、Eventarc トリガーのロケーションは、イベントをモニタリングする Google Cloud リソースのロケーションと一致する必要があります。ほとんどの場合、Cloud Run 関数を同じリージョンにデプロイする必要があります。Eventarc トリガーのロケーションの詳細については、Eventarc のロケーションについてをご覧ください。

トリガー ID

Eventarc トリガーはサービス アカウントにリンクされ、関数を呼び出すときに ID として使用します。Eventarc トリガーのサービス アカウントには、関数を呼び出す権限が必要です。デフォルトのコンピューティング サービス アカウントに、関数を呼び出すための正しい権限があることを確認する必要があります。

デプロイ

関数のデプロイ時に Eventarc トリガーを指定できます。関数をデプロイする一般的な手順については、Cloud Run 関数をデプロイするをご覧ください。このセクションでは、デプロイ中にフィルタに一致するイベントが発生したときに関数を呼び出す Eventarc トリガーを構成する方法について説明します。

gcloud

gcloud CLI を使用してデプロイする場合は、以下のフラグを使用して Eventarc トリガーを構成します。

gcloud functions deploy YOUR_FUNCTION_NAME \
  --gen2 \
  --trigger-event-filters="type=EVENTARC_FILTER_TYPE" \
  [--trigger-event-filters=EVENTARC_EVENT_FILTER] \
  [--trigger-event-filters-path-pattern=EVENTARC_EVENT_PATH_PATTERN] \
  [--trigger-location=EVENTARC_TRIGGER_LOCATION] \
  [--trigger-service-account=EVENTARC_TRIGGER_SERVICE_ACCOUNT] \
  [--retry] \
...
  • --gen2 フラグは、Cloud Run 関数にデプロイすることを指定します。Eventarc トリガーを使用するには、Cloud Run 関数を使用する必要があります。
  • --trigger-event-filters フラグには、トリガーがモニタリングするイベント フィルタを指定します。イベントがすべてのフィルタに一致すると、関数の呼び出しがトリガーされます。

    • 必須: 各トリガーには、--event-filters="type=EVENTARC_FILTER_TYPE" の形式でサポートされているイベントタイプを指定する必要があります。作成後は、このイベントタイプは変更できません。EVENT_FILTER_TYPE を変更するには、新しいトリガーを作成して古いトリガーを削除します。
    • (省略可)ATTRIBUTE=VALUE の形式でサポートされているフィルタを使用して --trigger-event-filters フラグを繰り返し、フィルタを追加できます。
  • --trigger-event-filters-path-pattern フラグは、パスパターン形式でトリガーがモニタリングするイベント フィルタを指定します。フィルタは ATTRIBUTE=VALUE の形式にする必要があります。詳細については、パスパターンについてをご覧ください。

  • --trigger-location フラグには、Eventarc トリガーのロケーションを指定します。詳しくは、トリガーのロケーションをご覧ください。指定しない場合、関数のリージョンがトリガーのロケーションとして使用されます。

  • --trigger-service-account フラグには、Eventarc トリガーの ID として使用するサービス アカウントを指定します。詳細については、トリガー ID をご覧ください。

  • --retry フラグは、失敗した関数呼び出しを自動的に再試行するかどうかを制御します。詳細については、イベント ドリブン関数の再試行をご覧ください。

直接 Pub/Sub または Cloud Storage イベントのトリガーを作成する場合、gcloud CLI の手順を参照して、Pub/Sub および Cloud Storage トリガーをそれぞれ構成してください。

Eventarc のドキュメントには、さまざまなタイプのイベントにイベント フィルタを指定する例が記載されています。詳細については、特定のプロバイダ、イベントタイプ、宛先にトリガーを作成するの手順をご覧ください。

コンソール

Google Cloud コンソールを使用してデプロイする場合は、環境として第 2 世代を選択する必要があります。その後、[トリガー] セクションで Eventarc トリガーを構成できます。

  1. イベント トリガーを追加するには、[トリガーを追加] をクリックします。これにより、次のオプションが表示されます。

    • Pub/Sub トリガー
    • Cloud Storage トリガー
    • Firestore トリガー
    • その他のトリガー

    これらのオプションのいずれかを選択すると、[Eventarc トリガー] ペインが開き、トリガーの詳細を指定できます。

    直接 Pub/Sub または Cloud Storage イベントのトリガーを作成する場合は、Google Cloud コンソールの手順を参照して、Pub/Sub および Cloud Storage トリガーをそれぞれ構成してください。

  2. [その他のトリガー)] を選択した場合、[Eventarc トリガー] ペインの [トリガーのタイプ] フィールドを使用して、[Google のソース]、[カスタム]、[サードパーティ] のいずれかを指定します。

    • [Google のソース] を使用すると、Pub/Sub、Cloud Storage、Firestore、などの Google イベント プロバイダのトリガーを指定できます。[Eventarc トリガー] ペインの [イベント プロバイダ] フィールドを使用して、関数をトリガーするイベントの種類を指定するプロダクトを選択します。次に、[イベント] フィールドで、トリガーとして使用するイベントを選択します。

    • [カスタム] オプションを使用すると、アプリケーション コードからイベントを生成して利用できます。[Eventarc トリガー] ペインのプロンプトに沿ってチャネルを作成します。チャネルは、カスタム イベントをプロデューサーからコンシューマに配信するパイプラインとして使用されるリソースです。カスタム イベントはチャネルに公開され、Eventarc トリガーがこれらのイベントに登録されます。

    • [サードパーティ] オプションを使用すると、Google 以外の Eventarc ソースを提供するプロバイダと統合できます。詳細については、Eventarc のサードパーティ イベントをご覧ください。

  3. [リージョン] フィールドで、Eventarc トリガーのロケーションを選択します(該当する場合)。詳しくは、トリガーのロケーションをご覧ください。

  4. 必要に応じて、[サービス アカウント] フィールドで、Eventarc トリガーの ID として使用するサービス アカウントを選択します。詳細については、トリガー ID をご覧ください。

  5. [失敗時に再試行する] チェックボックスを選択または解除して、失敗した関数の呼び出しを自動的に再試行するかどうかを制御します。詳細については、イベント ドリブン関数の再試行をご覧ください。

  6. [トリガーを保存] をクリックします。

次のステップ