發布 Google 來源的事件

您可以為特定 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 APIEventarc Publishing API

控制台

啟用 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

控制台

  1. 在 Google Cloud 控制台中,依序前往「Eventarc」>「Bus」(匯流排) 頁面。

    前往「Bus」(匯流排) 頁面

  2. 您可以建立巴士,或在更新巴士時,按一下「編輯」

  3. 在「編輯匯流排」頁面中,如要新增訊息來源,請按一下「新增來源」

    1. 在「新增訊息來源」窗格中,針對 Google API 訊息供應商,接受預設的 google-api-source,或輸入其他訊息來源名稱。
    2. 點選「建立」
  4. 按一下 [儲存]

gcloud

  1. 開啟終端機。

  2. 您可以使用 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_NAMEGoogleApiSource 資源的 ID 或完整識別碼,代表特定匯流排的 Google API 事件訂閱項目
    • BUS_NAME:您要訂閱 Google API 事件的匯流排 ID 或完整識別碼
    • BUS_PROJECT_ID:匯流排的 Google Cloud 專案 ID

    選用:您也可以使用下列標記:

    • --async,讓指令立即傳回,不必等待進行中的作業完成。
    • --crypto-key:指定客戶管理的加密金鑰的完整名稱;如未指定,則使用 Google-owned and managed keys 。
    • --logging-config,設定記錄層級,必須是下列其中一個值:NONEDEBUGINFONOTICEWARNINGERRORCRITICALALERTEMERGENCY。詳情請參閱 LogSeverity

REST API

如要啟用 Google 來源事件,請使用 projects.locations.googleApiSources.create 方法。

使用任何要求資料之前,請先替換以下項目:

  • GOOGLE_API_SOURCE_NAME:代表特定匯流排 Google API 事件訂閱項目的 GoogleApiSource 資源顯示名稱,例如 my_google_source
  • LABEL_KEYLABEL_VALUE:選用。標籤鍵/值組合的對應,可協助您整理資源。 Google Cloud 詳情請參閱「什麼是標籤?
  • ANNOTATION_KEYANNOTATION_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 Cloud
  • LOCATION:建立 GoogleApiSource 資源的支援區域,例如 us-central1
  • LOG_SEVERITY:選用。記錄項目所述事件的最低嚴重程度。只能設定為NONEDEBUGINFONOTICEWARNINGERRORCRITICALALERTEMERGENCY 之一。預設值為 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

控制台

  1. 在 Google Cloud 控制台中,依序前往「Eventarc」>「Bus details」(匯流排詳細資料) 頁面。

    前往「巴士詳細資料」

  2. 按一下「編輯」

  3. 在「編輯匯流排」頁面中,如要刪除 Google API 訊息提供者,請按一下「google-api-source」訊息來源 (或您為其指定的名稱) 的「刪除資源」

  4. 在「Delete resource」(刪除資源) 提示中,按一下「Confirm」(確認)

  5. 按一下 [儲存]

gcloud

  1. 開啟終端機。

  2. 您可以使用 gcloud eventarc google-api-sources delete 指令停用 Google 來源事件:

    gcloud eventarc google-api-sources delete GOOGLE_API_SOURCE_NAME \
        --location=REGION

    更改下列內容:

    • GOOGLE_API_SOURCE_NAMEGoogleApiSource 資源的 ID 或完整 ID
    • REGIONGoogleApiSource 資源的位置

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 來源事件。

後續步驟