Firebase 託管與無服務器計算選項集成,包括 Cloud Functions for Firebase 和 Cloud Run。通過將 Firebase 託管與這些選項結合使用,您可以通過定向 HTTPS 請求來觸發您的函數和容器化應用程序在託管的安全環境中運行來託管微服務。
Cloud Functions for Firebase :您編寫並部署一個函數,它是響應特定觸發器的後端代碼。然後,使用 Firebase 託管,您可以定向 HTTPS 請求以觸發您的函數運行。
Cloud Run :您編寫並部署打包在容器映像中的應用程序。然後,使用 Firebase 託管,您可以定向 HTTPS 請求以觸發容器化應用程序運行。
用例
如何將無服務器計算選項與 Firebase 託管結合使用?
提供動態內容——除了在託管網站上提供靜態內容外,您還可以提供從執行服務器端邏輯的功能或容器化應用程序動態生成的響應。
例如,您可以將 URL 模式(如
/blog/<blog-post-id>
)指向一個函數,該函數使用 URL 的博客文章 ID 參數從您的數據庫中動態檢索內容。構建 REST API——您可以使用函數創建微服務 API。
例如,函數可以處理您網站的登錄功能。當您的網站託管在
/
時,對/api
的任何請求都會重定向到您的微服務 API。例如,查看此開源示例。緩存動態內容- 您可以在全球 CDN 上配置動態內容的緩存。
例如,如果某個函數僅定期生成新內容,您可以通過至少緩存生成的內容一小段時間來加速您的應用程序。您還可以潛在地降低執行成本,因為內容是從 CDN 提供的,而不是通過觸發函數或容器化應用程序提供的。
預呈現您的單頁應用程序- 您可以通過創建動態
meta
標記來改進 SEO 並優化跨各種社交網絡的共享。要了解更多信息,請觀看此視頻或查看此開源示例。
選擇無服務器選項
雖然Cloud Functions for Firebase和Cloud Run都與 Firebase Hosting 集成並提供完全託管、自動縮放和安全的無服務器環境,但這兩個選項可用於不同的用例和所需級別的自定義配置。
下表描述了使用 Cloud Functions for Firebase 與 Cloud Run 的一些基本注意事項。有關配額、限制和指標的完整列表,請參閱每個產品的詳細文檔( Cloud Functions for Firebase或Cloud Run )。
考慮 | Firebase 的雲函數 | 雲跑 |
---|---|---|
設置 | Firebase CLI 將多項任務捆綁到單個命令中,從初始化到構建和部署。 | 容器提供了更多可定制的選項,因此設置、構建和部署任務涉及不同的步驟。 |
運行環境 | 需要 Node.js,但您可以指定要使用的 Node.js版本。 | 構建容器時,您指定運行時環境。 |
語言和框架支持 | JavaScript 和打字稿 支持 Express.js 等 Web 框架。 | Dockerfiles 支持的任何語言,包括Go、Node.js、Python、Java 等 支持每種語言的 Web 框架。 |
託管請求超時 | 60 秒(見下面的註釋) | 60 秒(見下面的註釋) |
並發 | 每個函數實例 1 個請求 (每個實例沒有並發) | 每個容器實例最多 1,000 個並發請求 |
計費 | 雲函數使用 免費使用配額,但需要Cloud Billing 帳號。請參閱Firebase 常見問題解答。 | Cloud Run 使用+ Container Registry 存儲 免費使用配額,但需要Cloud Billing 帳號 |