使用 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 帳號