得益于 Cloud Run 和 Eventarc 提供的支持,Cloud Functions for Firebase(第 2 代)能够向您提供更强大的基础架构,让您对性能和可伸缩性进行更深层次的控制,并更好地控制函数运行时。本预览版文档介绍了第 2 代预览版中新增了哪些功能以及当前提供哪些功能,并提供了一些有关如何单独使用新 API 以及将该 API 与 Cloud Functions for Firebase(第 1 代)API 结合使用的指南。
Cloud Functions for Firebase(第 2 代)的新增功能
Cloud Functions for Firebase(第 2 代)目前提供的变更和增强功能包括:
- 函数实例现在可以一次执行多个请求。此功能适用于具备 1 个或更多专用 CPU 的函数。
您可以使用
setGlobalOptions
方法为各个函数或所有函数设置并发级别。如果未指定,具备 1 个或更多专用 CPU 的新函数将默认设为 80 个并发请求。请参阅允许并发请求。 - 可使用全新的
cors
设置保护 Callable 函数和 HTTP 函数。HTTP 触发器现在还新增了一项cors
设置,可让您更轻松地管理 CORS。 - Cloud Functions 函数现在基于 Cloud Run 构建。如果您不熟悉 Cloud Run,也不必担心,构建函数还与以前一样简单。Cloud Run 是一款更加现代化的无服务器产品,可让您获得更好的性能和配置,并更好地进行监控。
- Google 已与业界领先企业合作,制定了 CloudEvents 规范。事件处理函数现在使用此开放标准作为其事件签名。
- 新的触发器类型包括:Firebase Alerts 触发器、Firebase Extensions 的自定义事件触发器,以及用于在 Cloud Tasks 上运行资源密集型任务的任务队列函数(第 1 代中也提供了任务队列函数)。
firebase-functions
SDK 经过重新设计,更符合现代 JavaScript 的原生要求。您可以全局配置第 2 代函数,使用选项对象,以及使用模块导入项。- 现在,如果工作负载的运行时间较长,可以将 HTTP 函数的超时时间设为 1 小时(之前最多为 9 分钟)。
- 目前,在默认情况下,函数实例使用默认计算服务帐号,而不是 App Engine 服务帐号。
预览版阶段的限制
此 Cloud Functions (第 2 代) 预览版尚未包含一整套计划中的功能,也未提供 Cloud Functions(第 1 代)的完整功能。它在可用的触发器方面存在限制,另外还存在本部分中介绍的其他限制。
当前可用的 Cloud Functions 触发器
Cloud Functions (第 2 代) 支持以下 Firebase 后台触发器:
- Firebase Realtime Database
- Cloud Storage
- Firebase 提醒
- Pub/Sub
- Callable 函数
- Cloud Tasks
- HTTP
- 预定函数
- Firebase Authentication 屏蔽函数
- Firebase Remote Config
- Firebase Test Lab
- Cloud Firestore
Cloud Functions(第 2 代)目前不支持以下触发器:
- Firebase Authentication
onCreate
和onDelete
- Google Analytics(分析)
其他限制
这些限制也适用于 Cloud Functions(第 2 代):
- Firebase CLI 或 Firebase 控制台尚不支持全面的可观测性。如需观测您的函数实例,请使用 Google Cloud 控制台监控底层 Cloud Run 服务。
- Firebase Local Emulator Suite 目前在第 2 代中支持 HTTP、Cloud Storage 和 Pub/Sub 函数。
- 冷启动尚未在第 2 代中进行优化,因此暂时可能会明显慢于第 1 代。但是,由于存在并发机制,最终用户体验到的总体冷启动时间应该会减少。