Cloud Functions for Firebase

Cloud Functions for Firebase 是無伺服器的架構,可讓您自動執行後端程式碼,以因應背景事件、HTTPS 要求、Admin SDK 或 Cloud Scheduler 工作觸發的事件。您的 JavaScript、TypeScript 或 Python 程式碼會儲存在 Google Cloud 基礎架構中,並在代管環境中執行。不必自行管理伺服器並調度資源

已在 Google Cloud 中使用 Cloud Functions?進一步瞭解 Firebase 如何融入這個架構。

開始使用 用途

主要功能

整合 Firebase 功能,並將 Firebase 連結至 Google Cloud

您編寫的函式可以回應各種 Firebase 和 Google Cloud 功能產生的事件,例如 Firebase 驗證觸發條件Cloud Storage 觸發條件

使用 Admin SDK 搭配 Cloud Functions 來整合 Firebase 的功能,並編寫您自己的 Webhook 來與第三方服務整合。Cloud Functions 可減少樣板程式碼,方便您在函式中使用 Firebase 和 Google Cloud。
免維護 透過指令列只需使用一個指令,即可將 JavaScript、TypeScript 或 Python 程式碼部署至我們的伺服器。之後,Firebase 就會自動擴充運算資源,以因應使用者的使用模式。您再也不必擔心憑證、伺服器設定、佈建新伺服器或停用舊伺服器等問題。
確保邏輯私密且安全無虞 多數情況下,開發人員偏好在伺服器上控制應用程式邏輯,以免用戶端遭到竄改。另外,有時也不想允許對程式碼進行反向工程。Cloud Functions 可從用戶端完全隔離,因此您可以確保其私密性,並一律執行所需作業。

運作原理

在您編寫及部署函式之後,Google 的伺服器會立即開始管理函式。您可以直接透過 HTTP 要求、Admin SDK 或排程工作啟動函式;如果是背景函式,Google 的伺服器則會監聽事件,並在觸發時執行函式。

隨著負載增加或減少,Google 會快速調度執行函式所需的虛擬伺服器執行個體數量來採取因應措施。每個函式都會在其專屬環境中獨立執行,且具備專屬的設定。

背景函式的生命週期

  1. 您可以為新函式編寫程式碼,選取事件提供者 (例如 Cloud Firestore),然後定義執行函式的條件。
  2. 部署函式時:
    1. Firebase CLI 會建立函式程式碼的 .zip 封存檔,然後上傳至 Cloud Storage 值區 (開頭為 gcf-sources),然後 Cloud Functions 在專案中建立 Artifact Registry 存放區 (名為 gcf-artifacts)。
    2. Cloud Build 擷取函式程式碼並建構函式來源。您可以在 Google Cloud 控制台中查看 Cloud Build 記錄檔。
    3. 所建構函式程式碼的容器映像檔會上傳到專案中的私人 Artifact Registry 存放區 (名為 gcf-artifacts),並推出新函式。
  3. 當事件提供者產生符合函式條件的事件時,就會叫用程式碼。
  4. 如果函式忙於處理多個事件,Google 會建立更多執行個體來加快工作處理速度。如果函式處於閒置狀態,系統會清除執行個體。
  5. 當您部署更新的程式碼以更新函式時,系統會清除舊版執行個體與 Artifact Registry 中的建構構件,然後由新的執行個體取代。
  6. 刪除函式後,系統會清除所有執行個體和 ZIP 封存檔,以及 Artifact Registry 中的相關建構構件。函式與事件提供者之間的連線已移除。

除了監聽具有背景函式的事件之外,您也可以使用 HTTP 要求或從用戶端發出的呼叫直接呼叫函式。您也可以透過 Admin SDK,依固定排程將工作函式排入佇列來觸發函式。

實作路徑

設定 Cloud Functions 在 Firebase 專案中安裝 Firebase CLI,並初始化 Cloud Functions。
寫出函式 編寫 JavaScript 程式碼、TypeScript 程式碼或 Python 程式碼,以便處理 Firebase 服務、Google Cloud 服務或其他事件提供者的事件。
測試函式 使用本機模擬器測試函式。
部署及監控 為專案啟用計費功能,並使用 Firebase CLI 部署函式。您可以使用 Google Cloud 控制台查看及搜尋記錄檔。

後續步驟