関数トリガー

Cloud Run で関数を作成してデプロイした後、トリガーを指定して、さまざまなシナリオに応じて関数を実行するように設定できます。

このページでは、Cloud Run functions でサポートされているトリガーの概要について説明します。

トリガーの種類

デフォルトでは、Cloud Run にデプロイされるすべての関数は、HTTP エンドポイント(run.app URL)を持つ Cloud Run ソースデプロイ サービスです。

関数の呼び出し方法またはトリガー方法は、コードの作成時に指定する関数のタイプによって異なります。

  • CloudEvent トリガー。Google Cloud プロジェクト内のイベントに応答し、CloudEvents 関数(イベント ドリブン関数)に対応します。指定されたイベントに応じて関数をトリガーするには、イベントドリブン アーキテクチャの構築をサポートする CloudEvents 仕様の Google 実装である Eventarc を使用する必要があります。
  • HTTP トリガー: HTTP(S) リクエストに応答し、HTTP 関数に対応します。他の Google Cloud サービス(Eventarc 以外)をイベント プロバイダとして使用し、HTTP(S) リクエストを介して関数を呼び出すことができます。

Google Cloud プロジェクト内のイベントに応答するように関数をトリガーするには、Google Cloud コンソールで関数をデプロイする際、または gcloud CLI を使用している場合は関数のデプロイ後に、トリガーを指定します。

同じ関数を一度に複数のトリガーにバインドすることはできませんが、同じトリガー設定で複数の関数をデプロイすることで、同じイベントで複数の関数を実行できます。

トリガーの例

Cloud Run functions でサポートされているトリガーの例を次に示します。

すべての CloudEvents 関数は、イベント配信に 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 トピックへのメッセージの公開など)に応答して関数を直接トリガーする必要がある場合は、CloudEvent 関数をスケジュールすることもできます。

Cloud Tasks

Cloud Tasks HTTP Target タスクを使用すると、任意の HTTP エンドポイントでタスクハンドラを実行できるため、HTTP トリガーを含む HTTP 関数をタスクハンドラとして使用できます。タスクを使用して、関数呼び出しのスロットリングやレート制限を行うこともできます。詳細については、Cloud Tasks ドキュメントの HTTP Target タスクの作成をご覧ください。

Gmail

Gmail の Push Notification API を使用することで、Gmail のイベントを Pub/Sub トピックに送信し、Cloud Run で使用できます。