您可以通过事件规则过滤事件,将事件路由到钉钉。本文以自定义事件为例介绍将事件路由到钉钉的前提条件、操作步骤和结果验证。

前提条件

背景信息

钉钉机器人支持接收的消息类型和结果样式如下所示:
  • text消息text类型
  • link消息link
  • markdown消息markdown
  • 整体跳转actionCard类型整体跳转
  • 独立跳转actionCard类型独立跳转
  • feedCard类型feedcard

添加自定义事件源

  1. 登录事件总线EventBridge控制台
  2. 在左侧导航栏,选择事件驱动 > 事件源
  3. 在顶部菜单栏,选择地域。
  4. 事件源页面,单击自定义事件源页签,然后单击添加事件源
  5. 添加自定义事件源面板,输入名称和描述,选择事件提供方,选择自定义总线,然后单击确定
    您可以单击创建新的自定义总线,将自定义事件源关联到一个新的自定义总线。
    说明 支持新增自定义事件源的类型包括消息队列RocketMQ版消息队列RabbitMQ版消息服务MNS

步骤二:创建事件规则

注意 目标服务和事件规则必须处于同一地域。
  1. 登录事件总线EventBridge控制台
  2. 在左侧导航栏,选择事件驱动 > 事件规则
  3. 在顶部菜单栏,选择地域。
  4. 事件规则页面,选择自定义总线,然后单击创建规则
  5. 在配置向导页面,完成以下操作。
    1. 配置基本信息页面,在名称文本框输入规则名称,在描述文本框输入规则的描述,然后单击下一步
    2. 配置事件模式页面,事件源类型选择自定义事件源事件源选择步骤一创建的自定义事件源,在事件模式内容代码框输入事件模式,然后单击下一步

      如需了解更多信息,请参见事件模式

    3. 配置事件目标页面,配置以下事件目标参数,然后单击创建
      说明 1个事件规则最多可以添加5个目标。
      • 服务类型:单击钉钉
      • 地址:输入钉钉机器人的Webhook地址。
      • 密钥:输入钉钉机器人密钥。
      • 推送内容:默认为模板。通过自定义变量和模板,将事件按照模板的示例输出。

        钉钉机器人规定了其接收的消息类型和数据格式,以下为常用消息类型的变量和模板示例:

        • text类型

          变量示例:

          {
            "content": "$.data.content"
          }

          模板示例:

          {
              "msgtype":"text",
              "text":{
                  "content":"${content}@1760514XXXX"
              },
              "at":{
                  "atMobiles":[
                      "1760514XXXX",
                      "1898325XXXX"
                  ],
                  "isAtAll":false
              }
          }
          参数 类型 是否必选 说明
          msgtype String 消息类型。
          text Object text类型的事件内容。
          content String 消息内容。
          at Object at(@)参数内容。
          atMobiles Array 被at(@)的人的手机号码。
          说明 手机号码必须绑定钉钉账号。
          isAtAll Boolean 是否at(@)所有人。
          说明isAtAll设置为true,钉钉接收事件消息at所有人,此时content中at某个群成员会失效。
        • link类型

          变量示例:

          {
            "name": "$.data.name"
          }

          模板示例:

          {
              "msgtype":"link",
              "link":{
                  "text":"这个即将发布的新版本,创始人${name}称它为红树林。而在此之前,每当面临重大升级,产品经理们都会取一个应景的代号,这一次,为什么是红树林?",
                  "title":"时代的火车向前开",
                  "picUrl":"",
                  "messageUrl":"www.example.com"
              }
          }
          参数 类型 是否必选 说明
          msgtype String 消息类型。
          link Object link类型的事件内容。
          text String 消息内容。
          说明 如果消息内容太长,钉钉窗口中只会显示部分内容。
          title String 消息标题。
          picUrl String 图片URL。
          messageUrl String 消息URL。
        • markdown类型

          变量示例:

          {
              "time":"$.time",
              "content":"$.data.content"
          }

          模板示例:

          {
              "msgtype":"markdown",
              "markdown":{
                  "title":"杭州天气",
                  "text":"#### 杭州天气 @1760514XXXX \n> ${content}\n> ![screenshot](www.example.com/image_01.png)\n> ###### ${time}发布 [天气](www.example.com) \n"
              },
              "at":{
                  "atMobiles":[
                      "1760514XXXX"
                  ],
                  "isAtAll":false
              }
          }
          参数 类型 是否必选 说明
          msgtype String 消息类型。
          markdown Object markdown类型的事件内容。
          title String 消息标题。
          text String 消息内容。
          at Object at(@)参数内容。
          atMobiles Array 被at(@)的人的手机号码。
          isAtAll Boolean 是否at(@)所有人。
          说明isAtAll设置为true,钉钉接收事件消息at所有人,此时content中at某个群成员会失效。
        • 整体跳转actionCard类型

          变量示例:

          {
              "content":"$.data.content"
          }

          模板示例:

          {
              "msgtype":"actionCard",
              "actionCard":{
                  "title":"乔布斯20年前想打造一间苹果咖啡厅,而它正是Apple Store的前身",
                  "text":"![screenshot](www.example.com/image_02.png) \n ### ${content} \n Apple Store的设计正从原来满满的科技感走向生活化,而其生活化的走向其实可以追溯到20年前苹果一个建立咖啡馆的计划",
                  "btnOrientation":"0",
                  "singleTitle":"阅读全文",
                  "singleURL":"www.example.com"
              }
          }
          参数 类型 是否必选 说明
          msgtype String 消息类型。
          actionCard Object actionCard类型的事件内容。
          title String 消息预览框标题。
          text String 消息内容。
          btnOrientation String 按钮方向。

          取值说明如下:

          • 0:垂直排列。
          • 1:横向排列。
          singleTitle String 单个按钮的标题。
          singleURL String 单击singleTitle触发的URL。
        • 独立跳转actionCard类型

          变量示例:

          {
              "content":"$.data.content"
          }

          模板示例:

          {
              "msgtype":"actionCard",
              "actionCard":{
                  "title":"乔布斯20年前想打造一间苹果咖啡厅,而它正是Apple Store的前身",
                  "text":"![screenshot](www.example.com/image_03.png) \n ### ${content} \n Apple Store 的设计正从原来满满的科技感走向生活化,而其生活化的走向其实可以追溯到20年前苹果一个建立咖啡馆的计划",
                  "btnOrientation":"0",
                  "btns":[
                      {
                          "title":"内容不错",
                          "actionURL":"www.example.com"
                      },
                      {
                          "title":"不感兴趣",
                          "actionURL":"www.example.edu"
                      }
                  ]
              }
          }
          参数 类型 是否必选 说明
          msgtype String 消息类型。
          actionCard Object actionCard类型的事件内容。
          title String 消息预览框标题。
          text String 消息内容。
          btnOrientation String 按钮方向。

          取值说明如下:

          • 0:垂直排列。
          • 1:横向排列。
          btns Array 按钮。
          title String 按钮的标题。
          actionURL String 单击按钮触发的URL。
        • feedCard类型

          变量示例:

          {
              "content":"$.data.content"
          }

          模板示例:

          {
              "msgtype":"feedCard",
              "feedCard":{
                  "links":[
                      {
                          "title":"${content}",
                          "messageURL":"www.example.com",
                          "picURL":"img.example.com/image_04.png"
                      },
                      {
                          "title":"时代的火车向前开",
                          "messageURL":"www.example.edu",
                          "picURL":"img.example.edu/image_05.png"
                      }
                  ]
              }
          }
          参数 类型 是否必选 说明
          msgtype String 消息类型。
          feedCard Object feedCard类型的事件内容。
          links Array feedCard涉及的链接。
          title String 消息标题。
          messageURL String 消息URL。
          picURL String 图片URL。

        更多信息,请参见事件内容转换

步骤三:发布事件

  1. 登录事件总线EventBridge控制台
  2. 在左侧导航栏,选择事件驱动 > 事件总线
  3. 在顶部菜单栏,选择地域。
  4. 自定义事件总线区域,找到目标总线,在其右侧操作列单击发布事件
    说明 仅自定义总线支持通过控制台发布事件。
  5. 发布事件至自定义总线面板,从自定义事件源下拉列表中,选择自定义事件源,在事件体代码框输入事件内容,然后单击确定
    事件包含的参数规范,请参见事件概述

结果验证

您可以在钉钉客户端查看钉钉机器人推送的消息。