本機開發

Cloud Run 函式支援在標準部署環境以外執行函式的多種方法。這在迭代式開發作業中特別實用,也適用於您想在部署前測試函式時。

用途

不必部署即可執行函式,可簡化本機測試、符合資料位置限制,以及多雲部署作業。

本機測試

每次變更後重新部署函式來測試函式時,都必須等待部署作業完成。相反地,直接在開發環境中測試函式,可以縮短迭代測試週期。

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

資料位置限制

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

如果符合資料位置限制的平台與 Cloud Run 函式的其中一個抽象層相容,您就可以直接在該平台上方 (位於其中一個層) 執行函式。

多雲端部署

多雲端函式部署是一種已建立的模式,可在可靠性至關重要的環境中降低停機風險。將函式部署至 Cloud Run 函式以外的環境,可降低應用程式發生非預期停機的風險。

導入選項

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

  • 您要使用的抽象層級。
  • 您要執行哪種類型的函式。

抽象層

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

這個架構的兩個元件可在 Cloud Run 函式基礎架構外執行,分別是 Functions FrameworkFunctions Emulator。本文件將說明各層的用途,以及如何搭配使用。

下圖顯示 Cloud Run 函式、Cloud Run 和其他容器型平台上的函式部署作業典型版面配置:

函式包裝版面配置:函式、函式架構、Buildpack、主機平台

事件類型

Cloud Run 函式有兩種主要函式類型:

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

選擇抽象層

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

函式架構是一組在 Cloud Run 函式中使用的開放原始碼程式庫,可將傳入的 HTTP 要求解組為特定語言的函式叫用。您可以使用這些函式,將函式轉換為可在本機執行的 HTTP 服務。

函式模擬器會使用 Cloud Native BuildpacksDocker 包裝由函式架構建立的 HTTP 服務,並將這些服務建構為可執行的容器,然後在 Cloud Run 函式容器架構上執行。

這兩種做法各有優缺點:

  • 以函式架構為基礎的環境通常需要較少的資源
  • Functions Framework 不需要底層容器化軟體 (例如 Docker)
  • 以 Functions Framework 為基礎的環境需要基礎語言基礎架構 (例如套件管理員和語言執行階段)
  • 函式模擬器會模擬呼叫和部署等正式版指令。
  • 函式模擬器可提供高保真度,讓您瞭解函式在實際部署時的執行方式。

在本機執行函式

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

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

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