本機開發

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

用途

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

本機測試

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

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

資料在地化限制

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

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

多雲端部署

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

實作選項

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

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

抽象層

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

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

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

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

事件類型

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

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

選擇抽象層

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

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

Functions Emulator 會使用 Cloud Native BuildpacksDocker,封裝 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 執行函式」。