本機開發

Cloud Run functions 支援多種方法,可在標準部署環境之外執行函式,特別適用於疊代開發,以及在部署前測試函式。

用途

函式不必部署即可執行,簡化了本機測試,以及多雲端部署作業,因此也能更簡單地遵循資料在地化限制。

本機測試

若要在每次變更後,重新部署函式來進行測試,都需要等待部署完成。相較之下,直接在開發環境中測試函式,可縮短疊代測試週期。

如要進一步瞭解測試方式,請參閱「在部署前測試 Cloud Run 函式」。

資料在地化限制

某些情況下,法規或政策可能會要求將資料保留在特定地理、組織或網路界線內,而 Cloud Run 函式本身可能無法存取這些資料。

如果符合資料在地化限制的平台,與其中一個 Cloud Run 函式的抽象層相容,您就能在該平台上的其中一層執行函式。

多雲端部署

多雲端函式部署是既有的模式,可在極度重視可靠性的環境中,降低停機風險。將函式部署至 Cloud Run functions 以外的環境,亦可降低應用程式非預期停機的風險。

實作選項

如要設定自己的函式代管環境,您必須先做出兩個重要選擇:

  • 要使用的抽象層。
  • 要執行的函式類型。

抽象層

Cloud Run functions 本身為多層架構,其中大部分已採用開放原始碼。您可透過這些開放原始碼元件,在其他平台上執行專為 Cloud Run functions 設計的程式碼。

架構中的 Functions Framework 和 Functions Emulator 這兩個元件,可在 Cloud Run functions 基礎架構外執行。本文說明各層的用途,以及彼此如何搭配運作。

下圖呈現 Cloud Run functions、Cloud Run 和其他容器型平台上,函式部署的典型配置:

函式封裝配置:函式、函式框架、buildpack、主機平台

事件類型

Cloud Run functions 的函式主要有兩種:

HTTP 函式可由任意 HTTP 要求觸發,例如 Webhook;事件驅動函式則會接收其他 Google Cloud 產品產生的事件。

選擇抽象層

您可以使用 Functions Framework 或 Functions Emulator,在本機執行函式。

Functions Framework 是一組開放原始碼程式庫,用於 Cloud Run functions,對傳入的 HTTP 要求執行 unmarshal,轉換成特定語言的函式叫用,您可利用這些程式庫,將函式轉換為可在本機執行的 HTTP 服務。

Functions Emulator 會使用 Cloud Native Buildpacks 和 Docker,封裝 Functions Framework 建立的 HTTP 服務,並建構為可執行的容器,然後在 Cloud Run functions 容器型架構上執行。

這兩種方式各有優缺點:

  • 以 Functions Framework 為基礎的環境對資源的需求通常較低
  • Functions Framework 不需要基礎容器化軟體 (例如 Docker)
  • 以 Functions Framework 為基礎的環境需要基礎語言基礎架構,例如套件管理工具和語言執行階段
  • Functions Emulator 會反映正式版指令,例如呼叫和部署
  • Functions Emulator 能以高準確度模擬函式部署在正式環境中的執行情況

在本機執行函式

Functions Framework 和 Functions Emulator 都會將 HTTP 要求轉送至函式。

如要進一步瞭解如何使用 Functions Framework 在本機執行函式,請參閱「執行 Functions Framework」。

如要進一步瞭解如何使用 Functions Emulator 在本機執行函式,請參閱「使用 Functions Emulator 執行函式」。