建立及部署 Cloud Run 函式後,您可以指定觸發事件,讓函式在因應各種情況時執行。本頁面提供 Cloud Run 函式支援的觸發事件總覽。
觸發條件類型
根據預設,在 Cloud Run 上部署的所有函式都是Cloud Run 原始碼部署服務,且具有 HTTP 端點 (run.app
網址)。如果您先前是使用 gcloud functions
指令或 Cloud Functions v2 API 建立函式,則該函式預設會具有 cloudfunctions.net
HTTP 端點。
函式的叫用或觸發方式取決於您在編寫程式碼時指定的函式類型。
- 事件驅動觸發條件:會回應 Google Cloud 專案中的事件,並對應至事件驅動函式 (也稱為 CloudEvent 函式)。您必須使用 Eventarc,也就是 Google 實作的 CloudEvents 規格,可支援建構事件導向架構,以便根據指定事件觸發函式。
- HTTP 觸發條件:回應 HTTP(S) 要求,並對應至 HTTP 函式。您可以使用其他Google Cloud 服務 (非 Eventarc) 做為事件供應器,透過 HTTP(S) 要求叫用函式。
如要觸發函式以回應 Google Cloud 專案中的事件,請在 Google Cloud 主控台中部署函式時,或在使用 gcloud CLI 部署函式後,指定觸發條件。
您無法一次將相同的函式繫結至多個觸發事件,但您可以透過部署具有相同觸發設定的多個函式,讓相同事件觸發多個函式執行。
觸發事件範例
以下是 Cloud Run 函式支援的觸發事件範例:
事件驅動觸發條件:
- 由 Eventarc 觸發的 Pub/Sub 事件
- 由 Eventarc 觸發的 Cloud Storage 事件
- 由 Eventarc 觸發的 Firestore 事件
- 其他事件觸發條件
- 支援 Eventarc 支援的任何事件類型,包括使用 Cloud 稽核記錄的 90 多個事件來源
HTTP 觸發條件:
- 透過 HTTP 要求叫用
- 透過 Workflows 在工作流程中叫用服務
- 使用 Cloud Scheduler 依排程叫用服務
- 使用 Cloud Tasks 執行非同步工作
- 透過 Pub/Sub 推送訂閱項目觸發服務
- Pub/Sub 訊息可透過 HTTP 要求直接轉送至函式,或在 Eventarc 中包裝為事件驅動觸發事件。
所有事件導向函式都會使用 Eventarc 傳送事件。Pub/Sub 觸發條件和 Cloud Storage 觸發條件會實作為特定類型的 Eventarc 觸發條件。
使用 Pub/Sub 和 webhook 的其他觸發條件
由於 Cloud Run 函式可透過 Pub/Sub 主題上的訊息觸發,因此您可以將 Cloud Run 函式與任何其他支援 Pub/Sub 做為事件中繼的 Google 服務整合。此外,您也可以使用 HTTP 觸發事件,整合提供 HTTP 回呼 (webhook) 的任何服務。以下各節將說明一些整合範例。
Cloud Logging
Cloud Logging 可將記錄檔路由至 Pub/Sub 主題,以便 Cloud Run 函式使用。詳情請參閱 Cloud Logging 說明文件中的「設定及管理接收端」一節。
Cloud Scheduler
您可以建立 Cloud Scheduler 工作,以便使用 HTTP 觸發動作,藉此排定 HTTP 函式。
您也可以排定以事件為依據的函式,當函式應直接觸發時,會回應 Google Cloud 專案中的事件,例如當訊息發布至 Pub/Sub 主題時。
Cloud Tasks
您可以使用 Cloud Tasks HTTP 目標工作,在任何 HTTP 端點上執行工作處理常式,因此含有 HTTP 觸發事件的 HTTP 函式可用做為工作處理常式。您也可以使用工作來限制或限制函式呼叫的頻率。詳情請參閱 Cloud Tasks 說明文件中的「建立 HTTP 目標工作」。
Gmail
您可以使用 Gmail Push Notification API,將 Gmail 事件傳送至 Pub/Sub 主題,並透過 Cloud Run 取用這些事件。