本文匯總使用云工作流過程中涉及到的基本概念,方便您更好地查詢和理解相關術語。
云工作流 (CloudFlow)
云工作流(CloudFlow)是一種用于協調、管理和執行多個分布式任務的服務。它允許用戶以可視化的方式設計、編排工作流程,將不同的服務、API調用或者數據處理步驟組織成有序的工作流程,并通過調試各個步驟確保流程按照預期執行。云工作流的相關操作,請參見創建流程。
標準工作流(Standard Workflow)
標準工作流支持定制流程的每一個步驟,適用于較復雜邏輯判斷等場景,并適用于傳統意義上的離線業務流程編排執行場景,具備執行步驟狀態的持久化存儲,支持運行長時間的工作流執行狀態流轉。更多信息,請參見標準工作流和快速工作流。
快速工作流(Express Workflow)
快速工作流適用于結構簡單、流程固化的場景,用戶可以快速部署以提高效率。它同樣適用于常見的在線業務流程編排和準實時業務流程編排場景,例如微服務API編排、膠水層API編排以及流式數據處理等低延遲和大負載業務場景。更多信息,請參見標準工作流和快速工作流。
工作流集成
云工作流實現了阿里云絕大部分產品的API集成。下面介紹一下兩種集成方式,普通集成和優化集成。
普通集成
普通集成是指允許云工作流直接調用云產品的OpenAPI服務接口,不對這些服務接口做任何包裝處理和實現優化,共計可使用多達上萬條API服務接口。更多信息,請參見普通集成。
優化集成
優化集成是指對部分高頻使用的云產品服務接口進行包裝和優化處理,簡化接口使用難度,方便用戶集成。對于部分云服務或者工具,不支持云工作流直接通過OpenAPI服務接口與其集成,利用云產品的SDK或公共客戶端進行優化集成,方便用戶在流程中使用這些云產品或工具提供的能力。更多信息,請參見集成簡介。
流程定義語言FDL(Flow Definition Language)
一種基于 JSON 的結構化語言,用于定義狀態機(一個狀態集合),可以執行工作(Task
狀態),確定哪些狀態轉換為下一個狀態,在出錯的情況下停止執行(Fail
狀態)等等。
作用域(Scope)
狀態間可以組合嵌套,如果一個狀態包含另一個狀態,則稱外層狀態為內部狀態的作用域(Scope)。更多信息,請參見狀態作用域。
狀態
狀態是狀態機中的一個關鍵元素,也是云工作流在執行過程中所處的特定階段或情況,它反映了工作流當前的進展和所需的操作。下面介紹八種不同類型的狀態。
任務(Task)
表示任務在云工作流執行過程中所處的具體階段。主要用于調用其他集成服務API來完成特定任務,利用任務類型狀態可以執行一個函數調用,調用阿里云服務API,也可以通過HTTP/HTTPS等通用協議發起第三方服務調用。更多信息,請參見任務(Task)。
傳遞(Pass)
一個特定的流程節點,將其輸入傳遞到其輸出,不執行任何工作。可當作空白節點或者作為數據預處理節點將輸入數據結構轉換成期望的輸出。更多信息,請參見傳遞(Pass)。
選擇(Choice)
一個特定的流程節點,讓流程根據條件執行不同的狀態。它包含多個條件選項(Choice)和一個默認選項(Default),每個條件選項帶有一個條件表達式(Condition)和跳轉指令(Next)。更多信息,請參見選擇(Choice)。
并行(Parallel)
一個特定的流程節點,用來并行執行多個狀態。它定義了多個分支(Branches),每個分支包含一系列狀態。更多信息,請參見并行(Parallel)。
迭代(Map)
遍歷輸入中的某個數組類型參數,對于數組中的每個元素,并行執行其處理器(Processor)狀態。更多信息,請參見迭代(Map)。
等待(Wait)
一個特定的流程節點,用于暫停流程執行。可以將執行流程暫停一段時間,然后再繼續執行。更多信息,請參見等待(Wait)。
成功(Succeed)
一個特定的流程節點,用于提前結束一系列狀態的執行。更多信息,請參見成功(Succeed)。
失敗(Fail)
一個特定的流程節點,用于處理異常情況。它提前結束一系列狀態的執行。更多信息,請參見失敗(Fail)。
數據傳遞
流程(Flow)的多個狀態(State)之間傳遞數據的過程。數據傳遞的基本概念包括:
流程數據:這包括流程的名稱、地域,以及組成流程的各個狀態的名稱等。
執行數據:執行的名稱、執行輸入,以及執行過程中當前狀態的輸入、輸出等信息。
更多信息,請參見數據傳遞。
輸入和輸出
執行時會接收 JSON 文本作為輸入,并將這些輸入數據傳遞給工作流中的第一個狀態。在每個狀態中,數據以 JSON 的形式接收,通常以 JSON 的形式作為輸出傳遞給下一個狀態。更多信息,請參見輸入和輸出。
執行輸入和輸出:執行的輸入輸出通常指的是流程執行上下文中的數據,包括所有狀態的輸入輸出數據。
狀態輸入和輸出:流程上下文中與該狀態直接相關的數據,如狀態的輸入參數和輸出結果。
內置函數
用于在流程定義語言中執行基本的數據處理操作,開發者通過直接調用內置函數,可以快速實現特定功能,減少編碼工作量,縮短開發周期,更快的部署和迭代工作流。更多信息,請參見內置函數。
錯誤處理
工作流執行過程中對可能出現的錯誤進行處理和管理的機制。工作流錯誤處理包含兩部分內容:錯誤重試(Retry)和錯誤捕獲(Catch)。
錯誤重試(Retry):當某個步驟或任務在執行過程中報告錯誤并且有一個
Retry
字段時,通過設定重試策略,系統會自動重新嘗試執行該步驟或任務,以期望通過幾次嘗試后成功完成任務。錯誤捕獲(Catch):如果某個步驟在多次重試后仍然失敗,工作流可以通過捕獲錯誤來執行特定的錯誤處理邏輯,如發送通知或執行回滾操作,確保系統的穩定性和數據的完整性。
通過上述兩種機制,開發者可以有效地管理和應對工作流中的各種錯誤情況,從而提升系統的健壯性和可靠性。更多信息,請參見錯誤處理。
云工作流集成模式
使用云工作流集成其他云服務,您可以使用以下三種集成模式:
請求響應(RequestComplete)
當您在任務類型的狀態中指定調用服務,默認集成模式為請求響應模式。更多信息,請參見請求響應(RequestComplete)。
等待系統回調(WaitForSystemCallback)
通過指定等待系統回調(WaitForSystemCallback)任務模式,可以等待任務執行完成后再進入下一個狀態。更多信息,請參見等待系統回調(WaitForSystemCallback)。
等待用戶自定義回調(WaitForCustomCallback)
又稱為攜帶任務令牌的回調,提供一種暫停工作流,并根據集成服務內部自定義邏輯控制工作流執行的方式。更多信息,請參見等待用戶自定義回調(WaitForCustomCallback)。