Fail - AWS Step Functions

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

Fail

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

Fail狀態只允許使用TypeComment從一組字段一般狀態欄位。此外,Fail 狀態允許使用下列欄位。

Cause (選用)

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

CausePath (選用)

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

您也可以指定CausePath使用內在函數返回一個字符串。這些內在函數是:狀態. 格式,States.JsonToString,States.ArrayGetItem,States.Base64Encode,States.Base64Decode,狀態雜湊,以及States.UUID

重要
  • 您可以指定Cause或者CausePath,但不能同時處於「失敗」狀態定義中。

  • 基於資訊安全最佳實務,建議您從原因說明中移除任何敏感資訊或內部系統詳細資訊。

Error (選用)

您可以提供用於執行錯誤處理的錯誤名稱重試或者捕捉欄位。您也可以為操作或診斷目的提供錯誤名稱。

ErrorPath (選用)

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

您也可以指定ErrorPath使用內在函數返回一個字符串。這些內在函數是:狀態. 格式,States.JsonToString,States.ArrayGetItem,States.Base64Encode,States.Base64Decode,狀態雜湊,以及States.UUID

重要
  • 您可以指定Error或者ErrorPath,但不能同時處於「失敗」狀態定義中。

  • 基於資訊安全最佳實務,建議您從錯誤名稱中移除任何敏感資訊或內部系統詳細資訊。

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

失敗狀態定義實務

下面的失敗狀態定義示例指定靜態ErrorCause字段值。

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

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

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

下列「失敗」狀態定義範例使用狀態. 格式內在函數來指定ErrorCause動態字段值。

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