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

Firebase Hosting 可整合無伺服器運算選項,包括 Cloud Functions for FirebaseCloud 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 FirebaseCloud Run 都會整合 Firebase Hosting,並提供全代管、自動調度資源和安全的無伺服器環境,但這兩種選項可用於不同的用途,並提供所需的自訂設定層級。

使用無伺服器選項時,建議您在下列任一區域部署,並將其與 Firebase Hosting 的伺服器一併放置:

  • us-west1
  • us-central1
  • us-east1
  • europe-west1
  • asia-east1

下表說明使用 Cloud Functions for FirebaseCloud Run 時的幾項基本考量。如需配額、限制和指標的完整清單,請參閱各項產品的詳細說明文件 (Cloud Functions for FirebaseCloud Run)。

考量重點 Cloud Functions for Firebase Cloud Run
設定方式 Firebase CLI 會將多項工作 (從初始化到建構和部署) 整合為單一指令。 容器提供更多可自訂的選項,因此設定、建構和部署工作會涉及個別步驟。
執行階段環境 需要 Node.js,但您可以指定要使用的 Node.js 版本 建構容器時,您會指定執行階段環境。
支援的語言和框架

JavaScript 和 TypeScript

支援 Express.js 等網頁架構。

Dockerfile 支援的任何語言,包括 Go、Node.js、Python、Java 和其他語言

支援各語言的網路架構。

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

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

Cloud Run 用量 + Container Registry 儲存空間

免費用量配額,但必須使用 Cloud Billing 帳戶