本文介绍了失败步骤和其相关使用示例。
介绍
失败(Fail)步骤用来提前结束一系列步骤,类似于编程语言中的raise
、throw
等操作。当流程执行完失败步骤后,定义在失败步骤之后的步骤不会被继续执行,并且导致失败步骤的父步骤失败,并一直传递,最后导致流程执行失败。
失败步骤包含以下属性:
- (必需)type:fail表示该步骤是失败步骤。
- (必需)name:步骤名称。
- (可选)error:错误类型。
- (可选)cause:错误原因。
- (可选)inputMappings:输入映射。
- (可选)outputMappings:输出映射。
示例
下面的流程定义使用失败步骤提前结束执行流程。
- 如果输入中的
status
的值是ready
,则会执行第一个条件选项的步骤pass1
,然后执行final
。 - 如果输入中的
status
的值是failed
,则会执行第二个条件选项的跳转,结束选择步骤,执行handle_failure
。由于handle_failure
是失败步骤,其结束后不会继续执行final
步骤。 - 如果输入中不存在
status
或者status
的值不是ready
和failed
,则会执行默认选项逻辑,即pass2
和handle_failure
。
version: v1
type: flow
steps:
- type: choice
name: mychoice
choices:
- condition: $.status == "ready"
# choice with steps
steps:
- type: pass
name: pass1
goto: final
- condition: $.status == "failed"
goto: handle_failure
default:
# no need to use goto
steps:
- type: pass
name: pass2
- type: fail
name: handle_failure
error: StatusIsNotReady
cause: status is not ready
- type: pass
name: final