View a markdown version of this page

Fail 工作流程状态 - AWS Step Functions

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

Fail 工作流程状态

管理状态和转换数据

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

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

Cause(可选)

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

在 JSONata 状态下,您还可以指定一个 JSONata 表达式。

CausePath(可选,仅限 JSONPath)

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

您也可以使用返回字符串的内置函数来指定 CausePath。这些内置函数包括:States.Format、States.JsonToString、States.ArrayGetItem、States.Base64Encode、States.Base64Decode、States.Hash 和 States.UUID.

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

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

Error(可选)

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

在 JSONata 状态下,您还可以指定一个 JSONata 表达式。

ErrorPath(可选,仅限 JSONPath)

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

您也可以使用返回字符串的内置函数来指定 ErrorPath。这些内置函数包括:States.Format、States.JsonToString、States.ArrayGetItem、States.Base64Encode、States.Base64Decode、States.Hash 和 States.UUID.

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

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

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

Fail 状态定义示例

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

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

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

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

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

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