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

配额和限制

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

此页面根据 Blaze 即用即付定价计划详细介绍了 Cloud Functions 的可扩展的、基于使用的限制。这些限制适用于将函数部署到 Node.js 10 运行时环境的 Firebase 项目。

Blaze 计划免费提供大量调用、计算时间和互联网流量。但是,函数部署会产生用于函数容器的存储空间的小规模费用。有关详细信息,请参阅 Firebase常见问题解答

Google Cloud Functions 的配额包括 3 个方面:

  • 资源限制

    这些会影响您的函数可以消耗的资源总量。

  • 时间限制

    这些会影响事物可以运行多长时间。

  • 速率限制

    这些会影响您可以调用 Cloud Functions API 的速率和/或可以使用资源的速率。您可以将速率配额视为“随时间变化的资源”。

下面更详细地描述了不同类型的限制。 Cloud Functions(第 1 代)和 Cloud Functions(第 2 代)限制之间的差异会在适用的地方注明。

资源限制

资源限制会影响您的函数可以消耗的资源总量。区域范围以项目为单位,每个项目都有自己的限制。

配额描述限制(第一代)限制(第二代)可以增加范围
功能数量每个区域可以部署的函数总数1,000 1,000 减去已部署的 Cloud Run 服务数每个地区
最大部署大小单个功能部署的最大尺寸100MB(压缩)用于源。
500MB(未压缩)用于源代码和模块。
不适用每个功能
最大未压缩 HTTP 请求大小在 HTTP 请求中发送到 HTTP 函数的数据10MB 32MB每次调用
最大未压缩 HTTP 响应大小在 HTTP 响应中从 HTTP 函数发送的数据10MB 10MB 用于流式响应。
32MB 用于非流媒体响应。
每次调用
事件驱动函数的最大事件大小事件中发送到后台函数的数据10MB 512KB 用于 Eventarc 事件。
10MB 用于遗留事件。
每个事件
最大函数记忆每个函数实例可以使用的内存量8GiB 16GiB每个功能

时间限制

配额描述限制(第一代)限制(第二代)可以增加范围
最大功能持续时间函数在被强制终止之前可以运行的最长时间540 秒HTTP 函数 60 分钟。
事件驱动函数 10 分钟。
每次调用

速率限制

配额描述限制(第一代)限制(第二代)可以增加范围
API 调用(阅读)通过 Cloud Functions API 调用以描述或列出函数每 100 秒 5000每 60 秒 1200仅适用于第一代每个项目(第一代)
每个区域(第二代)
API 调用(写入)通过 Cloud Functions API 调用部署或删除函数每 100 秒 80 次每 60 秒 60 次1号每个项目(第一代)
每个区域(第二代)
API 调用 (CALL)调用“调用”API每 100 秒 16 次不适用2号每个项目

可扩展性

由 HTTP 调用的 Cloud Functions 可以快速扩展以处理传入流量,而后台函数则可以逐渐扩展。功能的扩展能力取决于几个因素,包括:

  • 函数执行完成所需的时间(短时间运行的函数通常可以扩展以处理更多并发请求)。
  • 函数在冷启动时初始化所花费的时间。
  • 速率限制,如上所述。
  • 您的函数的错误率。
  • 瞬态因素,例如区域负载和数据中心容量。

后台功能有额外的限制,如下所述。这些限制不适用于HTTP 函数

后台功能的额外配额

配额描述限制可以增加范围
最大并发调用单个函数的最大并发调用数
示例:如果处理每个事件需要 100 秒,则调用率将限制为平均每秒 30 次
3,000每个功能
最大调用率单个函数处理的事件的最大速率
示例:如果处理一个事件需要 100 毫秒,调用率将被限制为每秒 1000 次,即使平均只有 100 个请求被并行处理
每秒 1000 个每个功能
最大并发事件数据大小单个函数并发调用的传入事件的最大总大小
示例:如果事件大小为 1MB 并且处理它们需要 10 秒,则平均速率将为每秒 1 个事件,因为第 11 个事件将在前 10 个事件中的一个处理完成之前处理
10MB每个功能
传入事件的最大吞吐量单个函数传入事件的最大吞吐量
示例:如果事件的大小为 1MB,则调用速率最多为每秒 10 次,即使函数在 100 毫秒内完成也是如此
每秒 10MB每个函数

当您达到配额限制时

当一个函数消耗所有分配的资源时,该资源将变得不可用,直到刷新或增加配额。这可能意味着您的功能和同一项目中的所有其他功能在此之前将无法使用。当其中一个资源超出配额且函数无法执行时,函数将返回 HTTP 500 错误代码。

要将配额增加到此处列出的默认值之上,请转到Cloud Functions 配额页面,选择您要修改的配额,单击EDIT QUOTAS ,在出现提示时提供您的用户信息,然后为您选择的每个配额输入新的配额限制。

Firebase CLI 部署的配额限制

对于 Firebase CLI 部署的每个函数,这些类型的速率和时间限制会受到影响:

  • API 调用 (READ) - 每个部署调用 1 次,无论函数有多少
    • 限制:每 100 秒 5000
  • API 调用(写入)- 每个函数调用 1 次
    • 限制:每 100 秒 80 次

另请参阅Firebase CLI 参考