運用 Firebase 託管,提供動態內容和託管微服務

Firebase Hosting 可與無伺服器運算選項整合,包括 Cloud Functions for Firebase 和 Cloud Run。搭配使用 Firebase Hosting 與這些選項,您可以將 HTTPS 要求導向觸發函式和容器化應用程式,在受管理的安全環境中執行,藉此代管微服務。

Cloud Functions for Firebase:您編寫及部署函式,也就是回應特定觸發條件的後端程式碼。然後,您可以使用 Firebase Hosting 將 HTTPS 要求導向觸發函式,以執行函式。

Cloud Run:您編寫並部署封裝在容器映像檔中的應用程式。接著,您可以使用 Firebase Hosting 將 HTTPS 要求導向容器化應用程式,觸發應用程式執行。

用途

如何搭配 Firebase Hosting 使用無伺服器運算選項?

  • 提供動態內容:除了在 Hosting 網站上提供靜態內容,您也可以從執行伺服器端邏輯的函式或容器化應用程式,提供動態產生的回應。

    舉例來說,您可以將網址模式 (例如 /blog/<blog-post-id>) 指向某個函式,該函式會使用網址的網誌文章 ID 參數,從資料庫動態擷取內容。

  • 建構 REST API:您可以使用函式建立微服務 API。

    舉例來說,函式可以處理網站的登入功能。雖然您的網站託管於 /,但對 /api 的任何要求都會重新導向至微服務 API。如需範例,請參閱這個開放原始碼範例。

  • 快取動態內容:您可以在全球 CDN 上設定快取動態內容。

    舉例來說,如果函式只會定期產生新內容,您可以快取產生的內容至少一段時間,藉此加快應用程式速度。此外,由於內容是從 CDN 提供,而非透過觸發的函式或容器化應用程式提供,因此您可能也能降低執行成本。

  • 預先算繪單頁應用程式:您可以建立動態 meta 標記,改善 SEO 並在各種社群網路上最佳化分享功能。如要瞭解詳情,請觀看這部影片或參閱這個開放原始碼範例。

選擇無伺服器選項

Cloud Functions for Firebase 和 Cloud Run 都與 Firebase Hosting 整合,並提供全代管、自動調度資源和安全的無伺服器環境,但這兩種選項適用於不同的用途,以及所需的自訂設定層級。

使用任一無伺服器選項時,最好將其與伺服器共置,方法是在下列任一區域中部署 Firebase Hosting:

  • 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 等網頁架構。

Dockerfiles 支援的任何語言,包括 Go、Node.js、Python、Java 等

支援各語言的網頁架構。

Hosting 要求逾時 60 秒 (請參閱下方附註) 60 秒 (請參閱下方附註)
並行 每個函式執行個體 1 項要求
(每個執行個體沒有並行)
每個容器執行個體最多可處理 1,000 項並行要求
帳單 Cloud Functions 用量

提供免費用量配額,但必須擁有Cloud Billing帳戶。請參閱 Firebase 常見問題。

Cloud Run 使用量 + Container Registry 儲存空間

提供免費用量配額,但必須有Cloud Billing帳戶