配额和限制

本文档列出了适用于 Workflows 的配额和系统限制。 配额用于指定您可以使用的可计数共享资源数量,由 Google Cloud 服务(例如 Workflows)定义。 系统限制是无法更改的固定值。

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

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

  • 监控 Google Cloud 产品和服务的消耗情况
  • 限制这些资源的消耗量
  • 提供一种请求更改配额值的方法

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

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

Workflows 资源也存在系统限制。 这些系统限制与配额系统无关。系统限制不能 更改。

配额

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

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

每个区域每个项目的有效工作流执行次数上限。并发执行是指已开始但尚未启动的执行 包括尚未完成或已失败的操作,包括正在等待回调或 都在睡觉

达到配额后,如果执行回推处于启用状态,系统会以 QUEUED 状态创建执行作业。如果停用了执行积压,或者 达到积压的执行作业的配额,所有新的执行作业都会失败 以及 HTTP 429 Too many requests 状态代码。

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

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

100000
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 步骤条目的请求数量上限(每个位置每分钟) 1200
Execution API 导出数据请求 对工作流执行发出的 export data 请求的数量上限(每个位置每分钟) 10
HTTP 请求发送到 回调端点 针对您项目中所有工作流的执行资源发出的 SendHttpCallback API 请求数上限(每分钟每个位置) 1500
Execution API 列出回调请求 对工作流执行发出的 list 回调的请求数上限(每个位置每分钟) 300

配额增加请求

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

步数限制

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

限制 说明
每个步骤的分配数量 最大数量 作业 只需一步即可执行 50
每个切换的条件数量 在一次评估中可以评估的条件数量上限 切换区块 50
调用堆栈深度上限 调用函数的层级数上限;例如,子工作流调用自身或其他子工作流;或标准库函数调用,这些调用又会调用其他函数 20
步数下限 工作流中的步数下限 1
步数上限 可在单个工作流执行过程中执行的步数上限 100000

并行步骤限制

使用并行步骤时,Workflows 会实施以下限制。 您无法请求更改这些限制:

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

单个工作流执行期间可并发执行的分支和迭代数量上限,超出此数量后,系统会自动将其他分支和迭代加入队列,等待一个或多个正在运行的线程完成。

对总线程数没有限制;但需遵守所有其他限制

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

资源限制

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

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