云工作流(CloudFlow)是一个用来协调多个分布式任务执行的全托管云服务。随着云工作流新版本的发布,为您提供更加稳定可靠的新版本升级说明。本文介绍云工作流新旧版本的差异及兼容性说明。
云工作流新版本优势
与云工作流旧版本相比,新版本具有如下优势:
完全遵循State Machine的工作流设计规范,提供更通用的工作流编排逻辑能力。
支持近乎全部云产品及场景的编排组合方式,提供更丰富的生态集成方案。
全新Spec YAML语法升级,显著降低对Spec的理解成本。在抽象上对齐行业先进水平,提供编排、执行单元、数据操作符等更多扩展语法。
更便捷的工作流开发体验,提供全新的Studio拖拽形式编辑,提供在线调试及YAML预览,帮助用户快速上手工作流开发。
提供全新Express模式,提升大流量和高并发场景的使用体验,降低整体工作流调用延迟。
API/SDK兼容性说明
云工作流新版本完全兼容旧版API/SDK。例如,您创建了新版本工作流,客户端使用的是最新版SDK,则新版功能全部支持;若您的客户端使用老版本SDK,则无法使用新版Express等新版对应的产品能力。
更多参数,请参见OpenAPI门户网站。
功能差异说明
新版本功能差异项 | 涉及接口 | 说明 |
新增Express执行模式 | 新增Express执行模式,服务在线业务API编排。 | |
新增StartSyncExecution | 新增API StartSyncExecution,同步调用Express执行模式的工作流。 | |
新版Spec定义 | 支持全新YAML语义创建与执行工作流。 | |
新增IO构造能力 | - | 借助InputConstructor和OutputConstructor及内建函数可以灵活构造数据。具体参考文档如下: |
新版执行事件定义 | 支持全新事件类型定义。取值说明如下: | |
新增Workflow Studio能力 | - | 支持图形化拖拽生成工作流,详情请参见界面概览。 |
新增Workflow在线调试能力 | - | 支持使用控制台预调试工作流内容,详情请参见调试流程。 |
新增部分产品优化集成能力 | - | 支持云工作流与对象存储、事件总线、短信服务 SMS(Short Message Service)、HSF以及HTTP的优化集成能力。 |
新增阿里云云产品API集成 | - | 支持云工作流直接调用云产品的OpenAPI服务接口,不对这些服务接口做任何包装处理和实现优化,共计可使用多达上万条API服务接口。 |
新增内置函数 | - | 云工作流的流程定义语言提供部分内置函数,您可以使用内置函数执行基本的数据处理操作。更多信息,请参见内置函数。 |
云工作流旧版迁移说明
云工作流新版本与旧版本的主要差异在于YAML定义语法不同,可新创建新版工作流的YAML替代旧版工作流的YAML,完成迁移。
新旧版本YAML差异对比
旧版 | 新版 |
|
|
旧版
version
对应新版SpecVersion
,version
支持v1和 v1beta1两个版本,SpecVersion
仅支持v1版本。新版
Version
是用户管理自己流程时,自定义的版本信息。
迁移流程
下载转换包。云工作流目前提供适用于Linux系统和macOS系统的转换包。
Linux系统:转换工具-linux-amd64
macOS系统:转换工具-macos-aarch64
执行以下命令,转换YAML文件。
# 使用Mac M系列芯片系统转换旧版本定义到新版 ./转换工具-macos-aarch64 --action=v2tov3 -f source.yaml # 在Linux系统上转换旧版本定义到新版 ./转换工具-linux-amd64 --action=v2tov3 -f source.yaml
说明执行完成后,在命令行中即可打印转换后的YAML文件。部分标记为<TODO>的表达式内容可能需要微调。
StepFunction迁移说明
StepFunction定义与云工作流转换定义对比
StepFunction | 云工作流 |
|
|
迁移流程
下载转换包。云工作流目前提供适用于Linux系统和macOS系统的转换包。
Linux系统:转换工具-linux-amd64
macOS系统:转换工具-macos-aarch64
执行以下命令,转换YAML文件。
# 使用Mac M系列芯片系统转换stepfunction定义到新版 ./转换工具-macos-aarch64 --action=awstov3 -f source.json # 在Linux系统上转换stepfunction定义到新版 ./转换工具-linux-amd64 --action=awstov3 -f source.json
说明执行完成后,在命令行中即可打印转换后的YAML文件。部分标记为<TODO>的表达式内容可能需要微调。