Cloud Run functions のトリガー
Cloud Functions API(v2)で作成された関数をデプロイまたは更新する場合は、Cloud Run のすべての構成機能にアクセスできます。
関数をトリガーする方法は 2 つあります。
Cloud Functions API(v2)で関数を作成する場合は、関数のデプロイの一部としてトリガーを指定します。
Cloud Run Admin API を使用して関数を作成する場合は、Eventarc、Pub/Sub、またはその他の HTTP トリガーを使用して関数をトリガーできます。
このページでは、関数に構成できるさまざまなタイプのトリガーについて説明します。サポートされているトリガーの一覧については、Cloud Run のドキュメントをご覧ください。
トリガーの種類
トリガーを構成することで、さまざまなシナリオに応じて関数を実行するように設定できます。HTTP 関数の場合は HTTP トリガーを、CloudEvents 関数の場合はイベント トリガーを構成します。
HTTP トリガー
HTTP トリガー。HTTP(S) リクエストに応答し、HTTP 関数に対応します。HTTP 関数の作成の詳細については、HTTP 関数を作成するをご覧ください。
Cloud Functions API(v2)で関数を作成するときに、デフォルトでは関数に HTTP エンドポイント URL cloudfunctions.net
が設定されます。この関数を Cloud Run にデプロイすると、関数には run.app
URL も送信されます。ただし、Cloud Run で作成された関数には cloudfunctions.net
HTTP エンドポイント URL がありません。関数の cloudfunctions.net
URL と run.app
URL はまったく同じように動作します。これらは互換性があり、関数のトリガーに使用されます。
HTTP トリガーで関数を呼び出す方法については、HTTPS リクエストで呼び出すをご覧ください。
イベント トリガー
イベント トリガーは Google Cloud プロジェクト内のイベントに応答し、イベント ドリブン関数(CloudEvents 関数)に対応します。イベント ドリブン関数の作成の詳細については、CloudEvents 関数を作成するをご覧ください。イベント トリガーに応答して関数を呼び出す方法については、Eventarc でトリガーを作成するをご覧ください。
すべてのイベント ドリブン関数は、イベント配信に Eventarc を使用します。Pub/Sub トリガーと Cloud Storage トリガーは、Eventarc トリガーの一種として実装されます。
このセクションでは、Cloud Run functions がサポートするイベント トリガーの例をいくつか示します。
Pub/Sub トリガー
Eventarc を使用して、Pub/Sub メッセージに応答して関数をトリガーできます。関数に Pub/Sub トリガーを指定するときに、Pub/Sub トピックも指定します。このトリガーの結果、指定したトピックにメッセージをパブリッシュするたびに関数が呼び出されます。詳細については、Pub/Sub トリガーをご覧ください。
Cloud Logging を使用してログを Pub/Sub トピックに転送し、Cloud Run functions で使用することもできます。詳細については、ログエントリから関数をトリガーするをご覧ください。
Cloud Storage トリガー
Cloud Storage の変更に応じて、Eventarc を使用して Cloud Storage から関数をトリガーできます。関数に Cloud Storage トリガーを指定するときに、イベントタイプを選択して Cloud Storage バケットを指定します。このトリガーの結果、指定されたバケット内のオブジェクト(ファイル)が変更されるたびに関数が呼び出されます。詳細については、Cloud Storage の料金をご覧ください。
Firestore トリガー
Firestore データベース内のイベントによってトリガーされるように Cloud Run functions を構成できます。トリガーされると、関数は Firestore API とクライアント ライブラリを介して、これらのイベントに応答して Firestore データベースを読み取り、更新します。詳細については、Firestore トリガーをご覧ください。
その他のイベント トリガー
Cloud Run functions は、Eventarc でサポートされているすべてのイベントタイプをサポートしています。これには、Cloud Audit Logs を介した 90 以上のイベントソースが含まれます。
Pub/Sub と Webhook による追加のトリガー
Cloud Run functions は Pub/Sub トピックのメッセージによってトリガーできるため、Cloud Run functions をイベントバスとして Pub/Sub をサポートする他の Google サービスと統合できます。また、HTTP トリガーを使用して、HTTP コールバックを提供するサービス(Webhook)と統合することもできます。以下のセクションでは、統合の例について説明します。
Cloud Scheduler
関数は、HTTP トリガーまたはイベント トリガーでトリガーできます。
Cloud Run functions の HTTP 関数をスケジュールするには、HTTP を使用してアクションをトリガーする Cloud Scheduler ジョブを作成します。Google Cloud プロジェクト内のイベント(Pub/Sub トピックへのメッセージの公開など)に応答して直接トリガーされるイベント ドリブン関数をスケジュールすることもできます。
詳細については、Cloud Scheduler についてをご覧ください。
Cloud Tasks
Cloud Tasks HTTP Target タスクを使用すると、任意の HTTP エンドポイントでタスクハンドラを実行できるため、HTTP トリガーを含む Cloud Run functions をタスクハンドラとして使用できます。タスクを使用して、関数呼び出しのスロットリングやレート制限を行うこともできます。詳細については、Cloud Tasks ドキュメントの HTTP Target タスクの作成をご覧ください。
Gmail
Gmail の Push Notification API を使用することで、Gmail のイベントを Pub/Sub トピックに送信し、Cloud Run functions で使用できます。