本機開發
Cloud Run 函式支援在標準部署環境以外執行函式的多種方法。這在迭代式開發作業中特別實用,也適用於您想在部署前測試函式時。
用途
不必部署即可執行函式,可簡化本機測試、符合資料位置限制,以及多雲部署作業。
本機測試
每次變更後重新部署函式來測試函式時,都必須等待部署作業完成。相反地,直接在開發環境中測試函式,可以縮短迭代測試週期。
如要進一步瞭解測試,請參閱「在部署前測試 Cloud Run 函式」。
資料位置限制
在某些情況下,法規或政策可能會要求將資料保留在特定地理、機構或網路範圍內,而 Cloud Run 函式本身可能無法存取這些資料。
如果符合資料位置限制的平台與 Cloud Run 函式的其中一個抽象層相容,您就可以直接在該平台上方 (位於其中一個層) 執行函式。
多雲端部署
多雲端函式部署是一種已建立的模式,可在可靠性至關重要的環境中降低停機風險。將函式部署至 Cloud Run 函式以外的環境,可降低應用程式發生非預期停機的風險。
導入選項
您必須先做出兩個重要選擇,才能設定自己的函式代管環境:
- 您要使用的抽象層級。
- 您要執行哪種類型的函式。
抽象層
Cloud Run 函式本身使用多層架構,其中大部分已開放原始碼。這些開放原始碼元件可讓您在其他平台上執行專為 Cloud Run 函式設計的程式碼。
這個架構的兩個元件可在 Cloud Run 函式基礎架構外執行,分別是 Functions Framework 和 Functions Emulator。本文件將說明各層的用途,以及如何搭配使用。
下圖顯示 Cloud Run 函式、Cloud Run 和其他容器型平台上的函式部署作業典型版面配置:
事件類型
Cloud Run 函式有兩種主要函式類型:
HTTP 函式可由任意 HTTP 要求 (例如 webhook) 觸發,而事件驅動函式則會接收其他 Google Cloud 產品產生的事件。
選擇抽象層
您可以使用 Functions Framework 或 Functions Emulator,在本機執行函式。
函式架構是一組在 Cloud Run 函式中使用的開放原始碼程式庫,可將傳入的 HTTP 要求解組為特定語言的函式叫用。您可以使用這些函式,將函式轉換為可在本機執行的 HTTP 服務。
函式模擬器會使用 Cloud Native Buildpacks 和 Docker 包裝由函式架構建立的 HTTP 服務,並將這些服務建構為可執行的容器,然後在 Cloud Run 函式容器架構上執行。
這兩種做法各有優缺點:
- 以函式架構為基礎的環境通常需要較少的資源
- Functions Framework 不需要底層容器化軟體 (例如 Docker)
- 以 Functions Framework 為基礎的環境需要基礎語言基礎架構 (例如套件管理員和語言執行階段)
- 函式模擬器會模擬呼叫和部署等正式版指令。
- 函式模擬器可提供高保真度,讓您瞭解函式在實際部署時的執行方式。
在本機執行函式
Functions Framework 和 Functions Emulator 都會將 HTTP 要求轉送至函式。
如要進一步瞭解如何使用 Functions Framework 在本機執行函式,請參閱「執行 Functions Framework」。
如要進一步瞭解如何使用 Functions Emulator 在本機執行函式,請參閱「使用 Functions Emulator 執行函式」。