Cloud Run functions の関数の作成とデプロイを終えたら、トリガーを指定することで、さまざまなシナリオに応じて関数を実行するように設定できます。このページでは、Cloud Run functions の関数でサポートされているトリガーの概要について説明します。
トリガーの種類
デフォルトでは、Cloud Run 上にデプロイされた関数はすべて、Cloud Run のソースデプロイされたサービスであり、HTTP エンドポイント(run.app
の URL)を持ちます。以前に gcloud functions
コマンドまたは Cloud Functions v2 API を使用して関数を作成したことがある場合、デフォルトで関数に cloudfunctions.net
HTTP エンドポイントが設定されています。
関数の呼び出し方法やトリガー方法は、コードの記述時に指定する関数のタイプによって異なります。
- イベント ドリブン トリガー: Google Cloud プロジェクト内のイベントに反応し、イベント ドリブン関数(CloudEvent 関数とも呼ばれます)に対応します。指定されたイベントに応じて関数をトリガーするには、イベント ドリブン アーキテクチャの構築をサポートする CloudEvents 仕様の Google 実装である、Eventarc を使用する必要があります。
- HTTP トリガー: HTTP(S) リクエストに応答し、HTTP 関数に対応します。他のGoogle Cloud サービス(Eventarc 以外)をイベント プロバイダとして使用し、HTTP(S) リクエストを介して関数を呼び出すことができます。
Google Cloud プロジェクト内のイベントに応答するように関数をトリガーするには、 Google Cloud コンソールでの関数のデプロイ時、または gcloud CLI を使用している場合は関数のデプロイ後に、トリガーを指定します。
同じ関数を一度に複数のトリガーにバインドすることはできませんが、同じトリガー設定で複数の関数をデプロイすることで、同じイベントで複数の関数を実行できます。
トリガーの例
Cloud Run functions の関数でサポートされているトリガーの例を次に示します。
イベント ドリブン トリガー:
- Eventarc によってトリガーされる Pub/Sub イベント
- Eventarc によってトリガーされる Cloud Storage イベント
- Eventarc によってトリガーされる Firestore イベント
- その他のイベント トリガー
- Eventarc でサポートされているイベントタイプをサポート(Cloud Audit Logs を使用する 90 以上のイベントソースを含む)
HTTP トリガー:
- HTTP リクエストで呼び出す
- Workflows を使用してワークフローの一部としてサービスを呼び出す
- Cloud Scheduler を使用してスケジュールに従ってサービスを呼び出す
- Cloud Tasks を使用して非同期タスクを実行する
- Pub/Sub push サブスクリプションからサービスをトリガーする
- Pub/Sub メッセージは、HTTP リクエストを介して関数に直接ルーティングすることも、Eventarc を介してイベントドリブン トリガーとして扱うこともできます。
すべてのイベント ドリブン関数で、イベント配信には Eventarc が使用されます。Pub/Sub トリガーと Cloud Storage トリガーは、Eventarc トリガーの一種として実装されます。
Pub/Sub と Webhook による追加のトリガー
Cloud Run functions は Pub/Sub トピックのメッセージによってトリガーできるため、Cloud Run functions をイベントバスとして Pub/Sub をサポートする他の Google サービスと統合できます。また、HTTP トリガーを使用して、HTTP コールバックを提供するサービス(Webhook)と統合することもできます。以下の各セクションでは、インテグレーションの例について説明します。
Cloud Logging
Cloud Logging では、ログを Pub/Sub トピックに転送し、そこで Cloud Run functions で使用できます。詳細については、Cloud Logging ドキュメントのシンクの構成と管理をご覧ください。
Cloud Scheduler
HTTP を使用してアクションをトリガーする Cloud Scheduler ジョブを作成することで、HTTP 関数の実行スケジュールを設定できます。
Google Cloud プロジェクト内のイベント(Pub/Sub トピックへのメッセージの公開など)に応答して関数を直接トリガーする必要がある場合は、イベント ドリブン関数をスケジュール設定することもできます。
Cloud Tasks
Cloud Tasks HTTP Target タスクを使用すると、任意の HTTP エンドポイントでタスクハンドラを実行できるため、HTTP トリガーを含む HTTP 関数をタスクハンドラとして使用できます。タスクを使用して、関数呼び出しのスロットリングやレート制限を行うこともできます。詳細については、Cloud Tasks ドキュメントの HTTP Target タスクを作成するをご覧ください。
Gmail
Gmail の Push Notification API を使用することで、Gmail のイベントを Pub/Sub トピックに送信し、Cloud Run で使用できます。