您可以為特定 Eventarc Advanced 匯流排啟用或停用 Google 來源事件的收集和發布功能。
Google 來源的事件是由未中介的事件直接觸發,例如建立 Cloud Run 函式,或是 Dataflow 工作狀態變更。詳情請參閱「Eventarc 支援的 Google 事件類型」。
注意事項:
- 每個專案在每個區域最多只能有 1 個資源。
GoogleApiSource
Google Cloud - 您只能在與
GoogleApiSource
資源相同的 Google Cloud 專案中,發布 Google 來源的事件。 - 您可以將事件發布至與
GoogleApiSource
資源所在專案不同的 Google Cloud 專案 中的匯流排。您可以透過 gcloud CLI 或傳送要求至 Eventarc API 來設定這項功能。
事前準備
如果尚未啟用,請啟用 Eventarc API 和 Eventarc Publishing API。
控制台
gcloud
gcloud services enable eventarc.googleapis.com eventarcpublishing.googleapis.com
啟用 Google 來源事件
如要發布 Google 來源的事件,您必須建立 GoogleApiSource
資源。這項資源代表特定 Eventarc Advanced 匯流排的特定 Google Cloud 專案中,Google API 事件的訂閱項目。
您可以透過下列方式啟用發布 Google 來源事件:
- 在 Google Cloud 控制台中
- 在終端機或 Cloud Shell 中使用 Google Cloud CLI
傳送要求至 Eventarc API
控制台
在 Google Cloud 控制台中,依序前往「Eventarc」>「Bus」(匯流排) 頁面。
您可以建立巴士,或在更新巴士時,按一下 「編輯」。
在「編輯匯流排」頁面中,如要新增訊息來源,請按一下「新增來源」。
- 在「新增訊息來源」窗格中,針對 Google API 訊息供應商,接受預設的
google-api-source
,或輸入其他訊息來源名稱。 - 點選「建立」。
- 在「新增訊息來源」窗格中,針對 Google API 訊息供應商,接受預設的
按一下 [儲存]。
gcloud
開啟終端機。
您可以使用
gcloud eventarc google-api-sources create
指令啟用 Google 來源事件:gcloud eventarc google-api-sources create GOOGLE_API_SOURCE_NAME \ --destination-message-bus=BUS_NAME \ --destination-message-bus-project=BUS_PROJECT_ID
更改下列內容:
GOOGLE_API_SOURCE_NAME
:GoogleApiSource
資源的 ID 或完整識別碼,代表特定匯流排的 Google API 事件訂閱項目BUS_NAME
:您要訂閱 Google API 事件的匯流排 ID 或完整識別碼BUS_PROJECT_ID
:匯流排的 Google Cloud 專案 ID
選用:您也可以使用下列標記:
--async
,讓指令立即傳回,不必等待進行中的作業完成。--crypto-key
:指定客戶管理的加密金鑰的完整名稱;如未指定,則使用 Google-owned and managed keys 。--logging-config
,設定記錄層級,必須是下列其中一個值:NONE
、DEBUG
、INFO
、NOTICE
、WARNING
、ERROR
、CRITICAL
、ALERT
、EMERGENCY
。詳情請參閱LogSeverity
。
REST API
如要啟用 Google 來源事件,請使用 projects.locations.googleApiSources.create
方法。
使用任何要求資料之前,請先替換以下項目:
GOOGLE_API_SOURCE_NAME
:代表特定匯流排 Google API 事件訂閱項目的GoogleApiSource
資源顯示名稱,例如my_google_source
。LABEL_KEY
和LABEL_VALUE
:選用。標籤鍵/值組合的對應,可協助您整理資源。 Google Cloud 詳情請參閱「什麼是標籤?」ANNOTATION_KEY
和ANNOTATION_VALUE
:選用。任意格式文字的註解鍵/值組合對應。您可以使用這些標籤,附加與資源相關的任意資訊。詳情請參閱「註解」一節。DESTINATION
:Eventarc Advanced 匯流排的完整 ID,Google 來源事件應以projects/PROJECT_NAME/locations/LOCATION/messageBuses/BUS_NAME
格式發布至該匯流排。詳情請參閱「建立匯流排來傳送訊息」。ENCRYPT_KEY
:選用。GoogleApiSource
資源應使用的 Cloud KMS 金鑰,用於加密資料,格式為projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
。詳情請參閱「使用客戶管理的加密金鑰」。PROJECT_ID
:要建立GoogleApiSource
資源的專案 ID。 Google CloudLOCATION
:建立GoogleApiSource
資源的支援區域,例如us-central1
。LOG_SEVERITY
:選用。記錄項目所述事件的最低嚴重程度。只能設定為NONE
、DEBUG
、INFO
、NOTICE
、WARNING
、ERROR
、CRITICAL
、ALERT
或EMERGENCY
之一。預設值為NONE
。詳情請參閱LogSeverity
。
JSON 要求主體:
{ "displayName": "GOOGLE_API_SOURCE_NAME", "labels": {"LABEL_KEY":"LABEL_VALUE"}, "annotations": {"ANNOTATION_KEY":"ANNOTATION_VALUE"}, "destination": "DESTINATION", "cryptoKeyName": "ENCRYPT_KEY", "loggingConfig": {"logSeverity":"LOG_SEVERITY"} }
如要傳送要求,請展開以下其中一個選項:
如果成功,回應主體會包含新建立的 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/googleApiSources/GOOGLE_API_SOURCE_NAME", "verb": "create", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
系統現在會收集與 GoogleApiSource
資源位於相同 Google Cloud 專案的 Google 來源事件,並發布至匯流排。
停用 Google 來源相關事件
如要禁止特定Google Cloud 專案中的 Google 來源將事件發布至 Eventarc Advanced 匯流排,請刪除 GoogleApiSource
資源。
您可以透過下列方式停用發布 Google 來源的事件:
- 在 Google Cloud 控制台中
- 在終端機或 Cloud Shell 中使用 gcloud CLI
傳送要求至 Eventarc API
控制台
在 Google Cloud 控制台中,依序前往「Eventarc」>「Bus details」(匯流排詳細資料) 頁面。
按一下「編輯」
。在「編輯匯流排」頁面中,如要刪除 Google API 訊息提供者,請按一下「google-api-source」訊息來源 (或您為其指定的名稱) 的「刪除資源」
。在「Delete resource」(刪除資源) 提示中,按一下「Confirm」(確認)。
按一下 [儲存]。
gcloud
開啟終端機。
您可以使用
gcloud eventarc google-api-sources delete
指令停用 Google 來源事件:gcloud eventarc google-api-sources delete GOOGLE_API_SOURCE_NAME \ --location=REGION
更改下列內容:
GOOGLE_API_SOURCE_NAME
:GoogleApiSource
資源的 ID 或完整 IDREGION
:GoogleApiSource
資源的位置
REST API
如要停用 Google 來源事件,請使用 projects.locations.googleApiSources.delete
方法。
使用任何要求資料之前,請先替換以下項目:
PROJECT_ID
:建立GoogleApiSource
資源的 Google Cloud 專案 ID。LOCATION
:建立GoogleApiSource
資源的區域,例如us-central1
。GOOGLE_API_SOURCE_NAME
:要刪除的GoogleApiSource
資源名稱。
如要傳送要求,請展開以下其中一個選項:
如果成功,回應主體會包含新建立的 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/googleApiSources/GOOGLE_API_SOURCE_NAME", "verb": "delete", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
系統不會再收集及發布與已刪除GoogleApiSource
資源位於同一 Google Cloud 專案的 Google 來源事件。