Pub/Sub トリガー
Cloud Functions では、Pub/Sub トリガーによって Pub/Sub メッセージに応答して、関数を呼び出すことができます。関数に Pub/Sub トリガーを指定するときに、Pub/Sub トピックも指定します。関数は、指定したトピックにメッセージが公開されるたびに呼び出されます。
関数で Pub/Sub トリガーを使用するには、イベント ドリブン関数として実装する必要があります。
また、CloudEvent 関数を使用する場合、Pub/Sub イベントデータは、CloudEvents の形式の関数に引き渡されます。CloudEvent データ ペイロードは
MessagePublishedData
タイプになります。バックグラウンド関数を使用すると、Pub/Sub イベントデータ ペイロードが
PubsubMessage
形式の関数に直接渡されます。
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 世代)の場合:
- イベント トリガーを追加するには、[トリガーを追加] をクリックします。
[Pub/Sub トリガー] を選択します。
[Eventarc トリガー] ペインが開きます。このペインには、イベント プロバイダとして Pub/Sub が、トリガー イベントとして
google.cloud.pubsub.topic.v1.messagePublished
が事前入力されています。[イベント] フィールドを使用して、別のイベントを選択できます。
[Cloud Pub/Sub トピックを選択してください] フィールドで、モニタリングするトリガーのトピックを選択します。このトピックに公開されたメッセージによって、関数の呼び出しがトリガーされます。
[リージョン] フィールドで、Eventarc トリガーのロケーションを選択します(該当する場合)。 詳しくは、トリガーのロケーションをご覧ください。
必要に応じて、[サービス アカウント] フィールドで、Eventarc トリガーの ID として使用するサービス アカウントを選択します。詳細については、トリガー ID をご覧ください。
[失敗時に再試行する] チェックボックスを選択または解除して、失敗した関数の呼び出しを自動的に再試行するかどうかを制御します。詳細については、イベント ドリブン関数の再試行をご覧ください。
[トリガーを保存] をクリックします。
Cloud Functions(第 1 世代)の場合:
- [トリガー] フィールドで [Cloud Pub/Sub] を選択します。
- [Cloud Pub/Sub トピックを選択してください] フィールドで、モニタリングするトリガーのトピックを選択するか、[トピックを作成する] を選択して新しいトピックを作成するウィンドウを開きます。メッセージが関数のトピックに公開されると、関数の呼び出しがトリガーされます。
- [失敗時に再試行する] チェックボックスを選択または解除して、失敗した関数の呼び出しを自動的に再試行するかどうかを制御します。詳細については、イベント ドリブン関数の再試行をご覧ください。
次のステップ
- イベント ドリブン関数の作成方法を学習する。
- Cloud Functions の関数のデプロイ方法を学習する。
- Pub/Sub 関数のチュートリアルで、Pub/Sub トリガーを使用して関数を作成、デプロイ、呼び出す例を確認する。