配额和限制

本文档列出了适用于 Workflows 的配额和系统限制。

  • 配额具有默认值,但您通常可以申请调整。
  • 系统限制是无法更改的固定值。

Google Cloud 使用配额来帮助确保公平性并减少资源使用和可用性的激增。配额用于限制您的 Google Cloud 项目可使用的Google Cloud 资源的数量。配额适用于一系列资源类型,包括硬件、软件和网络组件。例如,配额可以限制对某项服务的 API 调用次数、您的项目并发使用的负载均衡器数量或者您可以创建的项目数量。配额可以防止服务过载,从而保护Google Cloud 用户社区。配额还可以帮助您管理自己的 Google Cloud 资源。

Cloud 配额系统执行以下操作:

在大多数情况下,当您尝试消耗的资源超出其配额允许的范围时,系统会阻止对资源的访问,并且您尝试执行的任务会失败。

配额通常在 Google Cloud 项目级层应用。您在一个项目中使用资源不会影响您在另一个项目中的可用配额。在 Google Cloud 项目中,配额在所有应用和 IP 地址间共享。

Workflows 资源也有系统限制。系统限制不能更改。

配额

Workflows 会对每个 Google Cloud项目实施以下配额。您可以增加或减少以下配额

配额 说明
工作流总数 每个项目可以部署的工作流数上限 10000
并发执行次数

每个项目在每个区域的有效工作流执行次数上限。并发执行是指已开始但尚未完成或失败的执行,包括任何正在等待回调或处于休眠状态的执行。

达到配额后,如果默认启用执行积压(存在一些例外情况),系统会以 QUEUED 状态创建执行。如果执行积压处于停用状态,或者积压执行的配额已达到上限,则任何新的执行都会失败并返回 HTTP 429 Too many requests 状态代码。如需了解详情,请参阅 管理执行积压

10000
积压的执行 每个项目在每个区域的积压工作流执行次数上限。

如需了解详情,请参阅 管理执行积压

10 万
Workflow API 请求 您项目中所有工作流发出的 API 请求(createupdatelistgetdelete)数上限(每分钟每个位置) 1200
Execution API get 请求 针对您项目中所有工作流的 get 工作流执行的请求数上限(每分钟每个位置) 6000
Execution API list 请求 针对您项目中所有工作流的 list 工作流执行请求数上限(每分钟每个位置) 1200
Execution API write 请求 每分钟每个位置针对您项目中所有工作流的 createcancel 工作流执行(包括 Eventarc 触发的执行)的请求数上限。

如果 Eventarc 触发的执行次数超出此上限,系统会根据 Eventarc 重试政策重试事件。

6000
Execution API get step entries 请求 工作流执行过程中对步骤条目的请求数上限(每分钟每个位置)get 6000
Execution API list step entries 请求 工作流执行中对 list 步条目的请求数上限(每分钟每个位置) 1200
Execution API 导出数据请求 工作流执行对 export data 的请求数上限(每分钟每个位置) 10
回调端点发送的 HTTP 请求 针对您项目中所有工作流的执行资源发出的 SendHttpCallback API 请求数上限(每分钟每个位置) 1500
Execution API list 回调请求 工作流执行的 list 回调请求数上限(每分钟每个位置) 300

配额增加申请

如需增加或减少配额,请使用 Google Cloud 控制台。如需了解详情,请参阅申请更高配额

监控配额使用情况

您可以查询和监控配额用量指标。如需查看示例,请参阅监控配额指标,其中演示了如何查询 Workflows 的总消耗分配配额。如需了解如何监控配额用量指标,请参阅为配额指标绘制图表并进行监控

步数限制

Workflows 会对每个工作流程设有以下步数限制。 您无法申请更改以下限制:

限制 说明
每个步骤的分配数量 单个步骤中可执行的分配数量上限 50
每个切换的条件数量 单个切换块中可评估的条件数上限 50
最大调用堆栈深度 调用函数的最大层数;例如,当子工作流调用自身或其他子工作流时;或者,标准库函数调用进而调用其他函数时 20
步数下限 工作流中的步数下限 1
步数上限 可在单个工作流执行过程中执行的步数上限 10 万

并行步数限制

使用并行步骤时,Workflows 会强制执行以下限制。 您无法申请更改以下限制:

限制 说明
每个步骤的分支数 并行步骤中支持的分支数上限 10
平行深度 并行步骤可嵌套的最大深度 2
并发分支和迭代

在单个工作流执行过程中可并发执行的分支和迭代次数上限,超过此上限的分支和迭代会自动排队,等待一个或多个正在运行的线程完成。

线程总数没有限制;不过,所有其他限制都适用。

20
并行步骤中的未捕获异常 工作流执行期间(总共)可以引发的未处理异常数量上限 100

资源限制

Workflows 实施以下用量限制。您无法申请更改以下限制:

限制 说明
源代码大小 用于定义工作流的 YAML 或 JSON 文件的大小上限 128 KB
响应大小 HTTP 响应的大小上限(如果保存到变量,则变量的内存限制适用) 2 MB
表达式长度 单个表达式中的最大字符数 400 个字符
数据大小 变量、实参和事件的累计大小上限: 512 KB
  • 在一次执行给定工作流的过程中,您可以为您定义的所有变量使用的内存上限
  • 创建工作流执行时可以传递的实参的大小上限
  • 使用事件触发工作流执行时可以传递的 Eventarc 载荷的最大大小
使用 UTF-8 编码时,字符串的最大长度(以字节为单位) 256 KB
环境变量 用户定义的环境变量定义字符串 (KEY=value) 的最大大小;最多可以定义 20 个变量 4 KiB
执行时长 工作流执行的时长上限(从开始时间到结束时间);任何超出此限制的工作流最后都会出现超时错误 1 年
执行保留期限 执行历史记录和结果的最长保留期限(工作流执行完成后) 90 天
去重时段 在通过事件触发工作流执行时,用于确保“正好一次”处理的重复数据删除窗口 24 小时