全部產品
Search
文件中心

CloudFlow:失敗(Fail)

更新時間:Jul 06, 2024

本文介紹失敗狀態及其相關使用樣本。

基本概念

失敗狀態用來提前結束一系列狀態,類似於程式設計語言中的raisethrow等操作。工作流程定義中,通常一個狀態執行完成後會繼續執行後續狀態,而失敗狀態不會繼續執行下一個狀態。 運行至失敗狀態,將會完結本範圍的所有狀態,並將整個工作流程完結。

失敗狀態包含以下屬性。

欄位

類型

是否可選

描述

樣本值

Name

string

狀態名稱。

my state

Description

string

狀態原因。

describe it here

Type

string

狀態類型。

Fail

InputConstructor

map[string]any

輸入構造器。

請參見輸入和輸出

OutputConstructor

map[string]any

輸出構造器。

請參見狀態輸出構造器

Code

string

錯誤碼。

customBizCode

Detail

string

錯誤描述。

my custom error

成功(Succeed)狀態相比,失敗狀態需要定義自訂錯誤讓流程退出,而非當前範圍完成。您可以使用Code欄位自訂錯誤碼,使用Detail欄位定義更多詳情。

使用樣本

以下樣本定義使用失敗狀態完結當前範圍。

Type: StateMachine
Name: my-workflow
SpecVersion: v1
Description: " "
StartAt: Choice1
States:
  - Type: Choice
    Name: Choice1
    Branches:
      - Condition: $Input.status == "true"
        Next: Pass1
    Default: Fail1
  - Type: Fail
    Name: Fail1
    Code: "customBizCode"
    End: true
  - Type: Pass
    Name: Pass1
    End: true

失敗狀態可以理解為內建End=true屬性且返回錯誤的傳遞狀態。

本樣本中,除非$Input.status=="true"成立,否則將指向預設狀態,整個流程直接結束。