Cloud Functions for Firebase 有兩個版本:
- Cloud Functions (第 2 代):將函式部署為 Cloud Run 上的服務,讓您使用 Eventarc 和 Pub/Sub 觸發函式。
- Cloud Functions (第 1 代):原始版本的函式,事件觸發條件和設定選項有限。
建議您盡可能選擇 Cloud Functions (第 2 代) 做為新函式。不過,我們仍會繼續支援 Cloud Functions (第 1 代)。
本頁面說明 Cloud Functions 推出的功能,並比較這兩個產品版本。
Cloud Functions (第 2 代)
Cloud Functions 是 Firebase 的新一代函式即服務 (FaaS) 產品。Cloud Functions (第 2 代) 以 Cloud Run 和 Eventarc 為基礎,為 Cloud Functions 帶來更強大的基礎架構和更廣泛的事件涵蓋範圍,包括:
- 建構於 Cloud Run:函式是以 Cloud Build 建構,並使用預設的 Cloud Run 執行環境部署為 Cloud Run 服務。這可讓您自訂函式,就像自訂 Cloud Run 服務一樣。請參閱 Cloud Run 說明文件,瞭解如何設定服務,例如記憶體限制、環境變數等。
- 延長要求處理時間:執行耗時較長的要求工作負載,例如處理來自 Cloud Storage 或 BigQuery 的大型資料串流。
- 擴充執行個體規模:執行記憶體用量更大、運算資源需求更高的工作負載,可平行處理的工作負載數量也更多。
- 提升並行處理能力:單一函式執行個體可處理多個並行要求,能將冷啟動次數降至最少,並縮短延遲時間。
- 流量管理:在不同函式修訂版本之間分配流量,或將函式復原為先前版本。
- Eventarc 整合:原生支援 Eventarc 觸發條件,將 Eventarc 支援的所有 90 多個事件來源帶到 Cloud Functions。
- 支援更多 CloudEvents:所有語言執行階段都支援業界標準 CloudEvents,提供一致的開發人員體驗。
詳情請參閱比較表。
由於 Cloud Functions 會將函式部署為 Cloud Run 上的服務,因此 Cloud Functions 會與 Cloud Run 共用資源配額和限制。請參閱「配額」。
比較表
| 功能 | Cloud Functions (第 1 代) | Cloud Functions |
|---|---|---|
| 映像檔登錄 | Container Registry或Artifact Registry | 僅限Artifact Registry |
| 要求逾時 | 最多 9 分鐘 |
|
| 服務帳戶* | Google App Engine 服務帳戶 (PROJECT_ID@ |
Google Cloud 預設運算服務帳戶 (PROJECT_NUMBER-compute@developer.gserviceaccount.com) |
| 執行個體大小 | 最多 8 GB RAM 和 2 個 vCPU | 最多 16 GiB RAM 和 4 個 vCPU |
| 並行 | 每個函式執行個體有 1 項並行要求 | 每個函式執行個體最多可處理 1000 項並行要求 |
* 這是預設服務帳戶,用於從執行中的函式存取 Firebase 或 Cloud API。當您在不使用引數的情況下初始化時,Firebase Admin SDK 會使用這個帳戶。
定價
如需定價資訊,請參閱 Firebase 定價方案。
您可以按照下列步驟,查看與 Cloud Functions 相關的費用:
- 前往 Google Cloud 控制台的Cloud Billing「Reports」(報表) 頁面。
- 如果出現提示,請選取與 Google Cloud 雲端專案相關聯的帳單帳戶。
- 在「Filters」(篩選器) 面板的「Labels」(標籤) 下方,新增標籤篩選器,鍵為
goog-managed-by,值為cloudfunctions。
限制
Cloud Functions for Firebase (第 2 代) 不支援Analytics事件。
不過,由於第 1 代和第 2 代函式可以並存於同一個來源檔案中,您仍可使用第 2 代函式開發及部署第 1 代的 Analytics 觸發條件。