Eventarc トリガー

Cloud Functions(第 2 世代)では、Eventarc トリガーを使用して、Eventarc でサポートされているイベントタイプで関数をトリガーできます。関数に Eventarc トリガーを指定するときに、イベント フィルタを設定します。フィルタに一致するイベントが発生するたびに、関数が呼び出されます。

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

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

トリガーのロケーション

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

トリガー ID

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

デプロイ

関数のデプロイ時に Eventarc トリガーを指定できます。関数をデプロイする一般的な手順については、Cloud Functions の関数をデプロイするをご覧ください。このセクションでは、デプロイ中にフィルタに一致するイベントが発生したときに関数を呼び出す 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 Functions(第 2 世代)にデプロイすることを指定します。Eventarc トリガーを使用するには、Cloud Functions(第 2 世代)を使用する必要があります。
  • --trigger-event-filters フラグには、トリガーがモニタリングするイベント フィルタを指定します。イベントがすべてのフィルタに一致すると、関数の呼び出しがトリガーされます。

    • 必須: 各トリガーには、--event-filters="type=EVENTARC_FILTER_TYPE" の形式でサポートされているイベントタイプを指定する必要があります。作成後は、このイベントタイプは変更できません。EVENT_FILTER_TYPE を変更するには、新しいトリガーを作成して古いトリガーを削除します。
    • (省略可)フィルタを追加するには、--trigger-event-filters フラグを繰り返し、サポートされているフィルタを ATTRIBUTE=VALUE の形式で指定します。
  • --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. [トリガーを保存] をクリックします。

次のステップ