トリガーの管理

トリガーを管理するには、ターミナルまたは Cloud Shell で Google Cloud コンソールまたは Google Cloud CLI を使用します。Eventarc API を使用してトリガーを管理することもできます。

トリガーの一覧表示

すべてのロケーションでトリガーの一覧表示、フィルタ、並べ替えを行うことができます。

コンソール

  1. Google Cloud コンソールで、[Eventarc] の [トリガー] ページに移動します。

    [トリガー] に移動

    これには、すべてのロケーションのプロジェクト内のすべてのトリガーが一覧表示され、トリガー名、リージョン、イベント プロバイダ、宛先、イベントタイプなどの詳細情報が含まれます。

  2. 特定のプロパティでトリガーをフィルタするには:

    1. [ フィルタ] ボックスをクリックします。
    2. [プロパティ] のリストから、トリガーをフィルタするオプション([名前] や [イベントのチャネル] など)を選択します。

    1 つのプロパティを選択することも、論理演算子 OR を使用して複数のプロパティでフィルタすることもできます。

  3. トリガーを並べ替えるには、該当する列見出しの横にある [ 並べ替え] をクリックします。

    並べ替えることができるのは、[名前]、[リージョン]、[イベントのチャネル] などの一部の列のみです。

gcloud

gcloud eventarc triggers list --location=-

すべてのロケーションのトリガー名、タイプ、宛先、ステータスが一覧表示されます。

REST

特定のプロジェクトとロケーションのトリガーを一覧表示するには、projects.locations.triggers.list メソッドを使用します。

リクエストのデータを使用する前に、次のように置き換えます。

  • PROJECT_ID: Google Cloud プロジェクト ID。
  • LOCATION: トリガーが作成されるリージョン(例: us-central1)。

リクエストを送信するには、次のいずれかのオプションを展開します。

成功した場合、レスポンスの本文には Trigger のインスタンスが含まれ、レスポンスは次のようになります。

{
  "triggers": [
    {
      "name": "projects/PROJECT_ID/locations/LOCATION/triggers/TRIGGER_NAME",
      "uid": "d700773a-698b-47b2-a712-2ee10b690062",
      "createTime": "2022-12-06T22:44:04.744001514Z",
      "updateTime": "2022-12-06T22:44:09.116459550Z",
      "eventFilters": [
        {
          "attribute": "type",
          "value": "google.cloud.pubsub.topic.v1.messagePublished"
        }
      ],
      "serviceAccount": "SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com",
      "destination": {
        "workflow": "projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_NAME"
      },
      "transport": {
        "pubsub": {
          "topic": "projects/PROJECT_ID/topics/TOPIC_ID",
          "subscription": "projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID"
        }
      }
    },
    {
      object (Trigger)
    }
  ],
  "nextPageToken": string,
  "unreachable": [
    string
  ]
}

トリガーの説明

特定のロケーションにあるトリガーの説明を取得できます。

コンソール

  1. Google Cloud コンソールで、[Eventarc] の [トリガー] ページに移動します。

    [トリガー] に移動

  2. トリガーのリストから、詳細を確認するトリガーをクリックします。

[トリガーの詳細] ページに、名前、リージョン、イベント プロバイダ、イベントタイプ、イベントデータのコンテンツ タイプ、宛先など、トリガーの詳細が表示されます。

gcloud

gcloud eventarc triggers describe TRIGGER \
    --location=LOCATION

次のように置き換えます。

  • TRIGGER: トリガーの ID または完全修飾識別子。
  • LOCATION: Eventarc トリガーのロケーション。

このコマンドは、次のようなトリガーに関する情報を返します。

  createTime: '2023-03-16T13:40:44.889670204Z'
  destination:
    cloudRun:
      path: /
      region: us-central1
      service: hello
  eventDataContentType: application/protobuf
  eventFilters:
  - attribute: serviceName
    value: cloudscheduler.googleapis.com
  - attribute: methodName
    value: google.cloud.scheduler.v1.CloudScheduler.DeleteJob
  - attribute: type
    value: google.cloud.audit.log.v1.written
  name: projects/project-name/locations/us-central1/triggers/name-of-trigger
  serviceAccount: project-number-compute@developer.gserviceaccount.com
  transport:
    pubsub:
      subscription: projects/project-name/subscriptions/eventarc-us-central1-name-of-trigger-sub-034
      topic: projects/project-name/topics/eventarc-us-central1-name-of-trigger-931

REST

特定のプロジェクトとロケーションでのトリガーの説明を取得するには、projects.locations.triggers.get メソッドを使用します。

リクエストのデータを使用する前に、次のように置き換えます。

  • TRIGGER_NAME: 説明を取得するトリガーの名前。
  • PROJECT_ID: Google Cloud プロジェクト ID。
  • LOCATION: トリガーが作成されるリージョン(例: us-central1)。

リクエストを送信するには、次のいずれかのオプションを展開します。

成功した場合、レスポンスの本文には次のような Trigger のインスタンスが含まれます。

{
  "name": "projects/PROJECT_ID/locations/LOCATION/triggers/TRIGGER_NAME",
  "uid": "d700773a-698b-47b2-a712-2ee10b690062",
  "createTime": "2022-12-06T22:44:04.744001514Z",
  "updateTime": "2022-12-06T22:44:09.116459550Z",
  "eventFilters": [
    {
      "attribute": "type",
      "value": "google.cloud.pubsub.topic.v1.messagePublished"
    }
  ],
  "serviceAccount": "SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com",
  "destination": {
    "workflow": "projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_NAME"
  },
  "transport": {
    "pubsub": {
      "topic": "projects/PROJECT_ID/topics/TOPIC_ID",
      "subscription": "projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID"
    }
  }
}

トリガーの条件が Pub/Sub トピックに問題があることを示す場合は、トリガーがイベントを配信していないをご覧ください。

トリガーの更新

宛先が Cloud Run、Google Kubernetes Engine(GKE)、Workflows のトリガーを更新できます。宛先によっては、特定のフィールドを更新できます。

コンソール

  1. Google Cloud コンソールで、[Eventarc] の [トリガー] ページに移動します。

    [トリガー] に移動

  2. トリガーのリストから、詳細を確認するトリガーをクリックします。

  3. [トリガーの詳細] ページで、[ 編集] をクリックします。

  4. 必要に応じてフィールドを編集し、[保存] をクリックします。

    [イベント プロバイダ] や [イベントの宛先] など、使用できないフィールドは更新できません。フィールドの詳細については、コンソールの手順で特定のプロバイダ、イベントタイプ、宛先の説明をご覧ください。

gcloud

Cloud Run

gcloud eventarc triggers update TRIGGER \
    --location=LOCATION \
    --event-filters=NEW_EVENT_FILTERS \
    --service-account=NEW_SERVICE_ACCOUNT \
    --destination-run-region=NEW_REGION \
    --destination-run-service=NEW_SERVICE \
    --destination-run-path=NEW_PATH \
    --event-data-content-type="NEW_EVENT_DATA_TYPE"

次のように置き換えます。

  • TRIGGER: トリガーの ID または完全修飾識別子。
  • LOCATION: Eventarc トリガーのロケーション。

次のいずれかを更新できます。

  • NEW_EVENT_FILTERS: トリガーのイベント ルーティングを構成するために使用するフィルタ。たとえば、methodName=storage.objects.createmethodName=storage.objects.delete に更新できます。トリガーの作成後に type イベント フィルタを変更することはできません。別のイベントタイプが必要な場合は、新しいトリガーを作成する必要があります。
  • NEW_SERVICE_ACCOUNT: トリガーに関連付けられた Identity and Access Management(IAM)サービス アカウントのメールアドレス。
  • NEW_REGION: 宛先の Cloud Run サービスがあるリージョン。
  • NEW_SERVICE: トリガーのイベントを受け取る Cloud Run サービスの名前。
  • NEW_PATH: トリガーのイベントが送信される宛先の Cloud Run サービスの相対パス。
  • NEW_EVENT_DATA_TYPE: イベント ペイロードのエンコード。イベント プロバイダに応じて、application/json または application/protobuf のいずれかになります。

たとえば、トリガーのサービス アカウントを更新するには、次のようにします。

gcloud eventarc triggers update my-cloud-run-trigger \
    --service-account=new-serviceaccount@${PROJECT_ID}.iam.gserviceaccount.com

このコマンドは、my-cloud-run-trigger という名前のトリガーのサービス アカウントを new-serviceaccount@PROJECT_ID.iam.gserviceaccount.com に更新します。

GKE

このセクションは、GKE クラスタで実行される限定公開サービスとパブリック サービスのパブリック エンドポイントにも適用されます。

gcloud eventarc triggers update TRIGGER \
    --location=LOCATION \
    --destination-gke-namespace=NEW_NAMESPACE \
    --destination-gke-service=NEW_SERVICE \
    --destination-gke-path=NEW_PATH \
    --event-data-content-type="NEW_EVENT_DATA_TYPE"

次のように置き換えます。

  • TRIGGER: トリガーの ID または完全修飾識別子。
  • LOCATION: Eventarc トリガーのロケーション。

次のいずれかを更新できます。

  • NEW_NAMESPACE: 宛先の GKE サービスが実行されている名前空間。
  • NEW_SERVICE: トリガーのイベントを受け取る GKE サービスの名前。
  • NEW_PATH: トリガーのイベントが送信される宛先の GKE サービスの相対パス。
  • NEW_EVENT_DATA_TYPE: イベント ペイロードのエンコード。イベント プロバイダに応じて、application/json または application/protobuf のいずれかになります。

たとえば、トリガーのイベント受信サービスを更新するには、次のようにします。

gcloud eventarc triggers update my-gke-trigger \
    --destination-gke-service=helloworld-events

このコマンドは、my-gke-trigger という名前のトリガーのイベント受信サービスを helloworld-events という名前の GKE サービスに更新します。

Workflows

gcloud eventarc triggers update TRIGGER \
    --location=LOCATION \
    --event-filters=NEW_EVENT_FILTERS \
    --service-account=NEW_SERVICE_ACCOUNT \
    --destination-workflow=NEW_DESTINATION_WORKFLOW \
    --destination-workflow-location=NEW_DESTINATION_WORKFLOW_LOCATION \
    --event-data-content-type="NEW_EVENT_DATA_TYPE"

次のように置き換えます。

  • TRIGGER: トリガーの ID または完全修飾識別子。
  • LOCATION: Eventarc トリガーのロケーション。

次のいずれかを更新できます。

  • NEW_EVENT_FILTERS: トリガーのイベント ルーティングを構成するために使用するフィルタ。たとえば、methodName=storage.objects.createmethodName=storage.objects.delete に更新できます。トリガーの作成後に type イベント フィルタを変更することはできません。別のイベントタイプが必要な場合は、新しいトリガーを作成する必要があります。
  • NEW_SERVICE_ACCOUNT: トリガーに関連付けられた Identity and Access Management(IAM)サービス アカウントのメールアドレス。
  • NEW_DESTINATION_WORKFLOW: トリガーからイベントを受け取る、デプロイ済みワークフローの ID。
  • NEW_DESTINATION_WORKFLOW_LOCATION: 宛先ワークフローがデプロイされるロケーション。
  • NEW_EVENT_DATA_TYPE: イベント ペイロードのエンコード。イベント プロバイダに応じて、application/json または application/protobuf のいずれかになります。

たとえば、トリガーのサービス アカウントを更新するには、次のようにします。

gcloud eventarc triggers update my-workflows-trigger \
    --service-account=new-serviceaccount@${PROJECT_ID}.iam.gserviceaccount.com

このコマンドは、my-workflows-trigger という名前のトリガーのサービス アカウントを new-serviceaccount@PROJECT_ID.iam.gserviceaccount.com に更新します。

REST

既存のトリガーを更新するには、projects.locations.triggers.patch メソッドを使用し、必要に応じて updateMask クエリ パラメータを使用して、更新するフィールドのリストを指定します。

リクエストのデータを使用する前に、次のように置き換えます。

  • TRIGGER_NAME: 更新するトリガーの名前。
  • PROJECT_ID: Google Cloud プロジェクト ID。
  • LOCATION: トリガーが作成されるリージョン(例: us-central1)。
  • SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com: 省略可。トリガーに関連付けられた Identity and Access Management(IAM)サービス アカウントのメールアドレス。
  • DESTINATION: 省略可。イベントの送信先を指定します。このターゲットには Destination のインスタンスが含まれます。例:

    {"destination": {"workflow": "projects/my-project/locations/us-central1/workflows/my-first-workflow"}}

    または

    {"destination": {"cloudRun": {"service": "hello-world", "region": "us-central1"}}}

  • EVENT_FILTER: 省略可。フィルタするイベント属性。Cloud Audit Logs トリガーのメソッドタイプの更新のみがサポートされています。例:

    {"eventFilters": [{"attribute": "methodName", "value": "storage.buckets.create"}, {"attribute": "type", "value": "google.cloud.audit.log.v1.written"}, {"attribute": "serviceName", "value": "storage.googleapis.com"}]}

    GKE の宛先のメソッドタイプは更新できません。

  • CONTENT_TYPE: 省略可。イベント ペイロードのエンコード。イベント プロバイダに応じて、application/json または application/protobuf のいずれかです。
  • UPDATE_FIELDS: 省略可。更新するフィールドのカンマ区切りのリスト。指定しなかった場合、リクエストで指定されたすべてのフィールドが更新されます。例: serviceAccount,destination

リクエストの本文(JSON):

{
  "serviceAccount": "SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com",
  "destination": DESTINATION,
  "eventFilters" EVENT_FILTER,
  "eventDataContentType": "CONTENT_TYPE"
}

リクエストを送信するには、次のいずれかのオプションを開きます。

成功した場合、レスポンスの本文には、新しく作成された Operation のインスタンスが含まれます。

{
  "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.eventarc.v1.OperationMetadata",
    "createTime": "2024-01-25T17:17:45.782370139Z",
    "target": "projects/PROJECT_ID/locations/LOCATION/triggers/TRIGGER_NAME",
    "verb": "update",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

"done" の値が false の場合は、オペレーションが引き続き進行中です。

トリガーの削除

トリガーを削除できます。

コンソール

  1. Google Cloud コンソールで、[Eventarc] の [トリガー] ページに移動します。

    [トリガー] に移動

  2. トリガーを選択して [ 削除] をクリックします。

gcloud

gcloud eventarc triggers delete TRIGGER

TRIGGER は、トリガーの ID または完全修飾 ID に置き換えます。

REST

指定した名前のトリガーを削除するには、projects.locations.triggers.delete メソッドを使用します。

リクエストのデータを使用する前に、次のように置き換えます。

  • PROJECT_ID: Google Cloud プロジェクト ID。
  • LOCATION: トリガーが作成されるリージョン(例: us-central1)。
  • TRIGGER_NAME: 削除するトリガーの名前。

リクエストを送信するには、次のいずれかのオプションを展開します。

成功した場合、レスポンスの本文には Operation のインスタンスが含まれます。

{
  "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.eventarc.v1.OperationMetadata",
    "createTime": "2024-01-24T17:53:52.834876290Z",
    "target": "projects/PROJECT_ID/locations/LOCATION/triggers/TRIGGER_NAME",
    "verb": "delete",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

"done" の値が false の場合は、オペレーションが引き続き進行中です。

次のステップ