設定 Eventarc 以觸發與 GKE Autopilot 和 Pub/Sub 整合的 Workflows

1. 總覽

在本研究室中,您將建立 Eventarc 觸發條件,將 Pub/Sub 主題連結至 Workflows 服務。Eventarc 可讓您區隔服務與服務通訊之間的狀況,讓您的解決方案更可擴充且更以事件為準。您將建立一個包含執行業務流程的多個步驟的工作流程,以計算在 Cymbal Eats 訂購商品的客戶獎勵點數。工作流程會向在 GKE Autopilot 上執行的應用程式傳送多項要求,並發布訊息至 Pub/Sub 主題,通知訂單服務應用程式計算獎勵點數。

6c0606022b76f79d.png

什麼是 GKE Autopilot?

GKE Autopilot 是 GKE 的作業模式,Google 會管理叢集設定,包括節點、資源調度、安全性和其他預設設定。Autopilot 叢集經過最佳化調整,可以執行大部分的正式環境工作負載,並依據 Kubernetes 資訊清單佈建運算資源。簡化的設定流程符合 GKE 最佳做法、叢集和工作負載設定、擴充性和安全性的建議。如需內建設定清單,請參閱「Autopilot 和 Standard 比較」表格。

採用 GKE Standard 後,使用者需自行管理工作站節點和節點集區設定,其餘工作則交由 GKE 處理。

以 GKE Standard 模式執行時客戶的與 Google 的責任

85500aad65f87437.png

採用 GKE Autopilot 時,Google 會負責設定與管理節點集區。讓您可以專心處理在叢集頂部執行的應用程式和服務。

什麼是 Eventarc?

Eventarc 可讓您建構事件導向的架構,而不必實作、自訂或維護基礎架構。Eventarc 提供標準化解決方案,可以管理分離微服務的狀態變更流程 (稱為事件)。觸發後,Eventarc 會透過 Pub/Sub 訂閱項目將這些事件轉送至多個目的地 (例如Workflows、Cloud Run),同時管理推送、安全性、授權、觀測能力和錯誤處理工作。

Google 事件供應商

  • 超過 90 個 Google Cloud 供應商。這些供應商可以直接從來源 (例如 Cloud Storage) 傳送事件,或是透過 Cloud 稽核記錄項目傳送事件。
  • Pub/Sub 供應商。這些提供者使用 Pub/Sub 訊息將事件傳送至 Eventarc。

第三方供應商

第三方供應商是指提供 Eventarc 來源的非 Google 實體。

Eventarc 觸發條件

  • Cloud Pub/Sub 事件。發布至 Pub/Sub 主題的訊息可觸發 Eventarc。
  • Cloud 稽核記錄 (CAL) 事件。Cloud 稽核記錄提供每個 Cloud 專案、資料夾和機構的管理員活動與資料存取稽核記錄。
  • 直接事件:各種直接事件都可觸發 Eventarc,例如 Cloud Storage 值區更新或更新 Firebase 遠端設定範本。

事件目的地

  • 工作流程
  • Cloud Run
  • GKE
  • Cloud Functions( 第 2 代)

c7ca054200edf1b3.png

什麼是 Workflows?

Workflows 是一項全代管服務,可讓您整合微服務、工作和 API。Workflows 是無伺服器的服務,可視需求調度資源。

Workflows 用途:

  • 事件導向的工作流程會對已定義的觸發條件執行。舉例來說,使用者提交新訂單且想計算客戶會員點數時。或者,如果訂單取消,系統則會發布活動,讓所有感興趣的服務處理這場活動。
  • 批次工作工作流程:使用 Cloud Scheduler 定期執行工作。例如夜間工作會檢查是否有失敗狀態的選單項目,並加以刪除。

Workflows 很適合用於自動化調度管理服務的工作流程。您可以自動執行程序,包含等待和重試最多一年。

Workflows 的優點:

  • 設定程式碼:將邏輯移至配置,而非編寫程式碼,藉此減少技術債。
  • 簡化架構。有狀態的 Workflows 不需要額外的依附元件,就能以視覺化方式呈現及監控複雜的服務整合項目。
  • 納入可靠性和容錯能力:使用預設或自訂重試邏輯和錯誤處理機制來控制故障情形,即使其他系統發生錯誤也不受影響。檢查每個步驟是否都可傳送至 Cloud Spanner,協助您追蹤進度。
  • 免維護視需要調度資源:無需進行修補或維護。您只須在工作流程執行時付費,等待或閒置時,無須支付任何費用。

在本研究室中,您將設定事件導向的工作流程。

學習目標

在本研究室中,您將瞭解如何執行下列操作:

  • 設定 Pub/Sub 主題和 Eventarc 以觸發 Workflows
  • 設定工作流程,向在 GKE Autopilot 上執行的應用程式發出 API 呼叫
  • 設定工作流程,將訊息發布至 Pub/Sub
  • 如何在 Cloud Logging 和 gcloud CLI 中查詢 Workflows 結構化記錄檔

必要條件

  • 本研究室假設您熟悉 Cloud 控制台和 Cloud Shell 環境。
  • 具備一定的 GKE 和 Cloud Pub/Sub 體驗會很有幫助,但並非必要。

2. 設定和需求

Cloud 專案設定

  1. 登入 Google Cloud 控制台,建立新專案或重複使用現有專案。如果您還沒有 Gmail 或 Google Workspace 帳戶,請先建立帳戶

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

bd84a6d3004737c5.png

  • 「專案名稱」是這項專案參與者的顯示名稱。這是 Google API 未使用的字元字串。您隨時可以更新這項資訊。
  • 所有 Google Cloud 專案的專案 ID 均不得重複,而且設定後即無法變更。Cloud 控制台會自動產生一個不重複的字串。但通常是在乎它何在在大部分的程式碼研究室中,您必須參照專案 ID (通常為 PROJECT_ID)。如果您對產生的 ID 不滿意,可以隨機產生一個 ID。此外,您也可以自行嘗試,看看系統是否提供該付款方式。在完成這個步驟後就無法變更,而且在專案期間仍會保持有效。
  • 資訊中的第三個值是專案編號,部分 API 會使用這個編號。如要進一步瞭解這三個值,請參閱說明文件
  1. 接下來,您需要在 Cloud 控制台中啟用計費功能,才能使用 Cloud 資源/API。執行這個程式碼研究室並不會產生任何費用,如果有的話。如要關閉資源,以免系統產生本教學課程結束後產生的費用,您可以刪除自己建立的資源,或刪除整個專案。Google Cloud 的新使用者符合 $300 美元免費試用計畫的資格。

環境設定

如要啟用 Cloud Shell,請按一下搜尋列右側的圖示。

8613854df02635a3.png

複製存放區並前往目錄,將以下指令複製及貼上至終端機,然後按下 Enter 鍵:

git clone https://github.com/GoogleCloudPlatform/cymbal-eats.git && cd cymbal-eats/customer-service

執行 gke-lab-setup.sh 來部署必要的依附元件

系統會建立下列資源:

  • AlloyDB 叢集和執行個體
  • GKE Autopilot 叢集
./gke-lab-setup.sh

如果出現授權提示,請點選「授權」以繼續。

6356559df3eccdda.png

設定程序大約需要 10 分鐘的時間。

請等待指令碼完成,並查看下方輸出內容,再執行其他步驟。

NAME: client-instance
ZONE: us-central1-c
MACHINE_TYPE: e2-medium
PREEMPTIBLE:
INTERNAL_IP: 10.128.0.9
EXTERNAL_IP: 35.232.109.233
STATUS: RUNNING

3. GKE Autopilot 叢集

查看 GKE Autopilot 叢集

設定專案環境變數:

export PROJECT_ID=$(gcloud config get-value project)
export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)')
export PROJECT_NAME=$(gcloud projects describe $PROJECT_ID --format='value(name)')

部分初始設定曾使用下列指令建立叢集 (您不需要執行這個指令):

gcloud container clusters create-auto $CLUSTER_NAME --region $REGION

執行下列指令,查看建立的 GKE Autopilot 叢集:

gcloud container clusters list

輸出內容範例:

772db9dd58172e0c.png

執行下列指令來儲存叢集的憑證:

CLUSTER_NAME=rewards-cluster
REGION=us-central1

gcloud container clusters get-credentials $CLUSTER_NAME --region=$REGION

部署應用程式

接下來,您將部署客戶服務應用程式。這是使用 Quarkus 架構的 Java 微服務。

前往 cymbal-eats/customer-service 資料夾,然後執行下列指令,即可建構和上傳容器映像檔:

./mvnw clean package -DskipTests

export CUSTOMER_SERVICE_IMAGE=gcr.io/$PROJECT_ID/customer-service:1.0.0

gcloud builds submit --tag $CUSTOMER_SERVICE_IMAGE .

設定 AlloyDB 私人 IP 位址:

export DB_HOST=$(gcloud beta alloydb instances describe customer-instance \
    --cluster=customer-cluster \
    --region=$REGION \
    --format=json | jq \
    --raw-output ".ipAddress")

echo $DB_HOST

執行下列指令來建立 Kubernetes Secrets 物件,儲存資料庫憑證,客戶服務應用程式將使用這組憑證連線至資料庫:

DB_NAME=customers
DB_USER=postgres
DB_PASSWORD=password123

kubectl create secret generic gke-alloydb-secrets \
  --from-literal=database=$DB_NAME \
  --from-literal=username=$DB_USER \
  --from-literal=password=$DB_PASSWORD \
  --from-literal=db_host=$DB_HOST

執行下列指令,取代 deployment.yaml 檔案中的 CUSTOMER_SERVICE_IMAGE:

sed "s@CUSTOMER_SERVICE_IMAGE@$CUSTOMER_SERVICE_IMAGE@g" deployment.yaml.tmpl > customer-service-deployment.yaml

執行下列指令來部署應用程式:

kubectl apply -f customer-service-deployment.yaml

應用程式需要一些時間才能轉換為 RUNNING 狀態。

查看部署規格檔案:

deployment.yaml.tmpl

以下設定部分指定了執行這個應用程式所需的資源。

    spec:
      containers:
      - name: customer-service
        image: CUSTOMER_SERVICE_IMAGE
        resources:
          requests:
            cpu: 250m
            memory: 512Mi
            ephemeral-storage: 512Mi
          limits:
            cpu: 500m
            memory: 1024Mi
            ephemeral-storage: 1Gi

執行下列指令,建立要在工作流程中使用的外部 IP:

SERVICE_NAME=customer-service

kubectl expose deployment $SERVICE_NAME \
  --type LoadBalancer --port 80 --target-port 8080

執行下列指令,驗證已建立的資源:

kubectl get all

輸出內容範例:

179a23bd33793924.png

4. 查看工作流程

Workflows 核心概念

工作流程包含一系列使用 Workflows 語法( YAML 或 JSON) 的步驟。

工作流程建立完成之後會「部署」,讓工作流程準備好執行。

「執行」是工作流程定義中包含邏輯的單次執行作業。未執行的工作流程不會產生費用。所有工作流程執行作業都各自獨立,這項產品的快速資源調度功能可允許進行大量的並行執行作業。

執行作業控制選項

  • 步驟:如要建立工作流程,請使用 Workflows 語法定義所需的 steps 和執行順序。每個工作流程至少要有一個步驟。
  • 條件:您可以使用 switch 區塊做為選取機制,允許運算式的值控制工作流程的執行流程。
  • 疊代 - 您可以使用 for 迴圈,針對一串數字或資料集合 (例如清單或地圖) 疊代。
  • 子工作流程:子工作流程的運作方式與使用程式設計語言中的例行或函式類似,可讓您將工作流程多次重複的步驟或一組步驟進行封裝。

觸發執行作業

  • 手動:您可以透過 Google Cloud 控制台或 Google Cloud CLI 使用指令列管理工作流程。
  • 程式輔助:Workflows API 的 Cloud 用戶端程式庫,或 REST API,可用於管理工作流程。
  • 已排定時間:您可以使用 Cloud Scheduler 按照特定排程執行工作流程。

執行階段引數

如要存取執行階段傳遞的資料,只要在主要工作流程中新增 params 欄位 (位於主要區塊中)。主要區塊接受單一引數,該引數可以是任何有效的 JSON 資料類型。「params」欄位會命名工作流程用來儲存傳入資料的變數。

工作流程邏輯

如果客戶不存在,工作流程就會發出 API 呼叫以建立客戶,然後再更新獎勵點數。工作流程會依據訂單總金額,選取係數來計算消費者可獲得獎勵點數。詳情請參閱下方範例。

    - calculate_multiplier:
        switch:
          - condition: ${totalAmount < 10}
            steps:
              - set_multiplier1:
                  assign:
                    - multiplier: 2
          - condition: ${totalAmount >= 10 and totalAmount < 25}
            steps:
              - set_multiplier2:
                  assign:
                    - multiplier: 3
          - condition: ${totalAmount >= 25}
            steps:
              - set_multiplier3:
                  assign:
                    - multiplier: 5
    - calculate_rewards:
        assign:
            - rewardPoints: ${customerRecord.rewardPoints + multiplier}

99f9cf1076c03fb6.png

5. 設定及部署 Workflows

執行指令,查看服務的外部 IP 位址:

kubectl get svc

輸出內容範例:

fe5cfec2bc836a5f.png

使用先前輸出內容中的外部 IP 值,設定下方的環境變數。

CUSTOMER_SERVICE_URL=http://$(kubectl get svc customer-service -o=jsonpath='{.status.loadBalancer.ingress[0].ip}')

取代工作流程範本中的客戶服務應用程式網址:

sed "s@CUSTOMER_SERVICE_URL@$CUSTOMER_SERVICE_URL@g" gkeRewardsWorkflow.yaml.tmpl > gkeRewardsWorkflow.yaml

設定 Workflows 服務和專案環境變數的位置:

gcloud config set workflows/location ${REGION}

export PROJECT_ID=$(gcloud config get-value project)
export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)')
export PROJECT_NAME=$(gcloud projects describe $PROJECT_ID --format='value(name)')

使用下列權限為工作流程建立自訂服務帳戶:

  • 呼叫記錄 API
  • 將訊息發布至 Pub/Sub 主題
export WORKFLOW_SERVICE_ACCOUNT=workflows-sa

gcloud iam service-accounts create ${WORKFLOW_SERVICE_ACCOUNT}

gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member "serviceAccount:${WORKFLOW_SERVICE_ACCOUNT}@$PROJECT_ID.iam.gserviceaccount.com" \
  --role "roles/logging.logWriter"

gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member "serviceAccount:${WORKFLOW_SERVICE_ACCOUNT}@$PROJECT_ID.iam.gserviceaccount.com" \
  --role "roles/pubsub.publisher"

部署工作流程。工作流程設定為使用上一步建立的服務帳戶:

export WORKFLOW_NAME=rewardsWorkflow

gcloud workflows deploy ${WORKFLOW_NAME} \
  --source=gkeRewardsWorkflow.yaml \
  --service-account=${WORKFLOW_SERVICE_ACCOUNT}@$PROJECT_ID.iam.gserviceaccount.com

查看工作流程來源和其他詳細資料 (「觸發條件」分頁)。目前尚未設定執行這項工作流程的觸發條件。您將在下一個步驟中進行設定。

66ba7ebbde76d5a6.png

6. 設定 Pub/Sub 主題和 Eventarc 觸發條件

接下來,您將建立兩個 Pub/Sub 主題,並設定一個 Eventarc 觸發條件。

訂單服務應用程式會將訊息發布至 order-topic,並附上新訂單的相關資訊。

工作流程會將訊息發布至 order-points-topic,當中包含訂單獎勵點數和總金額等資訊。訂單服務(未部署在本研究室中的一部分) 會公開 order-points-topic, 推送訂閱項目使用的端點,用來更新獎勵點數和每筆訂單總金額。

建立新的 Pub/Sub 主題:

export TOPIC_ID=order-topic
export ORDER_POINTS_TOPIC_ID=order-points-topic
gcloud pubsub topics create $TOPIC_ID --project=$PROJECT_ID
gcloud pubsub topics create $ORDER_POINTS_TOPIC_ID --project=$PROJECT_ID

設定 Eventarc 服務的位置:

gcloud config set eventarc/location ${REGION}

建立要由 Eventarc 觸發條件執行的自訂服務帳戶。

export TRIGGER_SERVICE_ACCOUNT=eventarc-workflow-sa

gcloud iam service-accounts create ${TRIGGER_SERVICE_ACCOUNT}

將存取權授予服務帳戶以執行工作流程。

gcloud projects add-iam-policy-binding ${PROJECT_ID} \
  --member="serviceAccount:${TRIGGER_SERVICE_ACCOUNT}@${PROJECT_ID}.iam.gserviceaccount.com" \
  --role="roles/workflows.invoker"

建立 Eventarc 觸發條件,以便監聽 Pub/Sub 訊息並傳送至 Workflows。

gcloud eventarc triggers create new-orders-trigger \
  --destination-workflow=${WORKFLOW_NAME} \
  --destination-workflow-location=${REGION} \
  --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \
  --service-account="${TRIGGER_SERVICE_ACCOUNT}@${PROJECT_ID}.iam.gserviceaccount.com" \
  --transport-topic=$TOPIC_ID

輸出內容範例:

Creating trigger [new-orders-trigger] in project [qwiklabs-gcp-01-1a990bfcadb3], location [us-east1]...done.     
Publish to Pub/Sub topic [projects/qwiklabs-gcp-01-1a990bfcadb3/topics/order-topic] to receive events in Workflow [rewardsWorkflow].
WARNING: It may take up to 2 minutes for the new trigger to become active.

查看已建立的 Eventarc 觸發條件

bda445561ad5f4.png

檢查已建立的觸發條件訂閱項目

3fccdda7d5526597.png

查看工作流程端的變更。已新增觸發條件。

23d338abc16eaac8.png

7. 測試工作流程

6c0606022b76f79d.png

如要模擬訂單服務,您會透過 Cloud Shell 傳送訊息至 Pub/Sub 主題,並在 Cloud 控制台中驗證客戶服務記錄檔。

export TOPIC_ID=order-topic

gcloud pubsub topics publish $TOPIC_ID --message '{"userId":"id1","orderNumber":123456,"name":"Angela Jensen","email":"ajensen9090+eats@gmail.com","address":"1845 Denise St","city":"Mountain View","state":"CA","zip":"94043","orderItems":[{"id":7,"createDateTime":"2022-03-17T21:51:44.968584","itemImageURL":"https://images.unsplash.com/photo-1618449840665-9ed506d73a34?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=687&q=80","itemName":"Curry Plate","itemPrice":12.5,"itemThumbnailURL":"https://images.unsplash.com/photo-1618449840665-9ed506d73a34?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=687&q=80","spiceLevel":0,"status":"Ready","tagLine":"Spicy touch for your taste buds","updateDateTime":"2022-03-18T01:30:29.340584","inventory":8,"quantity":1}]}'

輸出內容範例:

messageIds:
- '5063709859203105'

查看工作流程執行詳細資料和記錄檔

1e802826c700cc3e.png

57ff9705bf507fb0.png

8. 工作流程結構化記錄

工作流程已設為以 JSON 格式寫入結構化記錄檔。記錄是使用 Cloud Logging API、workflows.googleapis.com/Workflow 資源,以及記錄名稱 projects/${PROJECT_ID}/logs/Workflows 下寫入。

請查看下方的記錄設定。

    - log_totalAmount:
        call: sys.log
        args:
            json:
              orderNumber: ${order.orderNumber}
              totalAmount: ${totalAmount}
              multiplier: ${multiplier}
              totalRewardPoints: ${rewardPoints}
              orderRewardPoints: ${orderRewardPoints}
            severity: INFO

在 Cloud 控制台中開啟「記錄檔探索工具」並執行查詢,找出總金額超過 $2 美元的已處理訂單。

如要顯示搜尋查詢欄位,請點選「顯示查詢」。

f0a57ff3d10bad2.png

resource.type="workflows.googleapis.com/Workflow" AND 
jsonPayload.totalAmount > 2 AND 
timestamp >= "2023-01-01T00:00:00Z" AND 
timestamp <= "2024-12-31T23:59:59Z"

輸出內容範例:

9093f87159f1b928.png

開啟 Cloud Shell 並透過下列指令使用 gcloud CLI 讀取記錄

gcloud logging read 'resource.type="workflows.googleapis.com/Workflow" AND jsonPayload.totalAmount > 2 AND timestamp >= "2023-01-01T00:00:00Z" AND timestamp <= "2023-12-31T23:59:59Z"' --limit 10 --format="table(jsonPayload.orderNumber,jsonPayload.totalAmount,jsonPayload.orderRewardPoints,jsonPayload.totalRewardPoints,jsonPayload.multiplier)"

使用 table 格式的輸出內容範例:

35d5fd851ecde60.png

執行下列指令以傳回 JSON 格式的記錄:

gcloud logging read 'resource.type="workflows.googleapis.com/Workflow" AND jsonPayload.totalAmount > 2 AND timestamp >= "2023-01-01T00:00:00Z" AND timestamp <= "2023-12-31T23:59:59Z"' --limit 10 --format=json | jq

使用 json 格式的輸出內容範例:

ac7421548ea9a9f2.png

9. 查看客戶記錄

(選用步驟)

執行下列指令,設定客戶服務網址環境變數。

CUSTOMER_SERVICE_URL=http://$(kubectl get svc customer-service -o=jsonpath='{.status.loadBalancer.ingress[0].ip}')

curl $CUSTOMER_SERVICE_URL/customer | jq

輸出內容範例:

[
  {
    "address": "1845 Denise St",
    "city": "Mountain View",
    "createDateTime": "2023-01-31T17:22:08.853644",
    "email": "ajensen9090+eats@gmail.com",
    "id": "id1",
    "name": "Angela Jensen",
    "rewardPoints": 4,
    "state": "CA",
    "updateDateTime": "2023-01-31T17:22:09.652117",
    "zip": "94043"
  }
]

執行指令來多次發布新訂單,並使用 curl 指令驗證客戶獎勵點數。

發布新的訂單訊息:

export TOPIC_ID=order-topic
gcloud pubsub topics publish $TOPIC_ID --message '{"userId":"id1","orderNumber":123456,"name":"Angela Jensen","email":"ajensen9090+eats@gmail.com","address":"1845 Denise St","city":"Mountain View","state":"CA","zip":"94043","orderItems":[{"id":7,"createDateTime":"2022-03-17T21:51:44.968584","itemImageURL":"https://images.unsplash.com/photo-1618449840665-9ed506d73a34?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=687&q=80","itemName":"Curry Plate","itemPrice":12.5,"itemThumbnailURL":"https://images.unsplash.com/photo-1618449840665-9ed506d73a34?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=687&q=80","spiceLevel":0,"status":"Ready","tagLine":"Spicy touch for your taste buds","updateDateTime":"2022-03-18T01:30:29.340584","inventory":8,"quantity":1}]}'

確認客戶獎勵點數:

curl $CUSTOMER_SERVICE_URL/customer | jq

執行下列指令,查看最新記錄:

gcloud logging read 'resource.type="workflows.googleapis.com/Workflow" AND jsonPayload.totalAmount > 2 AND timestamp >= "2023-01-01T00:00:00Z" AND timestamp <= "2023-12-31T23:59:59Z"' --limit 10 --format="table(jsonPayload.orderNumber,jsonPayload.totalAmount,jsonPayload.orderRewardPoints,jsonPayload.totalRewardPoints,jsonPayload.multiplier)"

10. 恭喜!

恭喜,您已完成程式碼研究室!

本文涵蓋的內容:

  • 如何設定 Pub/Sub 主題和 Eventarc 來觸發 Workflows
  • 瞭解如何設定 Workflows,以便向在 GKE Autopilot 上執行的應用程式發出 API 呼叫
  • 如何設定 Workflows 以將訊息發布至 Pub/Sub
  • 如何在 Cloud Logging 和 gcloud CLI 中查詢 Workflows 結構化記錄檔

下一步:

探索其他 Cymbal Eats 程式碼研究室:

清除所用資源

如要避免系統向您的 Google Cloud 帳戶收取本教學課程所用資源的費用,請刪除含有相關資源的專案,或者保留專案但刪除個別資源。

刪除專案

如要避免付費,最簡單的方法就是刪除您針對教學課程建立的專案。