本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
失敗的工作流程
Fail
state ("Type": "Fail"
) 停止狀態機的執行,並將其標記為失敗,除非它被Catch
塊捕獲。
狀Fail
態只允許使用一組通用狀態Comment欄位中的Type和欄位。此外,Fail
狀態允許使用下列欄位。
-
Cause
(選用) -
描述錯誤原因的自訂字串。您可以為操作或診斷目的指定此欄位。
-
CausePath
(選用) -
如果您想要使用參考路徑從狀態輸入動態提供有關錯誤原因的詳細描述,請使用
CausePath
。解析後,參考路徑必須選取包含字串值的欄位。您也可以
CausePath
使用返回字符串的內在函數來指定。這些內建函式為:狀態。格式、、、States.JsonToStringStates.ArrayGetItemStates.Base64Encode、States.Base64Decode狀態雜湊和。 States.UUID重要
-
您可以在「失敗」狀態定義中指定
Cause
或CausePath
,但不能同時指定兩者。 -
我們建議您從原因說明中移除任何敏感資訊或內部系統詳細資訊,做為資訊安全最佳作法。
-
-
Error
(選用) -
ErrorPath
(選用) -
如果您想要使用參考路徑從狀態輸入動態提供錯誤名稱,請使用
ErrorPath
。解析後,參考路徑必須選取包含字串值的欄位。您也可以
ErrorPath
使用返回字符串的內在函數來指定。這些內建函式為:狀態。格式、、、States.JsonToStringStates.ArrayGetItemStates.Base64Encode、States.Base64Decode狀態雜湊和。 States.UUID重要
-
您可以在「失敗」狀態定義中指定
Error
或ErrorPath
,但不能同時指定兩者。 -
我們建議您從錯誤名稱中移除任何敏感資訊或內部系統詳細資訊,做為資訊安全最佳作法。
-
由於 Fail
狀態一律會結束狀態機器,因此沒有 Next
欄位,也不需要 End
欄位。
失敗狀態定義範例
下列 Fail 狀態定義範例會指定靜態值Error
和Cause
欄位值。
"FailState": {
"Type": "Fail",
"Cause": "Invalid response.",
"Error": "ErrorA"
}
下列「失敗」狀態定義範例會動態使用參考路徑來解析Error
和Cause
欄位值。
"FailState": {
"Type": "Fail",
"CausePath": "$.Cause",
"ErrorPath": "$.Error"
}
下列「失敗」狀態定義範例會使用狀態 .Format 內建函數來動態指定Error
和Cause
欄位值。
"FailState": {
"Type": "Fail",
"CausePath": "States.Format('This is a custom error message for {}, caused by {}.', $.Error, $.Cause)",
"ErrorPath": "States.Format('{}', $.Error)"
}