配额和限制

Workflows 使用配额和系统限制来维持公平的资源分配、防止服务过载,并帮助您管理资源使用。

配额和系统限制类似,但在以下方面有所不同:

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

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

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

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

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

如需了解详情,请参阅 Cloud 配额概览。

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

配额

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

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

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

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

10,000
积压的执行 每个区域、每个项目的积压工作流执行次数上限。

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

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

如果 Eventarc 触发的执行次数超过此上限,则系统会按照 Eventarc 重试政策重试事件。

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

配额增加申请

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

监控配额用量

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

步数限制

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

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

如需详细了解哪些操作会被视为一个步骤,请参阅优化用量。

10 万

并行步骤限制

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

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

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

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

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

资源限制

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

限制 说明 值
源代码大小 用于定义工作流的 YAML 或 JSON 文件的大小上限 128 KB
响应大小 HTTP 响应的大小上限(如果保存到变量,则变量的内存限制适用) 2 MB
HTTP 请求超时

单个 HTTP 请求的最长可配置时长。超时的请求会失败,并显示 TimeoutError:

  • 对于 HTTP 请求步骤(http.get、http.post、http.request 和其他 http.* 调用),默认 timeout 为 300 秒(5 分钟),您可以将 timeout 配置为最长 1,800 秒(30 分钟)。如果将 timeout 设置为超过 1,800 秒,则会引发 ValueError。
  • 对于连接器调用,默认 connector_params.timeout 为 1,800 秒(30 分钟)。如果您为重试或长时间运行的操作轮询配置了更长的 connector_params.timeout(最长 1 年),则每个单独的 HTTP 请求上限为 1,800 秒。
1,800 秒(30 分钟)
表达式长度 单个表达式中的字符数上限 400 个字符
数据大小 变量、参数和事件的累计大小上限: 512 KB
  • 在给定工作流的单次执行中,您定义的所有变量可以使用的内存量上限
  • 创建工作流执行时可以传递的参数的大小上限
  • 使用事件触发工作流执行时,您可以传递的 Eventarc 载荷的大小上限
使用 UTF-8 编码的最大字符串长度(以字节为单位) 256 KB
环境变量 用户定义的环境变量定义字符串 (KEY=value) 的大小上限;最多可以定义 20 个变量 4 KiB
执行时长 工作流执行的时长上限(从开始时间到结束时间);任何超过此限制的工作流都会以超时错误结束 1 年
执行保留期限 执行历史记录和结果的最长保留期限(在工作流执行完成后) 90 天
去重时间范围 去重窗口,用于确保在使用事件触发工作流执行时仅处理一次 24 小时