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

Firebase Hosting 與無服務器計算選項集成,包括 Cloud Functions for Firebase 和 Cloud Run。將 Firebase 託管與這些選項結合使用,您可以通過定向 HTTPS 請求來觸發您的函數和容器化應用在託管的安全環境中運行來托​​管微服務。

Firebase 的雲函數:您編寫並部署一個函數,該函數是響應特定觸發器的後端代碼。然後,使用 Firebase 託管,您可以定向 HTTPS 請求來觸發函數運行。

Cloud Run :您編寫並部署打包在容器映像中的應用程序。然後,使用 Firebase Hosting,您可以定向 HTTPS 請求來觸發容器化應用程序運行。

用例

如何將無服務器計算選項與 Firebase 託管結合使用?

  • 提供動態內容- 除了在託管站點上提供靜態內容之外,您還可以提供從執行服務器端邏輯的函數或容器化應用程序動態生成的響應。

    例如,您可以將 URL 模式(如/blog/<blog-post-id> )指向使用 URL 的博客文章 ID 參數從數據庫動態檢索內容的函數。

  • 構建 REST API — 您可以使用函數創建微服務 API。

    例如,函數可以處理您網站的登錄功能。當您的網站託管在/時,任何對/api請求都會重定向到您的微服務 API。例如,請查看這個開源示例

  • 緩存動態內容— 您可以在全局 CDN 上配置動態內容的緩存

    例如,如果某個函數僅定期生成新內容,您可以通過將生成的內容緩存至少一小段時間來加快應用程序的速度。您還可以潛在地降低執行成本,因為內容是通過 CDN 提供的,而不是通過觸發的函數或容器化應用程序提供。

  • 預渲染您的單頁應用程序- 您可以通過創建動態meta標籤來改進 SEO 並優化跨各種社交網絡的共享。要了解更多信息,請觀看此視頻或查看此開源示例

選擇無服務器選項

雖然Cloud Functions for FirebaseCloud Run都與 Firebase Hosting 集成,並提供完全託管、自動擴展和安全的無服務器環境,但這兩個選項可用於不同的用例和所需級別的自定義配置。

使用任一無服務器選項時,最好通過部署在以下區域之一,將其與 Firebase 託管服務器共置:

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

下表介紹了使用 Cloud Functions for Firebase 與 Cloud Run 的一些基本注意事項。有關配額、限制和指標的完整列表,請參閱每個產品的詳細文檔( Cloud Functions for FirebaseCloud Run )。

考慮Firebase 的雲功能雲跑
設置Firebase CLI 將從初始化到構建和部署的多個任務捆綁到單個命令中。容器提供了更多可定制的選項,因此設置、構建和部署任務涉及離散的步驟。
運行環境需要 Node.js,但您可以指定要使用哪個版本的 Node.js。構建容器時,您指定運行時環境。
語言和框架支持

JavaScript 和 TypeScript

支持 Express.js 等 Web 框架。

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

支持每種語言的 Web 框架。

託管請求超時60 秒(見下面的註釋) 60 秒(見下面的註釋)
並發性每個函數實例 1 個請求
(每個實例沒有並發)
每個容器實例最多 1,000 個並發請求
計費雲函數使用

免費使用配額,但需要Cloud Billing 帳號。請參閱Firebase 常見問題解答

Cloud Run 使用+ Container Registry 存儲

免費使用配額,但需要Cloud Billing 帳號