Firebase 託管整合了無伺服器運算選項,包括 Cloud Functions for Firebase 和 Cloud Run。如果搭配這些選項使用 Firebase 託管,您可將微服務引導至 HTTPS 要求,以觸發您的函式和容器化應用程式,在安全的代管環境中執行。
Cloud Functions for Firebase:請編寫及部署函式,這是可回應特定觸發條件的後端程式碼。接著,使用 Firebase 代管,您就能引導 HTTPS 要求以觸發函式執行。
Cloud Run:您可以編寫及部署應用程式封裝在容器映像檔中的應用程式,接著,使用 Firebase 託管,您就能引導 HTTPS 要求,觸發容器化應用程式執行。
用途
如何搭配 Firebase 託管使用無伺服器運算選項?
提供動態內容:除了在託管網站上提供靜態內容之外,您還可以透過執行伺服器端邏輯的函式或容器化應用程式提供動態產生的回應。
舉例來說,您可以將網址模式 (例如
/blog/<blog-post-id>
) 指向使用該網址的網誌文章 ID 參數的函式,以動態方式從資料庫擷取內容。建構 REST API — 您可以使用函式建立微服務 API。
舉例來說,函式可以處理網站的登入功能。雖然您的網站由
/
代管,但所有對/api
的要求都會重新導向至微服務 API。如需範例,請參閱此開放原始碼範例。快取動態內容:您可以在全球 CDN 上設定快取內容。
舉例來說,如果函式只會定期產生新內容,您可以透過快取產生的內容至少一段時間,藉此加快應用程式速度。您也可以降低執行成本,因為內容是從 CDN 提供,而非透過觸發的函式或容器化應用程式提供。
預先轉譯單頁應用程式:您可以建立動態
meta
標記,改善搜尋引擎最佳化 (SEO) 並在各種社交網路上分享的最佳分享。如要瞭解詳情,請觀看這部影片,或查看這個開放原始碼範例。
選擇無伺服器選項
雖然 Cloud Functions for Firebase 和 Cloud Run 都整合了 Firebase 託管,並提供全代管、自動調度資源且安全的無伺服器環境,但這兩個選項可用於不同用途和想要的自訂設定層級。
使用任何無伺服器選項時,最好透過在下列其中一個地區進行部署,與 Firebase 託管的伺服器並存:
us-west1
us-central1
us-east1
europe-west1
asia-east1
下表說明使用 Cloud Functions for Firebase 與 Cloud Run 時的一些基本考量。如需配額、限制和指標的完整清單,請參閱各產品的詳細說明文件 (Cloud Functions for Firebase 或 Cloud Run)。
考慮度 | Cloud Functions for Firebase | Cloud Run |
---|---|---|
設定 | Firebase CLI 會將多項工作封裝至單一指令,包括初始化、建構和部署等。 | 容器提供更多可自訂的選項,因此設定、建構和部署工作需執行不同的步驟。 |
執行階段環境 | 需要使用 Node.js,但您可以指定要使用的 Node.js 版本。 | 建構容器時,您必須指定執行階段環境。 |
支援語言和架構 | JavaScript 和 TypeScript 系統支援 Express.js 等網路架構。 |
Dockerfile 支援的任何語言,包括 Go、Node.js、Python、Java 等 Google 支援各語言的網路架構。 |
「託管」要求逾時 | 60 秒 (請見下方「注意」) | 60 秒 (請見下方「注意」) |
並行 | 每個函式執行個體 1 個要求 (每個執行個體無並行) |
每個容器執行個體最多 1,000 個並行要求 |
帳單 | Cloud Functions 用量 可免費使用配額,但需要 Cloud Billing 帳戶。請參閱 Firebase 常見問題。 |
Cloud Run 用量 + Container Registry 儲存空間 可免費使用配額,但需要 Cloud Billing 帳戶 |