您可以使用 Google Cloud 控制台或 Google Cloud CLI (透過終端機或 Cloud Shell) 管理觸發條件。您也可以透過 Eventarc API 管理觸發條件。
列出觸發條件
您可以列出、篩選及排序所有位置的觸發條件。
控制台
在 Google Cloud 控制台中,前往 Eventarc 的「Triggers」(觸發條件) 頁面。
這會列出專案中所有位置的所有觸發程序,並包含觸發程序名稱、區域、事件供應商、目的地和事件類型等詳細資料。
如要依特定屬性篩選觸發條件,請按照下列步驟操作:
- 按一下「篩選器」方塊。
- 從「資源」清單中選取要用來篩選觸發條件的選項,例如「名稱」或「事件管道」。
您可以選取單一屬性,或使用邏輯運算子
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 的「Triggers」(觸發條件) 頁面。
在觸發條件清單中,按一下要查看詳細資料的觸發條件。
「觸發條件詳細資料」頁面會顯示觸發條件的詳細資料,例如名稱、區域、事件供應商、事件類型、事件資料內容類型和目的地。
gcloud
gcloud eventarc triggers describe TRIGGER \ --location=LOCATION
更改下列內容:
TRIGGER:觸發條件的 ID 或完整 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 的「Triggers」(觸發條件) 頁面。
在觸發條件清單中,按一下要查看詳細資料的觸發條件。
在「觸發條件詳細資料」頁面中,按一下 「編輯」。
視需要編輯欄位,然後按一下「儲存」。
請注意,您無法更新任何無法使用的欄位,例如「活動供應商」和「活動目的地」。如要進一步瞭解這些欄位,請參閱控制台操作說明,瞭解特定供應商、事件類型和目的地。
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 或完整 ID。LOCATION:Eventarc 觸發條件的位置。
你可以更新下列任何資訊:
NEW_EVENT_FILTERS:用於設定觸發條件事件轉送的篩選器;例如,methodName=storage.objects.create可以更新為methodName=storage.objects.delete。請注意,建立觸發條件後,type事件篩選器就無法變更。如要使用其他事件類型,請建立新的觸發條件。NEW_SERVICE_ACCOUNT:與觸發程序相關聯的身分與存取權管理 (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 或完整 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 服務。
工作流程
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 或完整 ID。LOCATION:Eventarc 觸發程序的所在位置。
你可以更新下列任何資訊:
NEW_EVENT_FILTERS:用於設定觸發條件的事件轉送篩選器,例如methodName=storage.objects.create可以更新為methodName=storage.objects.delete。請注意,建立觸發條件後,type事件篩選器就無法變更。如要使用其他事件類型,請務必建立新的觸發條件。NEW_SERVICE_ACCOUNT:與觸發程序相關聯的身分與存取權管理 (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:選用。與觸發程序相關聯的身分與存取權管理 (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 稽核記錄觸發條件的方法類型。 例如:{"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 的「Triggers」(觸發條件) 頁面。
選取觸發條件,然後按一下 「刪除」。
gcloud
gcloud eventarc triggers delete TRIGGER
將 TRIGGER 替換為觸發條件的 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,表示作業仍在進行中。