本文介紹了失敗步驟和其相關使用樣本。
介紹
失敗(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