失败工作流状态 - AWS Step Functions

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

失败工作流状态

Fail 状态 ("Type": "Fail") 将停止状态机的执行并将其标记为故障,除非被 Catch 块捕获。。

Fail 状态仅允许使用常用状态字段集合中的 TypeComment 字段。此外,Fail 状态允许以下字段。

Cause(可选)

描述错误原因的自定义字符串。您可以指定此字段用于操作或诊断目的。

CausePath(可选)

如果要使用参考路径从状态输入中动态提供有关错误原因的详细描述,请使用CausePath。解决后,参考路径必须选择包含字符串值的字段。

您也可以使用返回字符串的内置函数来指定 CausePath。这些内置函数包括:States.FormatStates.JsonToStringStates.ArrayGetItemStates.Base64EncodeStates.Base64DecodeStates.HashStates.UUID.

重要
  • 您可以在 Fail 状态定义中指定 CauseCausePath,但二者不能同时指定。

  • 作为信息安全最佳实操,我们建议您从原因描述中删除任何敏感信息或内部系统详细信息。

Error(可选)

使用 RetryCatch 字段执行错误处理时可以提供的错误名称。您也可以提供错误名称用于操作或诊断目的。

ErrorPath(可选)

如果要使用参考路径从状态输入中动态提供错误的名称,请使用 ErrorPath。解决后,参考路径必须选择包含字符串值的字段。

您也可以使用返回字符串的内置函数来指定 ErrorPath。这些内置函数包括:States.FormatStates.JsonToStringStates.ArrayGetItemStates.Base64EncodeStates.Base64DecodeStates.HashStates.UUID.

重要
  • 您可以在 Fail 状态定义中指定 ErrorErrorPath,但二者不能同时指定。

  • 作为信息安全最佳实操,我们建议您从错误名称中删除任何敏感信息或内部系统详细信息。

由于 Fail 状态始终会退出状态机,它们没有 Next 字段,也不需要 End 字段。

Fail 状态定义示例

以下 Fail 状态定义示例指定了静态 ErrorCause 字段值。

"FailState": { "Type": "Fail", "Cause": "Invalid response.", "Error": "ErrorA" }

以下 Fail 状态定义示例使用参考路径动态解析 ErrorCause 字段值。

"FailState": { "Type": "Fail", "CausePath": "$.Cause", "ErrorPath": "$.Error" }

以下 Fail 状态定义示例使用 States.Format 内置函数动态指定 ErrorCause 字段值。

"FailState": { "Type": "Fail", "CausePath": "States.Format('This is a custom error message for {}, caused by {}.', $.Error, $.Cause)", "ErrorPath": "States.Format('{}', $.Error)" }