本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
失败工作流状态
Fail
状态 ("Type": "Fail"
) 将停止状态机的执行并将其标记为故障,除非被 Catch
块捕获。。
Fail
状态仅允许使用常用状态字段集合中的 Type
和 Comment
字段。此外,Fail
状态允许以下字段。
-
Cause
(可选) -
描述错误原因的自定义字符串。您可以指定此字段用于操作或诊断目的。
-
CausePath
(可选) -
如果要使用参考路径从状态输入中动态提供有关错误原因的详细描述,请使用
CausePath
。解决后,参考路径必须选择包含字符串值的字段。您也可以使用返回字符串的内置函数来指定
CausePath
。这些内置函数包括:States.Format、States.JsonToString、States.ArrayGetItem、States.Base64Encode、States.Base64Decode、States.Hash 和 States.UUID.重要
-
您可以在 Fail 状态定义中指定
Cause
或CausePath
,但二者不能同时指定。 -
作为信息安全最佳实操,我们建议您从原因描述中删除任何敏感信息或内部系统详细信息。
-
-
Error
(可选) -
ErrorPath
(可选) -
如果要使用参考路径从状态输入中动态提供错误的名称,请使用
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)"
}