全部產品
Search
文件中心

CloudFlow:失敗步驟

更新時間:Jul 06, 2024

本文介紹了失敗步驟和其相關使用樣本。

介紹

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