Pub/Sub トリガー

Cloud Functions では、Pub/Sub トリガーによって Pub/Sub メッセージに応答して、関数を呼び出すことができます。関数に Pub/Sub トリガーを指定するときに、Pub/Sub トピックも指定します。関数は、指定したトピックにメッセージが公開されるたびに呼び出されます。

関数で Pub/Sub トリガーを使用するには、イベント ドリブン関数として実装する必要があります。

Google イベント リポジトリには、イベントデータを処理するための追加のリソースが含まれています。

デプロイ

関数のデプロイ時に Pub/Sub トリガーを指定できます。関数をデプロイする一般的な手順については、Cloud Functions の関数のデプロイをご覧ください。デプロイ中に Pub/Sub トリガーを構成するための追加情報については、このセクションをご覧ください。

gcloud

gcloud CLI を使用してデプロイする場合は、こちらに示すフラグを使用して Pub/Sub トリガーを構成します。

gcloud functions deploy YOUR_FUNCTION_NAME \
--trigger-topic=YOUR_PUBSUB_TOPIC \
[--retry] \
...
  • --trigger-topic フラグには、トリガーがモニタリングする Pub/Sub トピックを指定します。このトピックに公開されたメッセージによって、関数の呼び出しがトリガーされます。
  • --retry フラグは、失敗した関数呼び出しを自動的に再試行するかどうかを制御します。詳細については、イベント ドリブン関数の再試行をご覧ください。

以前の Pub/Sub イベント

Cloud Functions(第 1 世代)のレガシー関数は、Pub/Sub トリガーに異なるイベントタイプを使用します。

gcloud functions deploy YOUR_FUNCTION_NAME \
--trigger-event=providers/cloud.pubsub/eventTypes/topic.publish \
--trigger-resource=YOUR_PUBSUB_TOPIC \
...

このイベントタイプは、これらのイベントをすでに使用しているレガシー関数でサポートされています。ただし、将来、レガシー イベントタイプは削除される可能性があるため、代わりに --trigger-topic フラグの使用をおすすめします。

コンソール

Google Cloud コンソールを使用してデプロイする場合は、[トリガー] セクションで Pub/Sub トリガーを構成できます。

  • Cloud Functions(第 2 世代)の場合:

    1. [トリガー] フィールドで [Cloud Pub/Sub] を選択します。
    2. [Cloud Pub/Sub トピック] フィールドで、モニタリングするトリガーのトピックを選択します。このトピックに公開されたメッセージによって、関数の呼び出しがトリガーされます。
    3. [失敗時に再試行する] チェックボックスをオンまたはオフにして、失敗した関数呼び出しを Cloud Functions が自動的に再試行するかどうかを制御します。詳細については、イベント ドリブン関数の再試行をご覧ください。
    4. [その他のオプション] をクリックして、トリガーで追加の構成を行います。

      • [トリガーのタイプ] フィールドで、[Google ソース]、[カスタム]、[サードパーティ] のいずれかを指定します。

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

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

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

      • [イベント] フィールドで、トリガーとなるイベントを選択します。デフォルトは google.cloud.pubsub.topic.v1.messagePublished です。

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

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

  • Cloud Functions(第 1 世代)の場合:

    1. [トリガー] フィールドで [Cloud Pub/Sub] を選択します。
    2. [Cloud Pub/Sub トピックを選択してください] フィールドで、モニタリングするトリガーのトピックを選択するか、[トピックを作成する] を選択して新しいトピックを作成するウィンドウを開きます。関数のトピックにメッセージが公開されると、関数の呼び出しがトリガーされます。
    3. [失敗時に再試行する] チェックボックスをオンまたはオフにして、失敗した関数の呼び出しを自動的に再試行するかどうかを制御します。詳細については、イベント ドリブン関数の再試行をご覧ください。

次のステップ