1. 簡介

Eventarc 可輕鬆將 Google Cloud 服務與各種來源的事件連結。您可以在其中建構微服務鬆耦合的分散式事件導向架構。此外,這項服務還會為您處理事件擷取、傳送、安全防護、授權和錯誤處理作業,進而提升開發人員的靈活度和應用程式的復原能力。
Datadog 是雲端應用程式的監控和安全防護平台。這項服務會整合端對端追蹤記錄、指標和記錄檔,讓您觀察應用程式、基礎架構和第三方服務。
在本程式碼研究室中,您將瞭解如何使用 Eventarc,將簡單的 Datadog 監控快訊傳送至 Google Cloud。
課程內容
- 如何探索 Datadog 供應商。
- 如何設定 Datadog 供應商管道。
- 瞭解如何建立工作流程來記錄事件。
- 如何使用管道建立 Eventarc 觸發條件。
- 如何建立 Datadog 監控器。
- 如何測試 Datadog 監控器、Eventarc 觸發條件和工作流程。
2. 設定和需求
自修實驗室環境設定
- 登入 Google Cloud 控制台,然後建立新專案或重複使用現有專案。如果沒有 Gmail 或 Google Workspace 帳戶,請先建立帳戶。



- 專案名稱是這個專案參與者的顯示名稱。這是 Google API 未使用的字元字串。你隨時可以更新該位置資訊。
- 專案 ID 在所有 Google Cloud 專案中不得重複,且設定後即無法變更。Cloud 控制台會自動產生不重複的字串,通常您不需要在意這個字串。在大多數程式碼研究室中,您需要參照專案 ID (通常會標示為
PROJECT_ID)。如果您不喜歡產生的 ID,可以產生另一個隨機 ID。你也可以嘗試自訂名稱,看看是否可用。完成這個步驟後就無法變更,且專案期間都會維持這個設定。 - 請注意,部分 API 會使用第三個值,也就是「專案編號」。如要進一步瞭解這三種值,請參閱說明文件。
- 接著,您需要在 Cloud 控制台中啟用帳單,才能使用 Cloud 資源/API。完成本程式碼研究室的費用應該不高,甚至完全免費。如要關閉資源,避免產生本教學課程以外的費用,您可以刪除自己建立的資源,或刪除整個專案。Google Cloud 新使用者可參加價值$300 美元的免費試用計畫。
啟動 Cloud Shell
雖然可以透過筆電遠端操作 Google Cloud,但在本程式碼研究室中,您將使用 Google Cloud Shell,這是可在雲端執行的指令列環境。
在 Google Cloud 控制台中,點選右上工具列的 Cloud Shell 圖示:

佈建並連線至環境的作業需要一些時間才能完成。完成後,您應該會看到如下的內容:

這部虛擬機器搭載各種您需要的開發工具,並提供永久的 5GB 主目錄,而且可在 Google Cloud 運作,大幅提升網路效能並強化驗證功能。您可以在瀏覽器中完成本程式碼研究室的所有作業。您不需要安裝任何軟體。
設定 gcloud
在 Cloud Shell 中設定專案 ID,並儲存為 PROJECT_ID 變數。
此外,請將 REGION 變數設為 us-central1。您稍後會在該區域中建立資源。
PROJECT_ID=[YOUR-PROJECT-ID] REGION=us-central1 gcloud config set core/project $PROJECT_ID
啟用 API
啟用所有必要服務:
gcloud services enable \ eventarc.googleapis.com \ eventarcpublishing.googleapis.com \ workflows.googleapis.com \ workflowexecutions.googleapis.com
3. 探索 Datadog 供應商
Eventarc 提供者是一種服務或實體,可將事件直接傳送至 Google Cloud,然後再轉送至您的專案。第三方提供者 (例如 Datadog) 是指透過 Eventarc 與 Google Cloud 整合的非 Google Cloud 提供者。
在 Cloud Shell 中執行下列指令,查看 Google Cloud 和第三方供應商的清單:
gcloud eventarc providers list
這份清單列出 Google Cloud 和第三方供應商,以及這些供應商的服務地點:
NAME: storage.googleapis.com LOCATION: asia NAME: cloudaudit.googleapis.com LOCATION: asia NAME: pubsub.googleapis.com LOCATION: asia ...
您可以使用下列指令,將清單縮小至第三方供應商:
gcloud eventarc providers list --filter='eventTypes.type!~^google*'
清單中應該會顯示 Datadog:
NAME: datadog LOCATION: us-central1
您也可以描述 Datadog 提供者,查看支援的事件:
gcloud eventarc providers describe datadog --location $REGION displayName: Datadog eventTypes: - type: datadog.v1.alert name: projects/project-id/locations/us-central1/providers/datadog
4. 設定頻道
如要將專案與供應商整合,您必須設定管道。包括建立管道、擷取管道詳細資料,以及將這些詳細資料傳送給供應商。供應商初始化與管道的連線後,即可開始將事件傳送至專案。
建立頻道
您可以使用 gcloud 為 Datadog 供應商建立管道:
CHANNEL_NAME=datadog-channel gcloud eventarc channels create $CHANNEL_NAME \ --provider datadog \ --location $REGION
您也可以在 Google Cloud 控制台的 Eventarc 頁面中,從「Channels」部分建立管道:

擷取頻道詳細資料
建立管道後,請從 gcloud 擷取管道詳細資料:
gcloud eventarc channels describe $CHANNEL_NAME --location $REGION
畫面會顯示如下的輸出內容:
activationToken: so5g4Kdasda7y2MSasdaGn8njB2 createTime: '2022-03-09T09:53:42.428978603Z' name: projects/project-id/locations/us-central1/channels/datadog-channel provider: projects/project-id/locations/us-central1/providers/datadog pubsubTopic: projects/project-id/topics/eventarc-channel-us-central1-datadog-channel-077 state: PENDING uid: 183d3323-8cas-4e95-8d72-7d8c8b27cf9e updateTime: '2022-03-09T09:53:48.290217299Z'
同樣地,您也可以從 Google Cloud 控制台查看管道:

頻道狀態會顯示頻道的狀態。可以是下列其中一項:
PENDING— 管道已成功建立,且有啟用權杖可與供應商建立連結。如要將管道狀態從「PENDING」變更為「ACTIVE」,必須將權杖提供給供應商,並在管道建立後 24 小時內使用權杖連結管道。ACTIVE:頻道已成功連結供應商。ACTIVE管道已準備好接收及轉送來自供應商的事件。INACTIVE—頻道無法接收事件,也無法重新啟用。供應商已與這個頻道中斷連線,或是頻道啟用權杖已過期,因此供應商未連線。如要重新建立與供應商的連線,請為供應商建立新管道。
啟用權杖是一次性且設有時間限制的權杖,用於在供應商和訂閱者的專案之間建立連線。只有在建立頻道時選取的特定供應商可以使用權杖。權杖的有效期限為頻道建立後 24 小時。24 小時後,頻道會變成 INACTIVE。
將頻道詳細資料傳送給供應商
您必須將下列管道詳細資料傳送給 Datadog 供應商:
- 頻道名稱 (例如
projects/project-id/locations/us-central1/channels/datadog-channel) - 啟用權杖 (例如
so5g4Kdasda7y2MSasdaGn8njB2)
登入 Datadog,前往整合頁面,確認已安裝 Google Eventarc 整合:

在 Google Eventarc 的設定部分,輸入完整管道名稱和啟用權杖:

現在您應該會在管道清單中看到該管道,幾秒後,Google Cloud 控制台也會顯示該管道已啟用:

現在你已可使用頻道!
5. 建立工作流程
您需要在 Google Cloud 中設定目的地,才能接收來自提供者的事件。Eventarc 支援多種事件目的地,例如 Cloud Run、Workflows、Kubernetes 服務。在本例中,請部署工作流程,單純記錄收到的事件。
使用以下內容建立 workflow-datadog1.yaml 檔案:
main:
params: [event]
steps:
- logStep:
call: sys.log
args:
data: ${event}
請注意,工作流程會將事件當做參數接收。這項事件會透過 Eventarc 從 Datadog 監控服務傳送。收到事件後,工作流程只會記錄收到的事件。
部署工作流程:
WORKFLOW_NAME=workflow-datadog1 gcloud workflows deploy $WORKFLOW_NAME \ --source workflow-datadog1.yaml \ --location $REGION
工作流程已部署,但尚未執行。收到 Datadog 快訊時,系統會透過 Eventarc 觸發條件執行這項函式。
6. 建立 Eventarc 觸發條件
現在,您可以使用 Eventarc 觸發條件,將 Datadog 提供者的事件連結至工作流程。
設定服務帳戶
建立觸發條件時,您需要具備 eventarc.eventReceiver 角色的服務帳戶。您可以建立專屬服務帳戶,也可以使用預設的運算服務帳戶。
為簡化作業,請使用預設的運算服務帳戶,並授予 eventarc.eventReceiver 角色:
PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)')
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member serviceAccount:$PROJECT_NUMBER-compute@developer.gserviceaccount.com \
--role roles/eventarc.eventReceiver
建立觸發條件
使用 Datadog 管道、事件類型和工作流程目的地建立觸發條件:
gcloud eventarc triggers create datadog-trigger1 \ --location $REGION \ --destination-workflow $WORKFLOW_NAME \ --destination-workflow-location $REGION \ --channel $CHANNEL_NAME \ --event-filters type=datadog.v1.alert \ --service-account $PROJECT_NUMBER-compute@developer.gserviceaccount.com
您可以列出觸發條件,確認新建立的觸發條件是否已啟用:
gcloud eventarc triggers list --location $REGION NAME: datadog-trigger1 TYPE: datadog.v1.alert DESTINATION: Workflows: workflow-datadog1 ACTIVE: Yes
7. 建立 Datadog 監控器
您現在要建立 Datadog 監控器,並連結至 Eventarc。
這會是 Hello World 類型的監控器,並採用預設值。您將手動觸發這項服務,產生監控警告,進而產生 Google Cloud 中的 Eventarc 事件。
如要在 Datadog 中建立監控機制,請登入 Datadog。將滑鼠游標懸停在主選單中的 Monitors 上,然後按一下子選單中的 New Monitor。螢幕類型有很多種,選擇Metric監控器類型。
在 New Monitor 頁面中,保留步驟 1 和 2 的預設值。
- 在步驟 3 中,將
Alert threshold設為 1 - 在步驟 4 中,將
Test monitor for Eventarc設為監控器名稱,並將Notify your team設為@eventarc_<your-project-id>_<your-region>_<your-channel-name>
請將監控器頁面保持開啟,以便在下一個步驟中測試監控器。
8. 測試監控器和觸發條件
如要測試 Datadog 監控器和 Eventarc 觸發條件,請手動觸發監控器。
在監控器建立頁面底部,按一下 Test Notifications 按鈕:

然後按一下 Run Test 按鈕:

這項操作應會模擬監控工具中的狀態轉換,並觸發 Eventarc 事件。
檢查 workflow-datadog1 工作流程。您應該會看到新的執行作業:

查看執行作業的詳細資料。您應該會在工作流程的輸入內容和記錄中,看到監控快訊產生的 Datadog 事件類型 datadog.v1.alert:

9. 恭喜
恭喜,您已完成本程式碼研究室!您可以繼續進行第二個程式碼研究室,瞭解如何使用 Workflows 回應 Datadog 監控快訊。
涵蓋內容
- 如何探索 Datadog 供應商。
- 如何設定 Datadog 供應商管道。
- 瞭解如何建立工作流程來記錄事件。
- 如何使用管道建立 Eventarc 觸發條件。
- 如何建立 Datadog 監控器。
- 如何測試 Datadog 監控器、Eventarc 觸發條件和工作流程。