本文介绍了失败步骤和其相关使用示例。

介绍

失败(Fail)步骤用来提前结束一系列步骤,类似于编程语言中的 raisethrow 等操作。当流程执行完失败步骤后,定义在失败步骤之后的步骤不会被继续执行,并且导致失败步骤的父步骤失败,并一直传递,最后导致流程执行失败。

失败步骤包含以下属性:

  • type(必需):fail,表示该步骤是失败步骤。
  • name(必需):步骤名称。
  • error(可选):错误类型。
  • cause(可选):错误原因。
  • inputMappings(可选):输入映射。
  • outputMappings(可选):输出映射。

示例

下面的流程定义使用失败步骤提前结束执行流程。

  • 如果输入中的 status 的值是 ready,则会执行第一个条件选项的步骤 pass1,然后执行 final
  • 如果输入中的 status 的值是 failed,则会执行第二个条件选项的跳转,结束选择步骤,执行 handle_failure。由于 handle_failure 是失败步骤,其结束后不会继续执行 final 步骤。
  • 如果输入中不存在 status 或者 status 的值不是 readyfailed,则会执行默认选项逻辑, 即 pass2handle_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