流程定义介绍 本文介绍天翼云云工作流的流程定义语言。 通过基础知识和相关使用示例, 可达到基本了解构建和管理业务流程的过程。 基本概述 流程(workflow)基本架构 状态(state)通用结构 transtion字段 stateDataFilter字段 相关文档 基本概述 天翼云云工作流流程定义基于CNCF ServerlessWorkflow Specification 0.8版本进行适配优化的。其主要特征是一种基于YAML的声明式工作流规范,用于定义由事件驱动的无服务器应用编排逻辑。它通过状态(State)组织任务流,支持顺序/并行执行(Parallel状态)、条件分支(Switch状态)、暂停(Sleep状态)等控制逻辑,并能通过错误捕获(Catch策略)和重试机制(Retry策略)实现容错处理。其核心特点包括与云服务事件源的无缝集成、状态间数据传递(Data Input/Output)等。所有状态(State)共享基础属性:名称(name)、类型(type)、输入输出(Data Input/output)。通过组合这些状态类型,可以构建出复杂的业务流程。 流程通常包含若干状态(State),这些状态可以是简单的执行类状态,例如任务(Operation)、暂停(Sleep)、传递(Noop)和失败(Fail)等;也可以是复杂的流程控制类状态,例如选择(Switch)、并行(Parallel)和迭代(Foreach)。其作用列举如下: 操作(Operation) :主要是用于调用集成服务API来完成特定任务, 利用任务类型状态可以执行一个函数调用,调用天翼云云服务API,也可以通过HTTP/HTTPS等通用协议发起第三方服务调用。 传递(Noop) :是一种特殊的Operation类型状态, 它主要利用场景是用于在流程编排过程中的一种占位符作用的存在。可当作空白节点或者作为数据预处理节点将输入数据结构转换成期望的输出。 失败(Fail):是一种特殊的Operation类型状态。Fail状态会返回失败结果,可用于提前结束工作流执行并将执行结果置为失败。 暂停(Sleep):用于暂停工作流执行, 可将工作流按照指定时长等待或者暂停至特定时间点后继续执行。 条件分支(Switch):根据条件表达式选择执行路径,类似编程中的switchcase,灵活控制流程方向。 并行(Parallel):并行执行多个分支,合并各分支结果,适用于需要同时处理多项任务的场景。 迭代(Foreach):并行遍历输入数组,对每个元素执行处理器逻辑,类似foreach循环,高效处理批量数据。 状态(State)是工作流的基本执行单元,每个状态代表流程中的一个步骤,包含输入处理、业务逻辑执行和输出传递功能。状态之间通过转换(transition)形成有向关系,共同构成完整的工作流。