失敗的工作流程 - AWS Step Functions

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

失敗的工作流程

Failstate ("Type": "Fail") 停止狀態機的執行,並將其標記為失敗,除非它被Catch塊捕獲。

Fail態只允許使用一組通用狀態Comment欄位中的Type和欄位。此外,Fail 狀態允許使用下列欄位。

Cause (選用)

描述錯誤原因的自訂字串。您可以為操作或診斷目的指定此欄位。

CausePath (選用)

如果您想要使用參考路徑從狀態輸入動態提供有關錯誤原因的詳細描述,請使用CausePath。解析後,參考路徑必須選取包含字串值的欄位。

您也可以CausePath使用返回字符串的內在函數來指定。這些內建函式為:狀態。格式、、、States.JsonToStringStates.ArrayGetItemStates.Base64Encode、States.Base64Decode狀態雜湊和。 States.UUID

重要
  • 您可以在「失敗」狀態定義中指定CauseCausePath,但不能同時指定兩者。

  • 我們建議您從原因說明中移除任何敏感資訊或內部系統詳細資訊,做為資訊安全最佳作法。

Error (選用)

您可以提供使用 [重試] 或 [Catch] 欄位執行錯誤處理的錯誤名稱。您也可以為操作或診斷目的提供錯誤名稱。

ErrorPath (選用)

如果您想要使用參考路徑從狀態輸入動態提供錯誤名稱,請使用ErrorPath。解析後,參考路徑必須選取包含字串值的欄位。

您也可以ErrorPath使用返回字符串的內在函數來指定。這些內建函式為:狀態。格式、、、States.JsonToStringStates.ArrayGetItemStates.Base64Encode、States.Base64Decode狀態雜湊和。 States.UUID

重要
  • 您可以在「失敗」狀態定義中指定ErrorErrorPath,但不能同時指定兩者。

  • 我們建議您從錯誤名稱中移除任何敏感資訊或內部系統詳細資訊,做為資訊安全最佳作法。

由於 Fail 狀態一律會結束狀態機器,因此沒有 Next 欄位,也不需要 End 欄位。

失敗狀態定義範例

下列 Fail 狀態定義範例會指定靜態值ErrorCause欄位值。

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

下列「失敗」狀態定義範例會動態使用參考路徑來解析ErrorCause欄位值。

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

下列「失敗」狀態定義範例會使用狀態 .Format 內建函數來動態指定ErrorCause欄位值。

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