配额和限制

本文档列出了适用于 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 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
步数上限 可在单个工作流执行过程中执行的步数上限 100000

并行步数限制

使用并行步骤时,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 小时