Pub/Sub トリガー(第 1 世代)
Cloud Run functions では、Pub/Sub トリガーによって Pub/Sub メッセージに応答して、関数を呼び出すことができます。関数に Pub/Sub トリガーを指定するときに、Pub/Sub トピックも指定します。関数は、指定したトピックにメッセージが公開されるたびに呼び出されます。
関数で Pub/Sub トリガーを使用するには、イベント ドリブン関数として実装する必要があります。
また、CloudEvent 関数を使用する場合、Pub/Sub イベントデータは、CloudEvents の形式の関数に引き渡されます。CloudEvent データ ペイロードは
MessagePublishedData
タイプになります。バックグラウンド関数を使用すると、Pub/Sub イベントデータ ペイロードが
PubsubMessage
形式の関数に直接渡されます。
Google イベント リポジトリには、イベントデータを処理するための追加のリソースが含まれています。
デプロイ
関数のデプロイ時に Pub/Sub トリガーを指定できます。関数をデプロイする一般的な手順については、Cloud Run functions のデプロイをご覧ください。デプロイ中に Pub/Sub トリガーを構成するための追加情報については、このセクションをご覧ください。
gcloud
gcloud CLI を使用してデプロイする場合は、こちらに示すフラグを使用して Pub/Sub トリガーを構成します。
gcloud functions deploy YOUR_FUNCTION_NAME \ --no-gen2 \ --trigger-topic=YOUR_PUBSUB_TOPIC \ [--retry] \ ...
--trigger-topic
フラグには、トリガーがモニタリングする Pub/Sub トピックを指定します。このトピックに公開されたメッセージによって、関数の呼び出しがトリガーされます。--retry
フラグは、失敗した関数呼び出しを自動的に再試行するかどうかを制御します。詳細については、イベント ドリブン関数の再試行をご覧ください。
以前の Pub/Sub イベント
Cloud Run functions(第 1 世代)のレガシー関数は、Pub/Sub トリガーに異なるイベントタイプを使用します。
gcloud functions deploy YOUR_FUNCTION_NAME \ --no-gen2 \ --trigger-event=providers/cloud.pubsub/eventTypes/topic.publish \ --trigger-resource=YOUR_PUBSUB_TOPIC \ ...
このイベントタイプは、これらのイベントをすでに使用しているレガシー関数でサポートされています。ただし、将来、レガシー イベントタイプは削除される可能性があるため、代わりに --trigger-topic
フラグの使用をおすすめします。
コンソール
Google Cloud コンソールを使用してデプロイする場合は、[トリガー] セクションで Pub/Sub トリガーを構成できます。
- [トリガー] フィールドで [Cloud Pub/Sub] を選択します。
- [Cloud Pub/Sub トピックを選択してください] フィールドで、モニタリングするトリガーのトピックを選択するか、[トピックを作成する] を選択して新しいトピックを作成するウィンドウを開きます。関数のトピックにメッセージが公開されると、関数の呼び出しがトリガーされます。
- [失敗時に再試行する] チェックボックスをオンまたはオフにして、失敗した関数の呼び出しを自動的に再試行するかどうかを制御します。詳細については、イベント ドリブン関数の再試行をご覧ください。
次のステップ
- イベント ドリブン関数の作成方法を学習する。
- Cloud Run functions のデプロイ方法を学習する。
- Pub/Sub のチュートリアルで、Pub/Sub トリガーを使用して関数を作成、デプロイ、呼び出す例を確認する。