建立及部署 Cloud Run 函式後,您可以指定觸發條件,讓函式因應各種情境執行。本頁面提供 Cloud Run 函式支援的觸發條件總覽。
觸發條件類型
根據預設,部署在 Cloud Run 上的所有函式都是透過 Cloud Run 來源部署的服務,具有 HTTP 端點 (run.app 網址)。如果您先前使用 gcloud functions 指令或 Cloud Functions 第 2 代 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 取用這些事件。