失败(Fail)

本文介绍失败状态及其相关使用示例。

基本概念

失败状态用来提前结束一系列状态,类似于编程语言中的raisethrow等操作。工作流定义中,通常一个状态执行完成后会继续执行后续状态,而失败状态不会继续执行下一个状态。 运行至失败状态,将会完结本作用域的所有状态,并将整个工作流完结。

失败状态包含以下属性。

字段

类型

是否可选

描述

示例值

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"成立,否则将指向默认状态,整个流程直接结束。