1. 簡介
Eventarc 可讓您輕鬆連結 Google Cloud 服務與各種來源的事件。Kubernetes 可讓您建構事件導向的架構,其中微服務的鬆耦合和分佈情形很低。它也能處理事件擷取、提交、安全性、授權和錯誤處理等工作,提升開發人員的靈活性和應用程式彈性。
Datadog 是雲端應用程式的監控與安全性平台。這項服務整合了端對端追蹤記錄、指標和記錄檔,方便您觀測應用程式、基礎架構和第三方服務。
在第一個程式碼研究室中,您將瞭解如何使用 Eventarc 將簡單的 Datadog 監控快訊轉送至 Google Cloud。
課程內容
- 如何探索 Datadog 供應商。
- 如何為 Datadog 供應商設定管道。
- 如何建立記錄事件的工作流程。
- 如何透過管道建立 Eventarc 觸發條件。
- 如何建立 Datadog 監控器。
- 如何測試 Datadog 監控、Eventarc 觸發條件和工作流程。
2. 設定和需求
自修環境設定
- 登入 Google Cloud 控制台,建立新專案或重複使用現有專案。如果您還沒有 Gmail 或 Google Workspace 帳戶,請先建立帳戶。
- 「專案名稱」是這項專案參與者的顯示名稱。這是 Google API 未使用的字元字串。您隨時可以更新這項資訊。
- 所有 Google Cloud 專案的專案 ID 均不得重複,且設定後即無法變更。Cloud 控制台會自動產生一個不重複的字串。但通常是在乎它何在在大部分的程式碼研究室中,您必須參照專案 ID (通常為
PROJECT_ID
)。如果您對產生的 ID 不滿意,可以隨機產生一個 ID。此外,您也可以自行嘗試,看看系統是否提供該付款方式。在完成這個步驟後就無法變更,而且在專案期間仍會保持有效。 - 資訊中的第三個值是專案編號,部分 API 會使用這個編號。如要進一步瞭解這三個值,請參閱說明文件。
- 接下來,您需要在 Cloud 控制台中啟用計費功能,才能使用 Cloud 資源/API。執行這個程式碼研究室並不會產生任何費用,如果有的話。如要關閉資源,以免系統產生本教學課程結束後產生的費用,您可以刪除自己建立的資源,或刪除整個專案。Google Cloud 的新使用者符合 $300 美元免費試用計畫的資格。
啟動 Cloud Shell
雖然 Google Cloud 可以從筆記型電腦遠端操作,但在本程式碼研究室中,您將使用 Google Cloud Shell,這是一種在 Cloud 中執行的指令列環境。
在 Google Cloud 控制台,按一下右上方的工具列上的 Cloud Shell 圖示:
佈建並連線至環境的作業只需幾分鐘的時間。完成後,您應該會看到類似下方的內容:
這部虛擬機器都裝載了您需要的所有開發工具。提供永久的 5 GB 主目錄,而且在 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 頁面的「管道」部分建立所需管道:
擷取頻道詳細資料
建立頻道後,請從 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,前往「Integration」(整合) 頁面,確認已安裝 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 供應商的事件連結至 Workflows。
設定服務帳戶
建立觸發條件時,您必須具備具備 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 觸發條件和工作流程。