將事件轉送至虛擬私有雲網路中的內部 HTTP 端點

Eventarc 觸發條件會宣告您對特定事件或一組事件感興趣。您可以指定觸發條件的篩選器 (包括事件來源) 和目標目的地,藉此設定事件路徑。

Eventarc 會透過 HTTP 要求,以 CloudEvents 格式將事件傳送至事件接收器。

這些操作說明會示範如何將所有事件類型的事件,轉送至虛擬私有雲 (VPC) 網路中的內部 HTTP 端點。如要設定觸發條件,您也必須提供網路連結 ID。

  • 支援的事件類型包括:

    • 直接事件:由未經中介的事件觸發,例如更新 Cloud Storage 值區中的物件,或將訊息發布至 Pub/Sub 主題。

    • Cloud 稽核記錄事件:透過 Cloud 稽核記錄產生記錄時觸發。

    • 第三方事件:由提供 Eventarc 來源的非 Google 提供者事件觸發。

  • 內部 HTTP 端點可以是虛擬私有雲網路中任何 HTTP 端點的內部 IP 位址完整 DNS 名稱 (FQDN)。以下是兩個可能的事件目的地範例:

    • Compute Engine 虛擬機器 (VM) 執行個體:Compute Engine 執行個體可執行 Google 提供的 Linux 及 Windows Server 專屬公開映像檔,也可執行您建立或從現有系統匯入的私人自訂映像檔。詳情請參閱虛擬機器執行個體
    • 內部負載平衡器: Google Cloud 內部應用程式負載平衡器是以 Proxy 為基礎的區域性第 7 層負載平衡器,可讓您透過內部 IP 位址執行服務及調度服務資源。內部應用程式負載平衡器會將 HTTP 和 HTTPS 流量分配給託管於 Compute Engine、Google Kubernetes Engine (GKE) 和 Cloud Run 的後端。詳情請參閱「內部應用程式負載平衡器總覽」。
  • 虛擬私有雲網路是實體網路的虛擬版本,而且已導入 Google 的正式環境網路。共用虛擬私有雲網路是在主專案中定義的虛擬私有雲網路,可做為附加服務專案中合格資源的集中共用網路。

  • 網路連結是區域資源,可讓您明確授權供應商連線至消費者虛擬私有雲網路。發布事件時,Eventarc 會使用網路連結,與虛擬私有雲網路中託管的內部 HTTP 端點建立連線。

事前準備

建立 Eventarc 觸發程序,將事件傳送至虛擬私有雲網路中的內部 HTTP 端點之前,您必須先建立網路連結,接受 HTTP 目的地服務所在網路和區域中的連線。

這些操作說明假設您已建立虛擬私有雲網路和子網路,並已部署 HTTP 目的地服務。

詳情請參閱「在虛擬私有雲網路的內部 HTTP 端點接收 Pub/Sub 事件」,瞭解如何在虛擬私有雲網路中部署內部 HTTP 端點,並將 Pub/Sub 事件傳送至該端點。

已知限制

將事件轉送至虛擬私有雲網路中的內部 HTTP 端點時,有下列已知限制:

  • 您無法為相同的 DNS 名稱建立多個 Eventarc 觸發條件。

  • 每個專案最多只能有 100 個內部 HTTP 端點的 Eventarc 觸發條件。

  • 系統僅支援下列 Eventarc 觸發條件位置:

    • asia-east1
    • europe-north1
    • europe-west1
    • us-central1
    • us-east1

準備建立觸發條件

建立觸發條件前,請先完成下列先決條件:

主控台

  1. 在 Google Cloud 控制台的專案選擇器頁面中,選取或建立 Google Cloud 專案

    前往專案選取器

  2. 啟用 Cloud Logging 和 Eventarc API。

    啟用 API

  3. 如有需要,請啟用與直接事件相關的 API。舉例來說,如果是 Cloud Run 函式事件,請啟用 cloudfunctions.googleapis.com

  4. 如果沒有,請建立使用者代管的服務帳戶,然後授予必要角色和權限,讓 Eventarc 管理目標服務的事件。

    1. 前往 Google Cloud 控制台的「建立服務帳戶」頁面。

      前往「Create service account」(建立服務帳戶)

    2. 選取專案。

    3. 在「Service account name」(服務帳戶名稱) 欄位中輸入名稱。 Google Cloud 控制台會根據這個名稱填入「服務帳戶 ID」欄位。

      在「服務帳戶說明」欄位中輸入說明。例如:Service account for event trigger

    4. 按一下「建立並繼續」

    5. 如要提供適當的存取權,請在「Select a role」(請選擇角色) 清單中,選取要授予服務帳戶的必要 Identity and Access Management (IAM) 角色。詳情請參閱虛擬私有雲網路中內部 HTTP 端點的角色和權限

      如要新增其他角色,請按一下「新增其他角色」,然後新增每個其他角色。

    6. 按一下「繼續」

    7. 按一下「完成」,即可完成帳戶建立程序。

  5. 如要為 Cloud Storage 的直接事件建立觸發條件,請將 Pub/Sub 發布者角色 (roles/pubsub.publisher) 授予 Cloud Storage 服務代理人:

    1. 前往 Google Cloud 控制台的「IAM」頁面。

      前往「身分與存取權管理」頁面

    2. 選取「包含 Google 提供的角色授權」核取方塊。

    3. 在「主體」欄中,找出格式為 service-PROJECT_NUMBER@gs-project-accounts.iam.gserviceaccount.com 的 Cloud Storage 服務代理程式,然後按一下對應資料列中的「編輯主體」

    4. 按一下 「新增角色」「新增其他角色」

    5. 在「Select a role」(選取角色) 清單中,篩選「Pub/Sub Publisher」(Pub/Sub 發布者),然後選取該角色。

    6. 按一下 [儲存]

  6. 如果虛擬私有雲網路中內部 HTTP 端點的 URI 使用 Cloud DNS 可解析的服務內部 DNS 名稱,請在虛擬私有雲主機專案中,將 DNS 對等互連角色 (roles/dns.peer) 授予 Eventarc 服務代理程式。

    請注意,視您設定 VPC 網路的方式而定,VPC 主專案也可能是 Eventarc 觸發條件專案。

    1. 在 Google Cloud 控制台的專案選取器頁面中,選取 VPC 主專案。

      前往專案選取器

    2. 前往 Google Cloud 控制台的「IAM」頁面。

      前往「身分與存取權管理」頁面

    3. 選取「包含 Google 提供的角色授權」核取方塊。

    4. 修改或新增 Eventarc 服務代理程式做為主體:

      • 如果 Eventarc 服務代理程式在專案中已有其他角色,請找出包含主體的資料列 service-PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com,然後點選該列中的 「編輯主體」,並按一下 「新增其他角色」

      • 如果 Eventarc 服務代理在專案中沒有任何現有角色,請按一下「授予存取權」,然後在表單 service-PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com 中輸入電子郵件地址。

      PROJECT_NUMBER 替換為 Eventarc 觸發程序專案的專案編號 Google Cloud。您可以在 Google Cloud 控制台的「歡迎」頁面找到專案編號,也可以執行下列指令:

      gcloud projects describe PROJECT_ID --format='value(projectNumber)'
    5. 在「Select a role」(選取角色) 清單中,篩選「DNS Peer」(DNS 對等互連),然後選取該角色。

    6. 按一下 [儲存]

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. 啟用 Cloud Logging、Eventarc 和 Eventarc Publishing API。

    gcloud services enable logging.googleapis.com \
      eventarc.googleapis.com \
      eventarcpublishing.googleapis.com
  3. 如有需要,請啟用與活動相關的 API。舉例來說,如果是 Cloud Run 函式事件,請啟用 cloudfunctions.googleapis.com

  4. 如果沒有,請建立使用者代管的服務帳戶,然後授予必要的角色和權限,讓 Eventarc 管理目標服務的事件。

    1. 建立服務帳戶:

      gcloud iam service-accounts create SERVICE_ACCOUNT_NAME

      SERVICE_ACCOUNT_NAME 替換為服務帳戶名稱。長度必須介於 6 至 30 個字元之間,可以使用小寫英數字元和破折號。建立服務帳戶後,即無法變更名稱。

    2. 授予必要的 Identity and Access Management (IAM) 角色或權限。詳情請參閱虛擬私有雲網路中內部 HTTP 端點的角色和權限

  5. 如果虛擬私有雲網路中內部 HTTP 端點的 URI 使用 Cloud DNS 可解析的服務內部 DNS 名稱,請在虛擬私有雲主專案中,將 DNS 對等互連角色 (roles/dns.peer) 授予 Eventarc 服務代理程式。

    請注意,視您設定 VPC 網路的方式而定,VPC 主專案也可能是 Eventarc 觸發條件專案。

    gcloud projects add-iam-policy-binding VPC_HOST_PROJECT_ID \
        --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com \
        --role=roles/dns.peer

    更改下列內容:

    • VPC_HOST_PROJECT_ID:虛擬私有雲主專案的 Google Cloud專案 ID。
    • PROJECT_NUMBER:Eventarc 觸發條件專案的專案編號。 Google Cloud您可以在 Google Cloud 控制台的「歡迎」頁面找到專案編號,也可以執行下列指令:
    gcloud projects describe PROJECT_ID --format='value(projectNumber)'
  6. 如要為 Cloud Storage 的直接事件建立觸發條件,請將專案的 Pub/Sub 發布者角色 (roles/pubsub.publisher) 授予 Cloud Storage 服務代理:

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:service-PROJECT_NUMBER@gs-project-accounts.iam.gserviceaccount.com \
        --role=roles/pubsub.publisher

建立觸發條件

您可以使用 Google Cloud CLI 建立 Eventarc 觸發條件,或透過 Google Cloud 控制台建立。

主控台

  1. 在 Google Cloud 控制台中,前往 Eventarc「Triggers」(觸發條件) 頁面。

    前往「Triggers」(觸發條件)

  2. 按一下「建立觸發條件」
  3. 輸入觸發條件名稱

    這是觸發條件的 ID,開頭必須是英文字母。最多可包含 63 個小寫英文字母、數字或連字號。

  4. 選取「Google 來源」或「第三方」做為「觸發條件類型」
  5. 選取「活動供應商」

    這是事件的來源服務。如果是 Google 來源,則可直接或透過稽核記錄查看。

  6. 視您要轉送的事件類型而定,請執行下列其中一項操作:
    1. 直接事件:在「Event type」(事件類型) 清單中,從「Direct」(直接) 事件選取事件類型。
      1. 如要使用直接 Cloud Pub/Sub 事件,請在「Select a Cloud Pub/Sub topic」(選取 Cloud Pub/Sub 主題) 清單中選取主題,或接受「None」(無) 的預設值,系統就會為您建立新主題。
      2. 如果是 Cloud Storage 直接事件,請指定或瀏覽 Cloud Storage Bucket 的全域不重複 ID。
    2. 稽核記錄事件:在「事件類型」清單中,從「透過 Cloud Audit Logs」事件選取事件類型,然後選取下列其中一個選項:
      • 任何資源:這是預設選項,包括在建立時產生 ID 的動態建立資源。
      • 特定資源:您必須提供完整資源名稱。
      • 路徑模式:您可以使用路徑模式篩選資源。例如,輸入 projects/_/buckets/eventarc-bucket/objects/random.txtprojects/_/buckets/**/r*.txt
    3. 第三方事件:在「管道」清單中選取管道,然後在「事件類型」清單中選取事件。

      詳情請參閱「建立管道並擷取詳細資料」。

  7. 如適用於活動類型,請在「活動資料內容類型」清單中選取「application/json」或「application/protobuf」,指定活動酬載的編碼。

    請注意,以 JSON 格式設定的事件酬載會比以 Protobuf 格式設定的酬載大。視事件目的地和事件大小限制而定,這可能會影響可靠性。詳情請參閱「已知問題」。

  8. 如果適用於活動供應商,請按一下「新增篩選器」,然後指定下列項目:
    1. 在「屬性 1」欄位中,根據您選擇的直接事件,選取可做為事件篩選器的資源 ID
    2. 選取運算子:
    3. 在「屬性值 1」欄位中,根據所選運算子輸入確切值或套用路徑模式。
    4. 如果適用「屬性 2」欄位,請指定適當的值。
  9. 在「Region」(區域) 清單中選取位置。

    為避免任何效能和資料落地問題,位置必須與產生事件的 Google Cloud 服務位置一致。

    請注意,這個事件目的地僅支援下列位置:

    • asia-east1
    • europe-north1
    • europe-west1
    • us-east1

    詳情請參閱「Eventarc 區域」。

  10. 選取要叫用服務的服務帳戶

    或者,您也可以建立新的服務帳戶。

    這會指定與觸發程序相關聯的 IAM 服務帳戶電子郵件,以及您先前授予 Eventarc 所需特定角色的帳戶。

  11. 在「Event destination」(事件目的地) 清單中,選取「HTTP endpoint (internal)」(HTTP 端點 (內部))
    1. 指定「目的地 URI」。這是虛擬私有雲網路中內部 HTTP 端點的 URI,用於接收觸發條件的事件。URI 可以是網路附件所對應虛擬私有雲網路中的靜態內部 IP 位址,也可以是 Cloud DNS 可解析的服務內部 DNS 名稱

      如果 HTTP 端點使用內部 DNS 名稱,Eventarc 會自動建立 DNS 對等互連區域,並將 DNS 要求轉送至目標 VPC 網路中的 DNS 區域。透過 DNS 對等互連,您可以將某個區域命名空間送出的記錄要求傳送到另一個虛擬私有雲網路。詳情請參閱「對等互連區域」和「建立對等互連區域」。

      請注意,您無法為同一個 DNS 名稱建立多個觸發條件。

    2. 在「Network attachment」(網路連結) 清單中,選取網路連結資源的 ID。建立網路連結後,系統就會產生這個 ID。詳情請參閱建立網路連結

      服務供應商虛擬私有雲網路可透過網路連結,與消費者虛擬私有雲網路建立連線。Eventarc 會使用網路連結,與消費者虛擬私有雲網路中託管的內部 HTTP 端點建立連線,並發布事件。

      建立網路連結時,您可以透過生產者接受和拒絕清單明確授權連線;無論如何,Eventarc 都可以使用適當的專案 ID 更新網路連結的接受清單,不需您介入。

  12. 點選「建立」
  13. 觸發條件建立後,事件來源篩選器就無法修改。 請改為建立新的觸發條件,並刪除先前的觸發條件。詳情請參閱「管理觸發條件」。

gcloud

您可以執行 gcloud eventarc triggers create 指令,並搭配必要和選用旗標,建立觸發條件。

直接事件

gcloud eventarc triggers create TRIGGER \
    --location=LOCATION \
    --destination-http-endpoint-uri=ENDPOINT_URI \
    --network-attachment=NETWORK_ATTACHMENT_ID \
    --event-filters="type=EVENT_FILTER_TYPE" \
    --event-filters="COLLECTION_ID=RESOURCE_ID" \
    --event-filters-path-pattern="COLLECTION_ID=PATH_PATTERN" \
    --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com"

更改下列內容:

  • TRIGGER:觸發條件的 ID 或完整 ID。
  • LOCATION:Eventarc 觸發程序的所在位置。或者,您也可以設定 eventarc/location 屬性,例如 gcloud config set eventarc/location us-central1

    為避免任何效能和資料落地問題,位置必須與產生事件的 Google Cloud 服務位置相符。

    請注意,這個事件目的地僅支援下列位置:

    • asia-east1
    • europe-north1
    • europe-west1
    • us-central1
    • us-east1

    詳情請參閱「Eventarc 區域」。

  • ENDPOINT_URI:虛擬私有雲網路中內部 HTTP 端點的 URI,用於接收觸發條件的事件。URI 可以是網路附件所定址的虛擬私有雲網路中的靜態內部 IP 位址,也可以是 Cloud DNS 可解析的服務內部 DNS 名稱

    如果 HTTP 端點使用內部 DNS 名稱,Eventarc 會自動建立 DNS 對等互連區域,並將 DNS 要求轉送至目標虛擬私有雲網路中的 DNS 區域。透過 DNS 對等互連,您可以將某個區域命名空間送出的記錄要求傳送到另一個虛擬私有雲網路。詳情請參閱「對等互連區域」和「建立對等互連區域」。

    請注意,您無法為同一個 DNS 名稱建立多個觸發條件。

  • NETWORK_ATTACHMENT_ID:網路附件資源的專屬 ID。建立網路附件後,系統就會產生 ID。詳情請參閱建立網路連結

    服務生產端虛擬私有雲網路可透過網路連結,啟動與消費者虛擬私有雲網路的連線。Eventarc 會使用網路連結,與消費者虛擬私有雲網路中託管的內部 HTTP 端點建立連線,並發布事件。

    建立網路附件時,您可以透過生產端接受和拒絕清單,明確授權連線;無論如何,Eventarc 都能使用適當的專案 ID 更新網路附件的接受清單,無需您介入。

  • EVENT_FILTER_TYPE:事件的 ID。 方法的 API 呼叫成功時,系統會產生事件。如果是長時間執行的作業,只有在作業結束時,且動作順利完成時,才會產生事件。請參閱支援的直接事件類型清單。

  • COLLECTION_ID (選用):可做為事件篩選器的資源元件;舉例來說,如果是 Cloud Run 函式,這就是 function

  • RESOURCE_ID:做為相關聯集合篩選值的資源 ID。詳情請參閱「資源 ID」。

  • PATH_PATTERN:篩選資源時套用的路徑模式

  • SERVICE_ACCOUNT_NAME:使用者管理的服務帳戶名稱。

  • PROJECT_ID:您的 Google Cloud 專案 ID。

注意:

  • --event-filters="type=EVENT_FILTER_TYPE" 旗標為必要旗標。如果未設定其他事件篩選器,系統會比對所有資源的事件。
  • EVENT_FILTER_TYPE建立後即無法變更。如要變更 EVENT_FILTER_TYPE,請建立新的觸發條件並刪除先前的觸發條件。
  • 每個觸發條件可以有多個事件篩選器,以半形逗號分隔,放在一個 --event-filters=[ATTRIBUTE=VALUE,...] 標記中,也可以重複標記來新增更多篩選器。只有符合所有篩選條件的事件會傳送至目的地。不支援萬用字元和規則運算式,但使用 --event-filters-path-pattern 標記時,可以定義資源路徑模式
  • --service-account 標記用於指定與觸發條件相關聯的 IAM 服務帳戶電子郵件。

範例:

gcloud eventarc triggers create helloworld-trigger \
    --location=us-central1 \
    --destination-http-endpoint-uri=http://my-vm.us-central1-a.c.my-project.internal \
    --network-attachment="projects/my-project/regions/us-central1/networkAttachments/my-attachment-name" \
    --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \
    --service-account=my-service-account@my-project.iam.gserviceaccount.com

稽核記錄事件

gcloud eventarc triggers create TRIGGER \
    --location=LOCATION \
    --destination-http-endpoint-uri=ENDPOINT_URI \
    --network-attachment=NETWORK_ATTACHMENT_ID \
    --event-filters="type=google.cloud.audit.log.v1.written" \
    --event-filters="serviceName=SERVICE_NAME" \
    --event-filters="methodName=METHOD_NAME" \
    --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com"

更改下列內容:

  • TRIGGER:觸發條件的 ID 或完整 ID。
  • LOCATION:Eventarc 觸發條件的位置。或者,您也可以設定 eventarc/location 屬性,例如 gcloud config set eventarc/location us-central1

    為避免任何效能和資料落地問題,位置必須與產生事件的 Google Cloud 服務位置相符。支援的地點如下:

    • asia-east1
    • europe-north1
    • europe-west1
    • us-central1
    • us-east1

    詳情請參閱「Eventarc 區域」。

  • ENDPOINT_URI:虛擬私有雲網路中內部 HTTP 端點的 URI,用於接收觸發條件的事件。URI 可以是網路附件所定址的虛擬私有雲網路中的靜態內部 IP 位址,也可以是 Cloud DNS 可解析的服務內部 DNS 名稱

    如果 HTTP 端點使用內部 DNS 名稱,Eventarc 會自動建立 DNS 對等互連區域,並將 DNS 要求轉送至目標虛擬私有雲網路中的 DNS 區域。透過 DNS 對等互連,您可以將某個區域命名空間送出的記錄要求傳送到另一個虛擬私有雲端網路。詳情請參閱「對等互連區域」和「建立對等互連區域」。

    請注意,您無法為同一個 DNS 名稱建立多個觸發條件。

  • NETWORK_ATTACHMENT_ID:網路附件資源的專屬 ID。建立網路附件後,系統就會產生 ID。詳情請參閱建立網路連結

    服務生產端虛擬私有雲網路可透過網路連結,啟動與服務使用端虛擬私有雲網路的連線。Eventarc 會使用網路連結,與消費者虛擬私有雲網路中託管的內部 HTTP 端點建立連線,並發布事件。

    建立網路附件時,您可以透過生產端接受和拒絕清單,明確授權連線;無論如何,Eventarc 都能使用適當的專案 ID 更新網路附件的接受清單,無需您介入。

  • SERVICE_NAME:Google Cloud 服務的 ID。請參閱支援的稽核記錄事件類型清單。

  • METHOD_NAME:作業的 ID。 請參閱支援的稽核記錄事件類型清單。

  • SERVICE_ACCOUNT_NAME:使用者管理的服務帳戶名稱。

  • PROJECT_ID:您的 Google Cloud 專案 ID。

注意:

  • 必須使用下列旗標:
    • --event-filters="type=google.cloud.audit.log.v1.written"
    • --event-filters="serviceName=VALUE"
    • --event-filters="methodName=VALUE"
  • (選用) 使用 --event-filters="resourceName=VALUE" 旗標並指定資源的完整路徑,即可篩選特定資源的事件。對於在建立時產生 ID 的動態建立資源,請省略旗標。或者,使用 --event-filters-path-pattern="resourceName=VALUE" 標記並指定資源路徑模式,篩選一組資源的事件。
  • 每個觸發條件可以有多個事件篩選器,以半形逗號分隔,放在一個 --event-filters=[ATTRIBUTE=VALUE,...] 標記中,也可以重複標記來新增更多篩選器。只有符合所有篩選條件的事件會傳送至目的地。不支援萬用字元和規則運算式,但使用 --event-filters-path-pattern 標記時,可以定義資源路徑模式
  • 建立觸發條件後,就無法變更事件篩選器類型。如要使用其他事件類型,請建立新的觸發條件。
  • --service-account 標記用於指定與觸發條件相關聯的 IAM 服務帳戶電子郵件。

範例:

gcloud eventarc triggers create helloworld-trigger \
    --location=us-central1 \
    --destination-http-endpoint-uri=http://10.10.10.2 \
    --network-attachment="projects/my-project/regions/us-central1/networkAttachments/my-attachment" \
    --event-filters="type=google.cloud.audit.log.v1.written" \
    --event-filters="serviceName=eventarc.googleapis.com" \
    --event-filters="methodName=google.cloud.eventarc.v1.Eventarc.GetTrigger" \
    --event-filters="resourceName=projects/my-project/locations/us-central1/triggers/my-trigger" \
    --service-account=my-service-account@my-project.iam.gserviceaccount.com

第三方事件

gcloud eventarc triggers create TRIGGER \
    --location=LOCATION \
    --destination-http-endpoint-uri=ENDPOINT_URI \
    --network-attachment=NETWORK_ATTACHMENT_ID \
    --event-filters="type=EVENT_FILTER_TYPE" \
    --channel=CHANNEL_NAME \
    --project=PROJECT_ID \
    --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com"

更改下列內容:

  • TRIGGER:觸發條件的 ID 或完整 ID。
  • LOCATION:Eventarc 觸發程序的所在位置。或者,您也可以設定 eventarc/location 屬性,例如 gcloud config set eventarc/location us-central1

    為避免任何效能和資料落地問題,位置必須與產生事件的 Google Cloud 服務位置相符。

    請注意,這個事件目的地僅支援下列位置:

    • asia-east1
    • europe-north1
    • europe-west1
    • us-central1
    • us-east1

    詳情請參閱「Eventarc 區域」。

  • ENDPOINT_URI:虛擬私有雲網路中內部 HTTP 端點的 URI,用於接收觸發條件的事件。URI 可以是網路附件所定址的虛擬私有雲網路中的靜態內部 IP 位址,也可以是 Cloud DNS 可解析的服務內部 DNS 名稱

    如果 HTTP 端點使用內部 DNS 名稱,Eventarc 會自動建立 DNS 對等互連區域,並將 DNS 要求轉送至目標虛擬私有雲網路中的 DNS 區域。透過 DNS 對等互連,您可以將某個區域命名空間送出的記錄要求傳送到另一個虛擬私有雲端網路。詳情請參閱「對等互連區域」和「建立對等互連區域」。

    請注意,您無法為同一個 DNS 名稱建立多個觸發條件。

  • NETWORK_ATTACHMENT_ID:網路附件資源的專屬 ID。建立網路附件後,系統就會產生 ID。詳情請參閱建立網路連結

    服務生產端虛擬私有雲網路可透過網路連結,啟動與服務使用端虛擬私有雲網路的連線。Eventarc 會使用網路連結,與消費者虛擬私有雲網路中託管的內部 HTTP 端點建立連線,並發布事件。

    建立網路附件時,您可以透過生產端接受和拒絕清單,明確授權連線;無論如何,Eventarc 都能使用適當的專案 ID 更新網路附件的接受清單,無需您介入。

  • EVENT_FILTER_TYPE:供應器支援的事件類型。

  • CHANNEL_NAME:管道名稱。詳情請參閱「建立管道並擷取詳細資料」。

  • PROJECT_ID:您的 Google Cloud 專案 ID。

  • SERVICE_ACCOUNT_NAME:使用者管理的服務帳戶名稱。

注意:

  • --event-filters="type=EVENT_FILTER_TYPE" 旗標為必要旗標。如果未設定其他事件篩選器,系統會比對所有資源的事件。
  • EVENT_FILTER_TYPE建立後即無法變更。如要變更 EVENT_FILTER_TYPE,請建立新的觸發條件並刪除先前的觸發條件。
  • 每個觸發條件可以有多個事件篩選器,以半形逗號分隔,放在一個 --event-filters=[ATTRIBUTE=VALUE,...] 標記中,也可以重複標記來新增更多篩選器。只有符合所有篩選條件的事件,才會傳送至目的地。系統不支援萬用字元和規則運算式。
  • --service-account 標記用於指定與觸發條件相關聯的 IAM 服務帳戶電子郵件。

範例:

gcloud eventarc triggers create helloworld-trigger \
    --location=us-central1 \
    --destination-http-endpoint-uri=http://my-vm.us-central1-a.c.my-project.internal \
    --network-attachment="projects/my-project/regions/us-central1/networkAttachments/my-attachment-name" \
    --event-filters="type=third-party-event-type" \
    --channel=my-channel \
    --project=my-project-ID \
    --service-account=my-service-account@my-project.iam.gserviceaccount.com

列出觸發條件

如要確認是否已建立觸發程序,請使用 Google Cloud CLI 或 Google Cloud 控制台列出 Eventarc 觸發程序。

主控台

  1. 在 Google Cloud 控制台中,前往 Eventarc「Triggers」(觸發條件) 頁面。

    前往「Triggers」(觸發條件)

    這個頁面會列出所有位置的觸發條件,並包含名稱、區域、事件供應商、目的地等詳細資料。

  2. 如要篩選觸發條件,請按照下列步驟操作:

    1. 按一下「篩選器」或「篩選器觸發條件」欄位。
    2. 在「屬性」清單中,選取要用來篩選觸發條件的選項。

    您可以選取單一屬性,或使用邏輯運算子 OR 新增更多屬性。

  3. 如要排序觸發條件,請按一下任何支援的欄標題旁的「排序」

gcloud

執行下列指令來列出觸發條件:

gcloud eventarc triggers list --location=-

這個指令會列出所有位置的觸發條件,並包含名稱、類型、目的地和狀態等詳細資料。

後續步驟