このトピックでは、失敗状態について説明し、関連する例を示します。
概要
失敗状態は、一連の状態が実行される前に、それらを終了するために使用されます。失敗状態は、プログラミング言語における raise や throw などのアクションに似ています。フローの一般的な定義では、現在の状態が完了した後に次の状態が実行されます。ただし、現在の状態が失敗状態の場合、次の状態は実行されません。
フローが失敗状態になると、スコープ内のすべての状態が終了します。この場合、フロー全体が終了します。
次の表は、失敗状態に含まれる属性について説明しています。
属性 | タイプ | 必須 | 説明 | 例 |
Name(名前) | string(文字列) | はい | 状態の名前。 | my state |
Description(説明) | string(文字列) | いいえ | 状態の説明。 | describe it here |
Type(タイプ) | string(文字列) | はい | 状態のタイプ。 | Fail(失敗) |
InputConstructor(入力コンストラクター) | map[string]any | いいえ | 入力コンストラクター。 | 詳細については、InputConstructor をご参照ください。 |
OutputConstructor(出力コンストラクター) | map[string]any | いいえ | 出力コンストラクター。 | 詳細については、OutputConstructor をご参照ください。 |
Code(コード) | string(文字列) | いいえ | 返されるエラーコード。 | customBizCode |
Detail(詳細) | string(文字列) | はい | エラーの説明。 | my custom error |
失敗状態のカスタムエラーを定義する必要があります。カスタムエラーが発生した場合、フローは失敗して終了します。成功 状態では、成功状態が属するフローは、現在のスコープが完了した後に終了します。Code パラメーターを使用してエラーコードを指定し、Detail パラメーターを使用して追加の詳細を指定できます。
例
次のサンプルフローでは、失敗状態を使用してスコープを終了します。
Type: StateMachine
Name: my-workflow
SpecVersion: v1
Description: " "
StartAt: Choice1
States:
- Type: Choice
Name: Choice1
Branches:
- Condition: $Input.status == "true" // $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" 条件が満たされない場合、フローはデフォルト状態に進み、フロー全体が終了します。