配额

本文档介绍 Cloud Run functions 的配额限制。

Cloud Run functions 的配额涉及 4 个方面:

  • 资源限制

    这些限制会影响您的函数可以使用的资源总量。

  • 时间限制

    这些限制会影响函数可以运行的时长。

  • 速率限制

    这些限制会影响您调用 Cloud Run functions API 来管理函数的速率。

  • 网络限制

    这些设置会影响出站连接和实例限制。

下面将更详细地介绍各种不同类型的限制,并指明了 Cloud Run functions(第 1 代)和 Cloud Run functions(第 2 代)限制之间的差异(如适用)。

资源限制

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

Quota 说明 限制(第 1 代) 限制(第 2 代) 能否增加? 范围
函数的数量 每个区域可以部署的函数总数 1000 1000 减去已部署的 Cloud Run 服务数量 否 每个区域
部署大小上限 单个函数部署的大小上限 源文件为 100 MB(压缩后)。
源文件和模块一共 500 MB(未压缩)。
不适用 否 每个函数
未压缩 HTTP 请求的大小上限 在一个 HTTP 请求中发送到 HTTP 函数的数据量 10 MB 32 MB 否 每次调用
未压缩 HTTP 响应的大小上限 在一个 HTTP 响应中从 HTTP 函数发送的数据量 10 MB 流式响应为 10 MB。
非流式响应为 32 MB。
否 每次调用
事件驱动函数的事件大小上限 在事件中发送到后台函数的数据量 10 MB Eventarc 事件为 512 KB。
旧版事件为 10 MB。
否 每个事件
函数内存的大小上限 每个函数实例可以使用的内存量 8 GiB 32GiB 否 每个函数
项目内存上限 项目可以使用的内存量(以字节为单位)。它按 1 分钟内各个函数实例中用户请求的内存总和来衡量。 取决于所选区域。此限制在高容量区域可能较高,在最近打开的区域可能较低。 不适用 是 每个项目和区域
项目 CPU 上限 项目可以使用的 CPU 量(以毫微 vCPU 为单位)。它按 1 分钟内各个函数实例中用户请求的 CPU 总和来衡量。 取决于所选区域。此限制在高容量区域可能较高,在最近打开的区域可能较低。 不适用 是 每个项目和区域

时间限制

Quota 说明 限制(第 1 代) 限制(第 2 代) 能否增加? 范围
函数运行时长上限 函数在被强制终止之前可以运行的最长时间 540 秒 HTTP 函数为 60 分钟。
事件驱动型函数为 60 分钟。
否 每次调用

速率限制

Quota 说明 限制(第 1 代) 限制(第 2 代) 能否增加? 范围
API 调用次数(读取) 通过 Cloud Run functions API 描述或列出函数的调用次数 每 100 秒 5000 次 每 60 秒 1200 次 仅第 1 代可增加 按项目(第 1 代)
按区域(第 2 代)
API 调用次数 (WRITE) 通过 Cloud Run functions API 部署或删除函数的调用次数 每 100 秒 80 次 每 60 秒 60 次 否1 按项目(第 1 代)
按区域(第 2 代)
API 调用次数 (CALL) 对“CALL” API 的调用次数 每 100 秒 16 次 不适用 否2 每个项目

网络限制

如需了解 Cloud Run functions(第 2 代)网络请求和带宽限制,请参阅网络限制。

以下网络限制适用于 Cloud Run functions(第 1 代):

  • 每个实例每秒的出站连接数:500(无法增加)
  • 每个实例每秒的出站 DNS 解析次数:100(无法增加)
  • 每个实例的每秒数据包数上限:80,000
  • 每个实例的每秒位数上限:100,000,000

可伸缩性

通过 HTTP 调用的 Cloud Run functions 函数可以快速扩容以处理传入流量,而后台函数的扩容速度则要慢一些。函数的扩容能力取决于多种因素,包括:

  • 函数执行完毕所需的时间(短期运行的函数通常可以扩容以处理更多的并发请求)。
  • 函数在冷启动时初始化所用的时间。
  • 函数的错误率。
  • 暂时性因素,例如区域负载和数据中心容量。

  • 由实例数下限、实例数上限和并发数(并发数仅限第 2 代)定义的配置。

后台函数有如下所述的额外限制。这些限制不适用于第 1 代 HTTP 函数。第 2 代 HTTP 函数的默认实例数上限为 100,可以增加到 1,000。第 1 代 HTTP 函数没有默认实例数上限。为避免使用第 1 代 HTTP 函数进行无界限扩缩,我们建议设置限制,例如 3,000。

后台函数的额外配额

Quota 说明 限制 能否增加? 范围 产品版本
并发调用次数上限 单个函数的最大并发调用数
示例:如果处理每个事件需要 100 秒,则平均每秒的调用率将限制为 30
3000 是 每个函数 仅限第 1 代函数
调用速率上限 单个函数处理事件的最大速率
示例:如果处理一个事件需要 100 毫秒,即使仅平均并行处理 100 个请求,调用速率也将被限制为每秒 1000 次
每秒 1000 次 否 每个函数 仅限第 1 代函数
并发事件数据大小上限 单个函数并发调用的传入事件的大小上限
示例:如果事件的大小为 1 MB,处理它们需要 10 秒,则平均速率为每秒 1 个事件,因为在前 10 个事件中的某一个完成处理之前,不会处理第 11 个事件
10 MB 否 每个函数 第 1 代和第 2 代
传入事件吞吐量上限 单个函数的传入事件的最大吞吐量
示例:如果事件的大小为 1 MB,即使函数在 100 毫秒内完成,调用速率最高也只能是每秒 10 次
每秒 10 MB 否 每个函数 第 1 代和第 2 代

达到配额限制时

当某个函数用完分配的某种资源的所有配额后,该资源将不再可用,直到相应配额刷新或增加。这可能意味着,在此期间,您的函数和同一项目中的所有其他函数都将无法工作。当函数使用的资源中有某项资源超过配额后,该函数将返回一个 HTTP 500 错误代码且无法执行。

如需将配额增加到超出此处所列默认值的水平,请前往 Cloud Run functions 配额页面,选择要修改的配额,然后点击修改配额,在出现提示时提供您的用户信息,并为您选择的每项配额输入新的配额限制。