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

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

分布式地图状态的容忍故障阈值

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

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

注意

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

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

容许的失败百分比

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

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

例如,给定以下输入:

{ "percentage": 15 }

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

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

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

容许的失败次数

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

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

例如,给定以下输入:

{ "count": 10 }

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

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

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