分布式 Map 状态容许的故障阈值 - Amazon Step Functions
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

分布式 Map 状态容许的故障阈值

在编排大规模并行工作负载时,您还可以定义一个容许的故障阈值。此值可用于指定失败项目的最大数量或百分比作为 Map Run 的失败阈值。根据您指定的数量值或百分比值,如果超出阈值,Map Run 将自动失败。如果同时指定两个值,则当工作流超过任一值时,工作流就会失败。

指定阈值可以帮助您在整个 Map Run 失败之前允许特定定数量的项目失败。当 Map Run 因超过指定阈值而失败时,Step Functions 会返回 States.ExceedToleratedFailureThreshold 错误。

注意

即使在超过容许的失败阈值之后,Step Functions 仍可能在 Map Run 失败之前继续运行 Map Run 中的子工作流。

要在 Workflow Studio 中指定阈值,请在运行时设置字段下的其他配置中选择设置容许的故障阈值

容许的失败百分比

定义容许的失败项目所占的百分比。如果超过此值,Map Run 将失败。Step Functions 通过失败或超时项目总数除以项目总数计算失败项目的百分比。您可以指定 0 到 100 之间的值。默认百分比值为零,意味着如果任何一个子工作流执行失败或超时,工作流就会失败。如果将百分比指定为 100,则即使所有子工作流执行都失败,该工作流也不会失败。

或者,您可以将百分比指定为分布式 Map 状态 输入中现有键值对的参考路径。在运行时,此路径必须解析为 0 到 100 之间的正整数。您可以在 ToleratedFailurePercentagePath 子字段中指定参考路径。

例如,给定以下输入:

{ "percentage": 15 }

您可以使用该输入的参考路径来指定百分比,如下所示:

{ ... "Map": { "Type": "Map", ... "ToleratedFailurePercentagePath": "$.percentage" ... } }
重要

您可以在分布式 Map 状态定义中指定 ToleratedFailurePercentageToleratedFailurePercentagePath,但不能同时指定两者。

容许的失败数

定义容许的失败项目数。如果超过此值,Map Run 将失败。

或者,您可以将该数值指定为分布式 Map 状态 输入中现有键值对的参考路径。在运行时,此路径必须解析为正整数。您可以在 ToleratedFailureCountPath 子字段中指定参考路径。

例如,给定以下输入:

{ "count": 10 }

您可以使用该输入的参考路径来指定数值,如下所示:

{ ... "Map": { "Type": "Map", ... "ToleratedFailureCountPath": "$.count" ... } }
重要

您可以在分布式 Map 状态定义中指定 ToleratedFailureCountToleratedFailureCountPath,但不能同时指定两者。