工作流集群支持事件驱动功能,可通过监控事件触发工作流自动运行,您可以使用该功能构建事件驱动的自动化系统。事件驱动支持各种事件源,包括阿里云对象存储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)触发工作流。具体操作如下: