本文介紹失敗狀態及其相關使用示例。
基本概念
失敗狀態用來提前結束一系列狀態,類似于編程語言中的raise
、throw
等操作。工作流定義中,通常一個狀態執行完成后會繼續執行后續狀態,而失敗狀態不會繼續執行下一個狀態。
運行至失敗狀態,將會完結本作用域的所有狀態,并將整個工作流完結。
失敗狀態包含以下屬性。
字段 | 類型 | 是否可選 | 描述 | 示例值 |
Name | string | 是 | 狀態名稱。 | my state |
Description | string | 否 | 狀態描述。 | describe it here |
Type | string | 是 | 狀態類型。 | Fail |
InputConstructor | map[string]any | 否 | 輸入構造器。 | 請參見輸入構造器 |
OutputConstructor | map[string]any | 否 | 輸出構造器。 | 請參見輸出構造器 |
Code | string | 否 | 錯誤碼。 | customBizCode |
Detail | string | 是 | 錯誤描述。 | my custom error |
與成功(Succeed)狀態相比,失敗狀態需要定義自定義錯誤讓流程退出,而非當前作用域完成。您可以使用Code字段自定義錯誤碼,使用Detail字段定義更多詳情。
使用示例
以下示例定義使用失敗狀態完結當前作用域。
Type: StateMachine
Name: my-workflow
SpecVersion: v1
Description: " "
StartAt: Choice1
States:
- Type: Choice
Name: Choice1
Branches:
- Condition: $Input.status == "true"
Next: Pass1
Default: Fail1
- Type: Fail
Name: Fail1
Code: "customBizCode"
End: true
- Type: Pass
Name: Pass1
End: true
失敗狀態可以理解為自帶End=true
屬性且返回錯誤的傳遞狀態。
本示例中,除非$Input.status=="true"
成立,否則將指向默認狀態,整個流程直接結束。
文檔內容是否對您有幫助?