工作流集群支持事件驱动功能,可通过监控事件触发工作流自动运行,您可以使用该功能构建事件驱动的自动化系统。事件驱动支持各种事件源,包括阿里云对象存储OSS、阿里云轻量消息队列(原 MNS)、Git代码仓库,EventBrige等。
背景信息
事件驱动功能基于开源Argo Event项目构建,完全符合开源事件驱动标准,方便您将开源事件驱动迁移到工作流集群。
重点模块说明:
Event Source
Argo Event自定义资源,针对不同的事件源创建不同的Event Source资源,并触发创建Event Source Pod获取事件。
当前工作流集群支持Git、阿里云对象存储OSS、阿里云轻量消息队列(原 MNS)作为事件源,如有其他需求,请提交工单申请。
Event Bus
Event Source获取事件后,会缓存到Event Bus中。Event Bus支持以下两种类型:
NATS:基于开源NATS构建的使用ECI运行的本地消息系统。
轻量消息队列(原 MNS):通过使用云上轻量消息队列(原 MNS)缓存事件,如果您已经使用轻量消息队列(原 MNS),可以创建一个轻量消息队列(原 MNS)作为Event Bus。
Event Sensor
从Event Bus中读取事件,按照定义的规则过滤事件,并触发工作流的运行。您可以参考开源Argo Event设置Sensor Trigger条件、转换、过滤器等。
Event Sensor仅支持触发创建Argo工作流,如果有其他需求,请提交工单申请。
计费说明
以下资源创建会涉及ECI实例计费,具体计费信息,请参见ECI计费概述。
创建Event Source后,会触发创建一个Event Source Pod,并以ECI实例运行。
使用NATS方式创建Event Bus会创建一个Event Bus Pod,并以ECI实例运行。
创建Event Sensor后,会创建一个Event Sensor Pod,并以ECI实例运行。
前提条件
操作步骤
获取工作流集群的ID。
通过命令行方式获取。
aliyun adcp DescribeHubClusters --Profile=XFlow
通过控制台方式获取。
登录工作流集群控制台,在工作流集群页面的基础信息页签中获取集群ID。
执行以下命令开启事件驱动功能。
aliyun adcp UpdateHubClusterFeature --ArgoEventsEnabled true --ClusterId ***
重要请将ClusterId后的***替换为您在步骤1中实际获取的工作流集群ID。
等待一段时间后,执行以下命令查看集群的详细信息。
aliyun adcp DescribeHubClusterDetails --ClusterId ***
在返回结果中查看Condition类型为
EnabledArgoEvents
的状态为True
,表示事件驱动功能开启成功。预期结果如下:
{ "Message": "", "Reason": "", "Status": "True", "Type": "EnabledArgoEvents" }
后续操作
开启事件驱动工作流功能后,您可以使用OSS事件触发工作流,或者通过轻量消息队列(原 MNS)触发工作流。具体操作如下: