获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

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

Cloud RunEventarc的支持下,Cloud Functions for Firebase(第 2 代)有可能为您提供更强大的基础设施、对性能和可扩展性的高级控制,以及对函数运行时的更多控制。此预览文档解释了第二代预览中的新功能和此时可用的功能,并提供了有关如何使用新 API 的一些指导,无论是单独使用还是与 Cloud Functions for Firebase(第一代)API 一起使用。

Cloud Functions for Firebase(第 2 代)的新功能

Cloud Functions for Firebase(第 2 代)中当前可用的更改和增强功能包括:

  • 函数实例现在可以一次执行多个请求。此功能适用于具有一个专用 CPU 或更高版本的功能。可以在每个函数的基础上或使用setGlobalOptions方法跨所有函数设置并发级别。如果未指定,具有 1 个专用 CPU 或更高的新功能将默认为 80 个并发请求。请参阅允许并发请求
  • 使用新的cors设置保护您的可调用函数和 HTTP 函数。 HTTP 触发器现在也有一个cors设置,使 CORS 更易于管理
  • Cloud Functions 现在建立在Cloud Run之上。如果您不熟悉 Cloud Run,请不要担心:构建函数与以前一样简单。 Cloud Run 是一种更现代的无服务器产品,可为您提供更好的性能、更好的配置、更好的监控等。
  • Google 与行业领导者合作创建了CloudEvents 规范。事件处理函数现在使用这个开放标准作为它们的事件签名。
  • 新的触发器类型包括Firebase Alerts 触发器、Firebase Extensions 的自定义事件触发器,以及用于在 Cloud Tasks 上运行资源密集型任务的任务队列函数(第一代也提供任务队列函数)。
  • firebase-functions SDK 经过重新设计,更适合现代 JavaScript。您可以全局配置第二代功能,使用选项对象,并使用模块化导入
  • 如果长时间运行的工作负载需要,HTTP 函数现在可以有1 小时的超时时间(之前为 9 分钟)
  • 函数实例现在默认为默认计算服务帐户,而不是应用引擎服务帐户。

预览期间的限制

Cloud Functions 2nd gen 的预览尚未包含完整的计划功能集,也不提供与 Cloud Functions(第 1 代)完全相同的功能。它在触发器和可用区域方面受到限制,并且具有本节中描述的其他当前限制。

当前可用的 Cloud Functions 位置

Cloud Functions 第二代目前在以下地区可用:

  • europe-north1
  • europe-west1
  • europe-west4
  • us-central1
  • us-east1
  • us-west1

当前可用的 Cloud Functions 触发器

第二代 Cloud Functions 支持以下 Firebase 后台触发器:

  • Firebase 实时数据库
  • 云储存
  • Firebase 警报
  • 发布/订阅
  • 可调用物
  • 云任务
  • HTTP
  • 预定功能
  • Firebase 身份验证阻止功能
  • Firebase 远程配置
  • Firebase 测试实验室

Cloud Functions 2nd gen当前不支持以下触发器:

  • 云端 Firestore
  • Firebase 身份验证onCreateonDelete
  • 谷歌分析

其他限制

这些限制也适用于第二代 Cloud Functions:

  • 函数名称仅限于小写字母、数字和破折号。
  • 完全可观察性尚未内置到 Firebase CLI 或 Firebase 控制台中。要观察您的函数实例,请使用底层Cloud Run 服务的 Google Cloud Console。
  • Firebase Local Emulator Suite 目前在第二代中支持 HTTP、云存储和 Pub/Sub 功能。
  • HTTP 函数尚不支持cloudfunctions.net URL;暂时,您会看到.run.app URL。此限制还会影响可调用函数和任务队列函数的调用(有关可接受的解决方法,请参阅相应的指南)。
  • 2代还没有优化冷启动,暂时可能比1代慢很多。但是,由于并发性,最终用户总体上应该经历更少的冷启动。