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 等網頁架構。 |
Dockerfile 支援的任何語言,包括 Go、Node.js、Python、Java 和其他語言 支援各語言的網路架構。 |
Hosting 要求的逾時時間 | 60 秒 (請參閱下方附註) | 60 秒 (請參閱下方附註) |
並行 | 每個函式執行個體 1 項要求 (每個執行個體沒有並行) |
每個容器執行個體最多可處理 1,000 個並行要求 |
帳單 | Cloud Functions 用法
免費用量配額,但必須擁有 Cloud Billing 帳戶。請參閱 Firebase 常見問題。 |
Cloud Run 用量 +
Container Registry 儲存空間
免費用量配額,但必須使用 Cloud Billing 帳戶 |