流程编排作为云原生应用开发平台 CAP的一项核心能力,为开发者提供了一种图形化、低代码的方式来设计、执行和管理复杂的业务流程,极大地提升了开发效率与应用灵活性。本文将说明流程编排在云原生应用开发平台 CAP中的作用,并提供一份简明的操作手册,帮助开发者快速上手。
功能优势
简化复杂业务逻辑:通过拖拽式界面,流程编排允许非技术背景的用户也能轻松构建涉及多个系统交互的复杂业务流程,无需编写大量代码,降低了开发门槛。
加速应用开发周期:预置的组件和服务让开发者能够快速组装流程,实现快速原型设计和迭代,显著缩短从概念到部署的时间,通过对原型设计不断优化最终确定有效合理的业务流程。
稳定可靠的集成性:流程编排引擎提供了统一的底层能力支持可靠高效集成,在实现上提供可靠的质量保障,能够快速集成第三方服务和自定义API,将业务依赖API快速加入流程编排中,实现API的快速组装。
提高流程灵活性与可维护性:流程编排支持动态调整流程结构,便于后期根据业务需求变化进行快速调整和优化,增强应用的适应性,同时直观的流程设计和提升业务流程的可维护性,降低业务流程安全,合规等审计风险。
促进团队协作:可视化的工作流设计促进了团队成员之间的沟通理解,不同角色的人员可以更容易地参与到流程设计和优化工作中。
标准化与自动化:统一的流程设计标准和自动化执行机制确保了业务流程的一致性和高效执行,减少人为错误,提升整体运营效率。
步骤一:控制台入口
登录云原生应用开发平台 CAP控制台,单击目标项目,在项目详情页面,单击左上角的新建服务,选择并单击流程编排类型,跳转至创建服务页面。
步骤二:选择流程模式
在创建流程编排服务页面,选择地域和流程模式,然后单击保存配置并进入 CloudFlow Studio。
关于支持的标准模式和快速模式的差异介绍如下。
执行指标项 | 标准模式 | 快速模式 |
最长执行时长 | 1 年 | 5 分钟 |
流程启动速率 | 100 QPS | 默认为1000 QPS,如您有提升需求,请请提交工单申请。 |
并行执行数 | 10000 | 默认为10000,如您有提升需求,请请提交工单申请。 |
计费 | 按照步骤转换数付费。 | 公测期免费。 |
执行历史及可观测性 | 支持查询、列举等API操作,系统记录所有执行信息。 | 计划支持SLS查询,当前公测期仅支持API查询。 |
执行语义 | 异步执行,遵循至少执行一次(At least once)语义,数据不会丢失,但是在特殊条件下可能会导致数据被重复处理。 | 同步执行,系统错误会默认重试,可根据需求在客户端重试。 |
服务集成 | 支持所有集成方式。具体信息,请参见集成简介。 | 支持所有集成方式。具体信息,请参见集成简介。 |
集成模式 | 支持如下三种集成模式。更多信息,请参见集成模式。
| 仅支持RequestComplete模式。 |
步骤三:设计流程
在CloudFlow Studio界面设计流程。CloudFlow Studio编排界面的详细介绍,请参见界面概览。
在左侧导航栏选择并拖拽一个状态节点(API)或流程节点至画布,如图中InvokeFunction API节点。
云工作流(CloudFlow)支持的流程节点类型,即系统控制节点,用于实现基本的流程编排结构控制。
节点类型
类型说明
通过传递(Pass)状态做占位符规划流程基本结构。
通过任务(Task)状态添加工作流提供的集成服务,实现业务集成调用。
通过等待(Wait)状态暂停流程的执行,支持设置等待时间。
通过选择(Choice)状态定义不同执行路径。
通过并行(Parallel)状态并行执行多个分支,这些分支共享同一份输入。
通过迭代(Map)状态并行处理数组元素,暂时不支持基本类型数组。
通过成功(Succeed)状态提前终止流程正常结束。
通过失败(Fail)状态提前终止流程,支持返回自定义错误信息。
云工作流(CloudFlow)支持的状态节点类型,即支持集成的服务类型,包含大量的系统集成和用户自定义扩展集成。
集成服务类型
集成说明
函数计算
调用函数计算服务中的指定函数。
云工作流
调用执行云工作流服务中的指定流程。
事件总线
向事件总线(EventBridge)指定总线投递事件。
对象存储
向对象存储指定Bucket中写入存储对象。
表格存储
将流程运行中的各种数据持久化到Tablestore的表中。
轻量消息队列(原 MNS)
向消息服务指定的Topic或Queue发送消息。
短信服务
调用短信服务向指定联系人号码发送短信消息。
通义大模型
集成阿里云通义大模型服务。
HTTP自定义集成
向指定URL发送HTTP请求。
配置节点参数。单击画布上的组件,右侧参数配置区会显示该组件的配置选项,根据需求填写参数或选择设置。
流程编排中最重要的是,如何在多个节点间进行数据的传递,对于具体的流程节点而言,都会存在一个输入和一个输出。
节点输入:流程编排过程中,可以通过系统表示式
$Context.Current.Input
访问当前节点的输入,快捷表达式为$Input
;节点输出:流程编排过程中,可以通过系统表示式
$Context.Current.Output
访问当前状态的输出,快捷表达式为$Output
。当然并不是在所有的地方都能使用$Output
,只有当该节点产生了输出,才能通过$Output
访问节点输出,仅仅在OutputConstructor作用域中可以使用$Output
;
通常,在流程编排过程中,都需要针对不同的集成调用进行参数适配,为了实现节点数据构造能力,每一个节点都提供了数据输入构造和输出构造的能力,需要用户通过输入配置(InputConstructor)和输出配置(OutputConstructor)进行数据传递的灵活定制,满足流程编排集成需求。在参数构造中,支持常量和表达式;如果需要使用表达式,那么需要在参数的左值末尾添加
.$
,这种情况下,流程引擎会对右侧出现的表达式变量进行渲染。
步骤四:测试与调试
使用平台内置的调试功能,输入模拟数据,运行流程以检查逻辑是否正确。
查看流程执行日志,定位并修正问题。
步骤五:发布与监控
完成测试后,单击保存并部署正式发布流程。
您可以在监控页签,跟踪流程实例的执行状态,收集性能指标,及时发现并解决运行时问题。
查看具体执行情况及事件记录。
后续操作
您可以根据实际运行情况和业务反馈,不断调整和优化流程设计。
关于执行流程的方式介绍,请参见执行流程。