赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 分布式云容器平台ACK One
  4. 操作指南
  5. 分布式工作流Argo集群
  6. 管理工作流
  7. 使用钉钉机器人发送事件通知

使用钉钉机器人发送事件通知

  • 管理工作流
  • 发布于 2025-04-18
  • 0 次阅读
文档编辑
文档编辑

运行工作流时,您可能需要在工作流运行结束或它的某个步骤完成时通知外部系统。例如邮件通知、即时消息(例如钉钉)、消息总线(例如Kafka)。本文以发送钉钉消息为例介绍如何在工作流运行中发送消息通知。

前提条件

已创建分布式工作流Argo集群,且工作流集群的VPC具有公网访问能力。

实现原理

  1. 外部系统一般通过暴露HTTP Webhook接口的方式,接受消息输入。

  2. Argo工作流支持Exit Handler机制。您可以在工作流的步骤中定义exit-handler,也可以在工作流本身定义exit-handler。

  3. Exit Handler以容器的方式运行。您可以在容器中运行curl命令向外部系统发送HTTP消息,从而实现事件通知。

步骤一:创建钉钉机器人

创建钉钉机器人后会生成专属的Webhook地址,通过Webhook地址可以关联到其他服务接收通知,例如Argo工作流。

  1. 打开需要接收事件通知的钉钉群。

  2. 进入机器人设置页面。

    1. 单击钉钉群右上角的群设置图标图标.png,然后在群设置面板,单击智能群助手。

    2. 在智能群助手面板,单击添加机器人,然后在群机器人对话框中的添加机器人区域,单击添加图标图标2.png。

    3. 在选择要添加的机器人区域,单击自定义,然后在机器人详情对话框,单击添加。按页面提示完成机器人设置。您必须至少选择一种安全设置,建议选择加签或IP地址(段)中的至少一种,以保证安全性。

      重要

      在工作流中通过钉钉发送消息,要求工作流集群的VPC网络具有公网访问能力。您可以为工作流集群VPC配置公网NAT网关,同时将公网NAT网关的EIP地址配置到机器人的IP地址(段)中,以确保安全性。

  3. 设置完成后,复制并保存Webhook地址。image.png

步骤二:在工作流中使用钉钉机器人

使用以下YAML示例代码,创建工作流,并在工作流中使用钉钉机器人。关于创建工作流的具体操作,请参见创建工作流。

apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
  generateName: notification-demo-
spec:
  entrypoint: say-hello
  onExit: exit-handler   # 工作流运行完成后,运行exit-handler。
  templates:
  - name: say-hello
    container:
      image: alpine:latest
      command: [sh, -c]
      args: ["echo hello"]

  - name: exit-handler
    container:
      image: curlimages/curl
      command: [sh, -c]
      # 运行curl发送钉钉消息,消息类型为链接类型,可以嵌入Argo工作流控制台链接,快速查看工作流详情。
      # 可以引用变量包括:{{workflow.name}} {{workflow.status}} {{workflow.failures}} {{workflow.workflow.duration}}。
      args: [
        "curl  -H 'Content-Type: application/json' -d '{
          \"msgtype\": \"link\",
          \"link\": {
            \"title\":\"Argo workflow notification\",
            \"text\":\"WF {{workflow.name}} {{workflow.status}}\",
            \"messageUrl\":\"https://argo.xxx.cn-zhangjiakou.alicontainer.com:2746/workflows/default/{{workflow.name}}?tab=workflow\"
          }
        }'
        https://oapi.dingtalk.com/robot/send?access_token=b97fb519129fdfce879baa4e3b905b14e6a64e8994f0ea3b11dda****"  #Webhook地址,此处替换为您钉钉群的Webhook地址。
      ]

发送的钉钉消息示例如下所示。

消息.png

相关文档

关于钉钉自定义机器人接入的具体操作,请参见自定义机器人接入。

相关文章

创建工作流 2025-04-18 18:09

工作流集群基于开源Argo Workflow项目构建,适用于CI/CD流水线、数据处理、机器学习和仿真计算等。本文通过示例介绍如何使用Argo CLI创建工作流,并设置CPU和Memory资源。

使用指定ECS规格运行工作流 2025-04-18 18:09

在某些场景下,业务存在着特殊的规格需求,例如GPU、增强的网络能力、高主频、本地盘、AMD机型等。工作流集群支持通过指定的ECS规格运行工作流。本文介绍如何使用指定ECS规格运行工作流。 索引

使用存储卷 2025-04-18 18:09

本文介绍如何在工作流集群中挂载使用存储卷。 使用说明 在工作流集群中支持使用OSS存储卷、NAS存储卷

持久化工作流 2025-04-18 18:09

工作流的相关资源在工作流集群中会被定期清理,如果您想对工作流的运行过程进行分析和回溯,可以通过配置持久化策略将工作流持久化存储到数据库中。这样即使工作流被删除或者工作流运行的Pod被删除,您也可以查看到工作流的日志。本文以阿里云RDS MySQL数据库为例,为您介绍如何配置工作流持久化到数据库的策略

配置Artifacts 2025-04-18 18:09

通过配置使用工作流集群Artifacts,可以在工作流各个步骤之间传递参数,一个步骤的输出可以作为另一个步骤的输入,从而完成复杂工作流步骤的编排。本文介绍如何使用阿里云OSS作为Artifacts的存储,在工作流步骤间传递参数。

镜像 2025-04-18 18:09

在拉取阿里云镜像服务ACR中的镜像时,您可以通过配置免密简化配置,加速镜像拉取。本文介绍如何在工作流集群中使用镜像缓存加速创建工作流Pod。

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号