Serverless工作流 失败步骤

By | 2021年4月22日

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

介绍

失败(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        

请关注公众号获取更多资料

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注