Cloud Run for Anthos 程式碼研究室事件

1. 簡介

6a5cf23c8e20491f.png

Cloud Run 可讓您在全代管環境中執行無狀態容器。這項服務是以開放原始碼的 Knative 打造而成,可讓您選擇透過 Cloud Run 全代管的方式執行容器,或是透過 Cloud Run for Anthos 在您的 Google Kubernetes Engine 叢集中執行容器。

Events for Cloud Run for Anthos 可讓您輕鬆將 Cloud Run 服務與各種來源的事件連結。您可以在其中建構微服務鬆耦合的分散式事件導向架構。此外,這項服務還會為您處理事件擷取、傳送、安全防護、授權和錯誤處理作業,進而提升開發人員的靈活度和應用程式的復原能力。

在本程式碼研究室中,您將瞭解 Cloud Run for Anthos 事件。具體來說,您將監聽 Cloud Pub/Sub、稽核記錄、Cloud Storage 和 Cloud Scheduler 的事件,並瞭解如何產生/使用自訂事件。

課程內容

  • Cloud Run for Anthos 事件的長期願景
  • Events for Cloud Run for Anthos 的現況
  • 建立 Cloud Run 接收器
  • 為 Cloud Pub/Sub 建立事件觸發條件
  • 為稽核記錄建立事件觸發條件
  • 為 Cloud Storage 建立事件觸發條件
  • 為 Cloud Scheduler 建立事件觸發條件
  • 產生及取用自訂事件

2. 長期願景

採用無伺服器架構後,事件就成為解耦微服務通訊不可或缺的一環。Events for Cloud Run for Anthos事件視為 Cloud Run for Anthos 服務的一級公民,方便您建構以事件為準的無伺服器應用程式。

Events for Cloud Run for Anthos 可從封裝或應用程式建立的事件來源,將非同步事件可靠、安全地傳送至叢集內和叢集外的取用者,並支援擴充。

ce389bcafba6d669.png

Google Cloud 來源

Google Cloud 擁有的產品

Google 來源

Google 擁有的產品,例如 Gmail、Hangouts、Android 管理服務等

自訂來源

並非 Google 產品,而是由使用者自行建立的活動來源。這些來源可以是使用者開發的 Knative 來源,也可以是叢集上執行的任何其他應用程式,只要能產生 Cloud Event 即可。

第三方來源

既不屬於 Google,也不屬於使用者的活動來源。包括由第三方供應商、合作夥伴或 OSS 社群擁有及維護的熱門事件來源,例如 GitHub、SAP、Datadog、Pagerduty 等。

為確保跨服務互通性,系統會將事件正規化為 CloudEvents v1.0 格式。CloudEvents 是與供應商無關的開放規格,用於以通用格式描述事件資料,可在服務、平台和系統之間實現互通性。

Cloud Run 的事件符合 Knative Eventing 規範,可讓容器在其他以 Knative 為基礎的實作項目之間轉移。這項功能提供與雲端無關的一致架構,可宣告式地將事件產生者與事件消費者連結。

3. 目前狀態

這個預覽版是第一個版本,提供一開始的長期功能。

b1dd0d8a73185b95.png

為協助使用者建構事件導向的無伺服器應用程式,我們初期會著重於以下兩方面:

  1. 提供廣泛的 Google Cloud 來源生態系統,讓 Anthos 叢集上的 Cloud Run 服務能對 Google Cloud 服務的事件做出反應。
  • 一開始,Google Cloud 來源的事件會透過 Cloud 稽核記錄 (CAL) 傳送,因此可支援各種事件來源。這些來源的事件傳送延遲和可用性,與 Cloud 稽核記錄的延遲和可用性息息相關。每當發布 Google Cloud 來源的事件時,系統就會建立對應的 Cloud 稽核記錄項目。
  • 除了 Cloud 稽核記錄,我們也提供一流的支援,可從 Cloud Storage、Cloud Pub/Sub 和 Cloud Scheduler 接收事件。我們會持續從使用者歷程和意見回饋中學習,並加入更多一流來源,擴大這個來源生態系統。
  1. 啟用使用者應用程式和服務,方法是發布至命名空間範圍的叢集本機代理程式網址,藉此發出自訂事件。

基礎傳送機制會使用 Cloud Pub/Sub 主題和訂閱項目,這些項目會顯示在客戶的專案中。因此,這項功能提供的傳送保證與 Cloud Pub/Sub 相同。

事件觸發條件提供事件訂閱方式,因此符合觸發條件篩選器的事件會傳送至觸發條件指向的目的地 (或接收器)。

所有事件都會以 Cloud Events v1.0 格式傳送,以利跨服務互通。

我們會持續以疊代方式提供更多價值,直到正式版發布後仍會繼續。

4. 設定和需求

自修實驗室環境設定

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

96a9c957bc475304.png

b9a10ebdf5b5a448.png

a1e3c01a38fa61c2.png

  • 「專案名稱」是這個專案的顯示名稱。只要遵守命名慣例,您可以使用任何名稱,並隨時更新。
  • 專案 ID 在所有 Google Cloud 專案中不得重複,且一經設定即無法變更。Cloud 控制台會自動產生專屬字串,通常您不需要在意該字串為何。在大多數程式碼研究室中,您需要參照專案 ID (通常會標示為 PROJECT_ID),因此如果您不喜歡該字串,可以產生另一個隨機字串,或嘗試使用自己的字串,看看是否可用。專案建立後,系統就會「凍結」該值。
  1. 接著,您必須在 Cloud 控制台中啟用帳單,才能使用 Google Cloud 資源。

完成本程式碼研究室的費用應該不高,甚至完全免費。請務必按照「清除」部分的指示操作,瞭解如何停用資源,避免在本教學課程結束後繼續產生帳單費用。Google Cloud 新使用者可參加價值$300 美元的免費試用計畫。

啟動 Cloud Shell

雖然可以透過筆電遠端操作 Google Cloud,但在本程式碼研究室中,您將使用 Google Cloud Shell,這是可在雲端執行的指令列環境。

在 GCP 主控台,按一下右上角工具列的 Cloud Shell 圖示:

bce75f34b2c53987.png

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

f6ef2b5f13479f3a.png

這部虛擬機器搭載各種您需要的開發工具,並提供永久的 5GB 主目錄,而且可在 Google Cloud 運作,大幅提升網路效能並強化驗證功能。本實驗室的所有工作都可在瀏覽器上完成。

5. 啟用 API、設定區域和平台

設定專案 ID 並安裝 Alpha 版元件

在 Cloud Shell 中,GOOGLE_CLOUD_PROJECT 應已設為您的專案 ID。如果沒有,請確認已設定專案 ID,且 gcloud 已設定該專案 ID:

export GOOGLE_CLOUD_PROJECT=your-project-id
gcloud config set project ${GOOGLE_CLOUD_PROJECT}

確認已安裝 Alpha 版的 gcloud 元件:

gcloud components install alpha

啟用 API

啟用所有必要服務:

gcloud services enable cloudapis.googleapis.com 
gcloud services enable container.googleapis.com 
gcloud services enable containerregistry.googleapis.com
gcloud services enable cloudbuild.googleapis.com

設定區域和平台

建立啟用 Cloud Run Events 的 GKE 叢集前,請先設定叢集名稱、區域和平台。舉例來說,我們將名稱和區域設為 events-clustereurope-west1-b,平台則為 gke,

在 Cloud Shell 中:

export CLUSTER_NAME=events-cluster
export CLUSTER_ZONE=europe-west1-b

gcloud config set run/cluster ${CLUSTER_NAME}
gcloud config set run/cluster_location ${CLUSTER_ZONE}
gcloud config set run/platform gke

您可以檢查設定是否已完成:

gcloud config list

...
[run]
cluster = events-cluster
cluster_location = europe-west1-b
platform = gke

6. 建立啟用 Cloud Run Events 的 GKE 叢集

建立執行 Kubernetes >= 1.15.9-gke.26 的 GKE 叢集,並啟用下列外掛程式:CloudRunHttpLoadBalancingHorizontalPodAutoscaling

gcloud beta container clusters create ${CLUSTER_NAME} \
  --addons=HttpLoadBalancing,HorizontalPodAutoscaling,CloudRun \
  --machine-type=n1-standard-4 \
  --enable-autoscaling --min-nodes=3 --max-nodes=10 \
  --no-issue-client-certificate --num-nodes=3 --image-type=cos \
  --enable-stackdriver-kubernetes \
  --scopes=cloud-platform,logging-write,monitoring-write,pubsub \
  --zone ${CLUSTER_ZONE} \
  --release-channel=rapid

7. 設定 Cloud Run 事件 (控制平面)

Cloud Run Events 包含控制層和資料層,需要分別設定。如要設定控制層,請按照下列步驟操作:

在 Cloud Shell 中:

gcloud beta events init 

這會初始化事件,並建立多個必要的服務帳戶。系統提示建立服務帳戶時,請務必選取「是」。

此時控制層應已正確初始化。您應該會看到四個 Pod,並顯示

Running 狀態、cloud-run-events 命名空間中的 2 個 (controller-xxx-xxxwebhook-xxx-xxx),以及 knative-eventing 命名空間中的 2 個 (eventing-controller-xxx-xxxeventing-webhook-xxx-xxx)。您可以執行下列指令進行檢查:

kubectl get pods -n cloud-run-events

NAME                         READY   STATUS    RESTARTS   AGE
controller-9cc679b67-2952n   1/1     Running   0          22s
webhook-8576c4cfcb-dhz82     1/1     Running   0          16m
kubectl get pods -n knative-eventing

NAME                                   READY   STATUS    RESTARTS   AGE
eventing-controller-77f46f6cf8-kj9ck   1/1     Running   0          17m
eventing-webhook-5bc787965f-hcmwg      1/1     Running   0          17m

8. 設定 Cloud Run Events (資料平面)

接下來,請在使用者命名空間中設定資料層。這會建立 Broker,並具備從 Pub/Sub 讀取/寫入資料的適當權限。

在 Cloud Shell 中,為要用於物件的命名空間設定 NAMESPACE 環境變數。如要使用預設命名空間,可以將其設為 default,如下所示:

export NAMESPACE=default

請注意,如果指定的命名空間不存在 (即命名空間不是預設命名空間),您必須建立該命名空間:

kubectl create namespace ${NAMESPACE}

使用預設密鑰初始化命名空間:

gcloud beta events namespaces init ${NAMESPACE} --copy-default-secret 

在命名空間中建立預設代理程式:

gcloud beta events brokers create default --namespace ${NAMESPACE}

確認代理程式已建立。請注意,代理人可能需要幾秒鐘的時間才能準備就緒:

kubectl get broker -n ${NAMESPACE}

NAME      READY   REASON   URL
default   True             http://default-brokercell-ingress.cloud-run-events.svc.cluster.local/default/default

9. 探索活動

您可以瞭解已註冊的來源、可發出的事件類型,以及如何設定觸發條件來使用這些事件。

如要查看不同類型事件的清單,請執行下列指令:

gcloud beta events types list

如要進一步瞭解每個事件類型,請執行下列指令:

gcloud beta events types describe google.cloud.pubsub.topic.v1.messagePublished

10. 建立 Cloud Run 接收器

部署 Cloud Run 服務做為事件接收器,記錄收到的 CloudEvent 內容。

您可以運用 Knative 中已編譯的 event_display,以及在 Knative 版本中建構的容器映像檔。您可以在 event-display.yaml 中查看容器映像檔詳細資料:

...
containers:
  - image: gcr.io/knative-releases/knative.dev/eventing-contrib/cmd/event_display@sha256:8da2440b62a5c077d9882ed50397730e84d07037b1c8a3e40ff6b89c37332b27

部署至 Cloud Run

將容器化應用程式部署至 Cloud Run:

export SERVICE_NAME=event-display
gcloud run deploy ${SERVICE_NAME} \
  --namespace=${NAMESPACE} \
  --image gcr.io/knative-releases/knative.dev/eventing-contrib/cmd/event_display@sha256:8da2440b62a5c077d9882ed50397730e84d07037b1c8a3e40ff6b89c37332b27

成功完成後,指令列會顯示服務網址。您現在可透過任一瀏覽器視窗開啟服務網址,查看已部署的容器。

11. 為 Cloud Pub/Sub 建立事件觸發條件

接收事件的方式之一是透過 Cloud Pub/Sub。自訂應用程式可將訊息發布至 Cloud Pub/Sub,而這些訊息可透過 Events for Cloud Run 傳送至 Google Cloud Run 接收器。

建立主題

首先,請建立 Cloud Pub/Sub 主題。您可以將 TOPIC_ID 替換成偏好的專屬主題名稱:

export TOPIC_ID=cr-gke-topic
gcloud pubsub topics create ${TOPIC_ID}

建立觸發條件

建立觸發條件前,請先取得建構 Cloud Pub/Sub 事件觸發條件所需的參數詳細資料:

gcloud beta events types describe google.cloud.pubsub.topic.v1.messagePublished

建立觸發條件,將發布到 Cloud Pub/Sub 主題的事件篩選至已部署的 Cloud Run 服務:

gcloud beta events triggers create trigger-pubsub \
  --namespace ${NAMESPACE} \
  --target-service ${SERVICE_NAME} \
  --type google.cloud.pubsub.topic.v1.messagePublished \
  --parameters topic=${TOPIC_ID}

測試觸發條件

您可以列出所有觸發條件,確認是否已建立:

gcloud beta events triggers list

請等待最多 10 分鐘,觸發條件建立完成並生效後,才能開始篩選事件。

您可以使用 gcloud 觸發事件,模擬自訂應用程式傳送訊息的情境:

gcloud pubsub topics publish ${TOPIC_ID} --message="Hello there"

我們建立的 Cloud Run 接收器會記錄傳入訊息的內容。您可以前往 Cloud Run 執行個體的「記錄」專區查看:

9526909a06c6d4f4.png

請注意,由於「Hello there」是由 Pub/Sub 傳送,因此會經過 Base64 編碼,您必須解碼才能查看原始訊息。

刪除觸發條件

測試完畢後,即可刪除觸發條件。

gcloud beta events triggers delete trigger-pubsub --namespace ${NAMESPACE}

12. 為稽核記錄建立事件觸發條件

您將設定觸發條件來監聽稽核記錄事件。具體來說,您會在稽核記錄中尋找 Pub/Sub 主題建立事件。

啟用稽核記錄

如要接收來自服務的事件,您必須啟用稽核記錄。在 Cloud 控制台中,選取左上方的選單 IAM & Admin > Audit Logs。在服務清單中,勾選 Google Cloud Pub/Sub:

97bd4b57c6a05fcc.png

確認已選取右側的「管理員」、「讀取」和「寫入」。按一下「儲存」:

bec31b4f35fbcea.png

測試稽核記錄

現在,您需要找出設定實際觸發條件所需的參數,並執行實際作業。

舉例來說,建立 Pub/Sub 主題:

gcloud pubsub topics create cre-gke-topic1

接著查看這項更新產生的稽核記錄。在 Cloud 控制台中,選取左上方的選單 Logging > Logs Viewer

在「Query Builder,」下方選擇「Cloud Pub/Sub Topic」並按一下「Add」:

f5c634057e935bc6.png

執行查詢後,您會看到 Pub/Sub 主題的記錄,其中一項應該是 google.pubsub.v1.Publisher.CreateTopic

b083cce219773d24.png

請注意 serviceNamemethodNameresourceName。稍後建立觸發條件時會用到。

建立觸發條件

現在所有前置作業都已就緒,可以為稽核記錄建立事件觸發條件了。

如要進一步瞭解建構 Google Cloud 來源事件觸發條件所需的參數,請執行下列指令:

gcloud beta events types describe google.cloud.audit.log.v1.written

建立觸發條件並指定正確的篩選條件:

gcloud beta events triggers create trigger-auditlog \
  --namespace ${NAMESPACE} \
  --target-service ${SERVICE_NAME} \
  --type=google.cloud.audit.log.v1.written \
  --parameters serviceName=pubsub.googleapis.com \
  --parameters methodName=google.pubsub.v1.Publisher.CreateTopic

測試觸發條件

列出所有觸發條件,確認已成功建立:

gcloud beta events triggers list

請等待最多 10 分鐘,觸發條件建立完成並生效後,才能開始篩選事件。準備就緒後,觸發條件就會篩選建立事件並傳送至服務,接著就能開始觸發事件了。

如先前所述,建立另一個 Pub/Sub 主題:

gcloud pubsub topics create cre-gke-topic2

在 Cloud Console 中查看 Cloud Run 服務記錄時,您應該會看到收到的事件:

aff3b2e7ad05c75d.png

刪除觸發條件和主題

測試完畢後,即可刪除觸發條件 (選用):

gcloud beta events triggers delete trigger-auditlog

一併刪除主題:

gcloud pubsub topics delete cre-gke-topic1 cre-gke-topic2

13. 為 Cloud Storage 建立事件觸發條件

您將設定觸發條件,監聽 Cloud Storage 事件。

建立 bucket

首先,請在已部署 Cloud Run 服務的相同區域建立 Cloud Storage bucket。您可以將 BUCKET_NAME 替換成偏好的專屬名稱:

export BUCKET_NAME=[new bucket name]
export REGION=europe-west1

gsutil mb -p $(gcloud config get-value project) \
  -l $REGION \
  gs://$BUCKET_NAME/

設定 Cloud Storage 權限

建立觸發程序前,請先授予 Cloud Storage 的預設服務帳戶發布至 Pub/Sub 的權限。

首先,您需要找出 Cloud Storage 用於發布至 Pub/Sub 的服務帳戶。您可以按照「取得 Cloud Storage 服務帳戶」一節所述步驟取得服務帳戶,也可以使用下列指令:

curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://storage.googleapis.com/storage/v1/projects/$(gcloud config get-value project)/serviceAccount"

服務帳戶應列在「email_address」下方。

假設您在上方找到的服務帳戶是 service-XYZ@gs-project-accounts.iam.gserviceaccount.com,請將此帳戶設為環境變數:

export GCS_SERVICE_ACCOUNT=service-XYZ@gs-project-accounts.iam.gserviceaccount.com

接著,授予該服務帳戶發布至 Pub/Sub 的權限:

gcloud projects add-iam-policy-binding ${GOOGLE_CLOUD_PROJECT} \
  --member=serviceAccount:${GCS_SERVICE_ACCOUNT} \
  --role roles/pubsub.publisher

建立觸發條件

現在所有前置作業都已就緒,可以為 Cloud Storage 事件建立事件觸發條件了。

您可以取得建構觸發條件所需的參數詳細資料:

gcloud beta events types describe google.cloud.storage.object.v1.finalized

建立觸發條件並指定正確的篩選條件:

gcloud beta events triggers create trigger-storage \
  --namespace ${NAMESPACE} \
  --target-service ${SERVICE_NAME} \
  --type=google.cloud.storage.object.v1.finalized \
  --parameters bucket=${BUCKET_NAME}

測試觸發條件

列出所有觸發條件,確認已成功建立:

gcloud beta events triggers list

請等待最多 10 分鐘,觸發條件建立完成並生效後,才能開始篩選事件。準備就緒後,觸發條件就會篩選建立事件並傳送至服務。

接著就能開始觸發事件了。

將隨機檔案上傳至 Cloud Storage bucket:

echo "Hello World" > random.txt
gsutil cp random.txt gs://${BUCKET_NAME}/random.txt

在 Cloud Console 中查看 Cloud Run 服務記錄時,您應該會看到收到的事件:

aff3b2e7ad05c75d.png

刪除觸發條件

測試完畢後,即可刪除觸發條件 (選用):

gcloud beta events triggers delete trigger-storage

14. 為 Cloud Scheduler 建立事件觸發條件

您將設定觸發條件,監聽 Cloud Scheduler 的事件。

建立 App Engine 應用程式

目前使用者必須建立 App Engine 應用程式,才能使用 Cloud Scheduler。選取「App Engine Location」並建立應用程式:

export APP_ENGINE_LOCATION=europe-west
gcloud app create --region=${APP_ENGINE_LOCATION}

建立觸發條件

如要進一步瞭解建構 Google Cloud 來源事件觸發條件所需的參數,請執行下列指令:

gcloud beta events types describe google.cloud.scheduler.job.v1.executed

選擇 Cloud Scheduler 位置來建立排程器:

export SCHEDULER_LOCATION=europe-west1

建立觸發條件,在 Google Cloud Scheduler 中每分鐘建立要執行的工作,並呼叫目標服務:

gcloud beta events triggers create trigger-scheduler \
  --namespace ${NAMESPACE} \
  --target-service=${SERVICE_NAME} \
  --type=google.cloud.scheduler.job.v1.executed \
  --parameters location=${SCHEDULER_LOCATION} \
  --parameters schedule="* * * * *" \
  --parameters data="trigger-scheduler-data"

測試觸發條件

列出所有觸發條件,確認已成功建立:

gcloud beta events triggers list

請等待最多 10 分鐘,觸發條件建立完成並生效後,才能開始篩選事件。準備就緒後,觸發條件就會篩選建立事件並傳送至服務。

在 Cloud Console 中查看 Cloud Run 服務記錄,應該會看到收到的事件。

刪除觸發條件

測試完畢後,即可刪除觸發條件 (選用):

gcloud beta events triggers delete trigger-scheduler

15. 自訂事件 (代理程式端點)

在本程式碼研究室的這一部分,您將使用 Broker 產生及取用自訂事件。

建立 Curl Pod 來產生事件

事件通常是透過程式來建立。不過,在這個步驟中,您會使用 curl 手動傳送個別事件,並查看這些事件是否由正確的消費者接收。

如要建立做為事件生產者的 Pod,請執行下列指令:

cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: Pod
metadata:
  labels:
    run: curl
  name: curl
  namespace: $NAMESPACE
spec:
  containers:
  - image: radial/busyboxplus:curl
    imagePullPolicy: IfNotPresent
    name: curl
    resources: {}
    stdin: true
    terminationMessagePath: /dev/termination-log
    terminationMessagePolicy: File
    tty: true
EOF

確認 curl Pod 正常運作。您應該會看到名為 curl 的 Pod,其中包含 Status=Running

kubectl get pod curl -n ${NAMESPACE}

建立觸發條件

您將建立觸發條件,並針對要發出的特定 CloudEvents 類型 (本例中為 alpha-type) 設定篩選器。請注意,系統支援對任意數量的 CloudEvents 屬性擴充功能進行完全相符的篩選。如果篩選器設定多個屬性,事件必須具備所有屬性,觸發條件才能加以篩選。反之,如果您未指定篩選器,服務就會收到所有事件。

建立觸發條件:

gcloud beta events triggers create trigger-custom \
  --namespace ${NAMESPACE} \
  --target-service ${SERVICE_NAME} \
  --type=alpha-type \
  --custom-type

測試觸發條件

列出所有觸發條件,確認已成功建立:

gcloud beta events triggers list

將 HTTP 要求傳送至 Broker,建立事件。執行下列指令,提醒自己 Broker URL:

kubectl get brokers -n ${NAMESPACE}

NAME      READY   REASON   URL
default   True             http://default-broker.<NAMESPACE>.svc.cluster.local

透過 SSH 連線至您先前建立的 curl Pod:

kubectl --namespace ${NAMESPACE} attach curl -it

您已透過 SSH 連線至 Pod,現在可以發出 HTTP 要求。畫面會顯示類似下面的提示:

Defaulting container name to curl.
Use 'kubectl describe pod/curl -n default' to see all of the containers in this pod.
If you don't see a command prompt, try pressing enter.
[ root@curl:/ ]$

建立活動:

curl -v "<BROKER-URL>" \
-X POST \
-H "Ce-Id: my-id" \
-H "Ce-Specversion: 1.0" \
-H "Ce-Type: alpha-type" \
-H "Ce-Source: my-source" \
-H "Content-Type: application/json" \
-d '{"msg":"send-cloudevents-to-broker"}'

如果已收到事件,您會收到 HTTP 202 Accepted 回覆。使用 Ctrl + D 結束 SSH 工作階段

查看 Cloud Run 服務的記錄,確認已傳送發布的事件:

kubectl logs --selector serving.knative.dev/service=$SERVICE_NAME \
 -c user-container -n $NAMESPACE --tail=100

刪除觸發條件

測試完畢後,即可刪除觸發條件 (選用):

gcloud beta events triggers delete trigger-custom

16. 恭喜!

恭喜您完成本程式碼研究室。

涵蓋內容

  • Cloud Run for Anthos 事件的長期願景
  • Events for Cloud Run for Anthos 的現況
  • 建立 Cloud Run 接收器
  • 為 Cloud Pub/Sub 建立事件觸發條件
  • 為稽核記錄建立事件觸發條件
  • 為 Cloud Storage 建立事件觸發條件
  • 為 Cloud Scheduler 建立事件觸發條件
  • 產生及取用自訂事件