本機開發
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 和其他容器型平台上,函式部署的典型配置:
事件類型
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 執行函式」。