Cloud Functions(第 2 代)公开预览版

得益于 Cloud RunEventarc 提供的支持,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 onCreateonDelete
  • Google Analytics(分析)

其他限制

这些限制也适用于 Cloud Functions(第 2 代):

  • Firebase CLI 或 Firebase 控制台尚不支持全面的可观测性。如需观测您的函数实例,请使用 Google Cloud 控制台监控底层 Cloud Run 服务
  • Firebase Local Emulator Suite 目前在第 2 代中支持 HTTP、Cloud Storage 和 Pub/Sub 函数。
  • 冷启动尚未在第 2 代中进行优化,因此暂时可能会明显慢于第 1 代。但是,由于存在并发机制,最终用户体验到的总体冷启动时间应该会减少。