トリガーを管理するには、ターミナルまたは Cloud Shell で Google Cloud コンソールまたは Google Cloud CLI を使用します。Eventarc API を使用してトリガーを管理することもできます。
トリガーの一覧表示
すべてのロケーションでトリガーの一覧表示、フィルタ、並べ替えを行うことができます。
コンソール
Google Cloud コンソールで、[Eventarc] の [トリガー] ページに移動します。
これには、すべてのロケーションのプロジェクト内のすべてのトリガーが一覧表示され、トリガー名、リージョン、イベント プロバイダ、宛先、イベントタイプなどの詳細情報が含まれます。
特定のプロパティでトリガーをフィルタするには:
- [ フィルタ] ボックスをクリックします。
- [プロパティ] のリストから、トリガーをフィルタするオプション([名前] や [イベントのチャネル] など)を選択します。
1 つのプロパティを選択することも、論理演算子
OR
を使用して複数のプロパティでフィルタすることもできます。トリガーを並べ替えるには、該当する列見出しの横にある [
並べ替え] をクリックします。並べ替えることができるのは、[名前]、[リージョン]、[イベントのチャネル] などの一部の列のみです。
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 ] }
トリガーの説明
特定のロケーションにあるトリガーの説明を取得できます。
コンソール
Google Cloud コンソールで、[Eventarc] の [トリガー] ページに移動します。
トリガーのリストから、詳細を確認するトリガーをクリックします。
[トリガーの詳細] ページに、名前、リージョン、イベント プロバイダ、イベントタイプ、イベントデータのコンテンツ タイプ、宛先など、トリガーの詳細が表示されます。
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 のトリガーを更新できます。宛先によっては、特定のフィールドを更新できます。
コンソール
Google Cloud コンソールで、[Eventarc] の [トリガー] ページに移動します。
トリガーのリストから、詳細を確認するトリガーをクリックします。
[トリガーの詳細] ページで、[
編集] をクリックします。必要に応じてフィールドを編集し、[保存] をクリックします。
[イベント プロバイダ] や [イベントの宛先] など、使用できないフィールドは更新できません。フィールドの詳細については、コンソールの手順で特定のプロバイダ、イベントタイプ、宛先の説明をご覧ください。
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.create
をmethodName=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.create
をmethodName=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
の場合は、オペレーションが引き続き進行中です。
トリガーの削除
トリガーを削除できます。
コンソール
Google Cloud コンソールで、[Eventarc] の [トリガー] ページに移動します。
トリガーを選択して [
削除] をクリックします。
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
の場合は、オペレーションが引き続き進行中です。