开启事件驱动触发工作流自动运行

工作流集群支持事件驱动功能,可通过监控事件触发工作流自动运行,您可以使用该功能构建事件驱动的自动化系统。事件驱动支持各种事件源,包括阿里云对象存储OSS、阿里云轻量消息队列(原 MNS)、Git代码仓库,EventBrige等。

背景信息

事件驱动功能基于开源Argo Event项目构建,完全符合开源事件驱动标准,方便您将开源事件驱动迁移到工作流集群

image

重点模块说明:

  • 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实例运行。

前提条件

操作步骤

  1. 获取工作流集群的ID。

    • 通过命令行方式获取。

    aliyun adcp DescribeHubClusters --Profile=XFlow
    • 通过控制台方式获取。

      登录工作流集群控制台,在工作流集群页面的基础信息页签中获取集群ID。

  2. 执行以下命令开启事件驱动功能。

    aliyun adcp UpdateHubClusterFeature --ArgoEventsEnabled true --ClusterId ***
    重要

    请将ClusterId后的***替换为您在步骤1中实际获取的工作流集群ID。

  3. 等待一段时间后,执行以下命令查看集群的详细信息。

    aliyun adcp DescribeHubClusterDetails --ClusterId ***
  4. 在返回结果中查看Condition类型为EnabledArgoEvents的状态为True,表示事件驱动功能开启成功。

    预期结果如下:

     {
                                    "Message": "",
                                    "Reason": "",
                                    "Status": "True",
                                    "Type": "EnabledArgoEvents"
                            }

后续操作

开启事件驱动工作流功能后,您可以使用OSS事件触发工作流,或者通过轻量消息队列(原 MNS)触发工作流。具体操作如下: