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

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

支援各語言的網路架構。

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

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

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

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