作者:尘央

布景

“以事情集成阿里云,从 EventBridge 开端”是 EventBridge 这款云产品的愿景和任务。作为一款无服务器事情总线服务,EventBridge 从发布以来,以标准化的 CloudEvents 1.0 协议衔接了大量云产品和云事情,用户能够经过 EventBridge 轻松拜访云上事情,驱动云上生态。

截止目前为止,EventBridge 已集成 85+ 阿里云产品,供给了 941+ 事情类型,集成 50+ SaaS产品,经过事情规矩可轻松驱动 10+ 阿里系一方云产品的计算力。

云钉一体:EventBridge 联合钉钉连接器打通云钉生态

另一方面,钉钉生态空前繁荣,具有 4000+ 家的生态同伴,包括 ISV 生态同伴、硬件生态同伴、服务商、咨询生态和交付生态同伴等。经过事情将钉钉生态与阿里云生态联通,是饯别「云钉一体」战略的重要途径,EventBridge 作为阿里云标准化的事情枢纽,其重要性不言而喻。

今天,EventBridge 联合钉钉衔接器,打通了钉钉生态和阿里云生态,钉钉的生态同伴能够经过通道的才能驱动阿里云上海量的计算力。

关键技术

EventBridge 集成阿里云和钉钉生态的计划,中心才能由钉钉衔接器和 EventBridge 的 HTTP 事情源才能供给。

钉钉衔接器

钉钉衔接平台经过可视化拖拽装备、一键订阅等零代码办法,简略高效的完结钉钉、企业内部体系、闻名厂商体系(金蝶、用友、SAP 等)、钉钉第三方企业使用之间数据互通和集成。

云钉一体:EventBridge 联合钉钉连接器打通云钉生态

近期,钉钉衔接器在「衔接流」中发布了「HTTP Webhook」的执行动作才能,支撑将钉钉生态敞开给外部生态,EventBridge 正是经过该才能将钉钉生态接入到阿里云生态。

云钉一体:EventBridge 联合钉钉连接器打通云钉生态

EventBridge HTTP 事情源

事情源是事情驱动的基石,怎么获取更多事情源也是 EventBridge 一直在探究和测验的方向。针对商场上其他云厂商和垂直领域的 Saas 服务,EventBridge 发布了 HTTP 事情源才能,供给简略且易于集成的三方事情推送 ,协助客户愈加高效、便捷地完结事务上云。

云钉一体:EventBridge 联合钉钉连接器打通云钉生态

具体而言,HTTP 事情源是 EventBridge 支撑的事情源的一种,它以 Webhook 形式暴露了发布事情的 HTTP 恳求地址,用户能够在有 URL 回调的场景装备 HTTP 事情源,或许直接使用最简略的 HTTP 客户端来完结事情的发布。HTTP 事情源供给了支撑 HTTP 与 HTTPS,公网与阿里云 VPC 等不同恳求办法、不同网络环境的 Webhook URL,便于用户将其集成到各类使用中。接入时无需使用客户端,仅需保证使用能够拜访到对应 Webhook URL 即可,这使得接入进程变得简略而高效。

在将 HTTP 恳求转换为 CloudEvent 的时候,EventBridge 会将恳求的头部和音讯体部分置于 CloudEvent 字段中,其余字段会根据用户 EventBridge 资源属性以及体系默认规矩进行填充。用户能够在事情规矩中,对所需的内容进行过滤、提取,终究依照模板拼装成所需的音讯内容投递给事情方针。

云钉一体:EventBridge 联合钉钉连接器打通云钉生态

在安全方面,HTTP 事情源不需求用户进行复杂的签名鉴权,支撑 3 种类型开箱即用的安全设置,分别是恳求办法、源 IP 以及恳求来历域名。

  • 恳求办法:用户能够装备当前恳求此事情源时合法的 HTTP 恳求办法,假如办法类型不满足装备规矩,恳求将被过滤,不会投递到事情总线。
  • 源 IP:用户能够设置答应拜访此事情源时合法的源 IP(支撑 IP 段和 IP),当恳求源 IP 不在设置的范围内时,恳求将被过滤,不会投递到事情总线。
  • 恳求来历域名:即 HTTP 恳求的 referer 字段,当恳求的 referer 与用户装备不相符时,恳求被过滤,不会投递到事情总线。

使用场景

钉钉衔接器商场有数百款衔接器,包括官方衔接器和第三方生态衔接器。

  • 官方衔接器,来历主要是钉钉官方的使用,比方视频会议、日程、通讯录、批阅流、钉盘、宜搭等,企业和 SaaS 厂商能够充分使用这些官方使用的事情构建企业级的使用体系,也能够将钉钉的官方数据流与其他体系做深度集成。

  • 第三方衔接器,来历主要是钉钉的生态合作同伴,比方金蝶、行翼云、集简云、用友、易快报、销帮帮等。SaaS 厂商能够经过敞开衔接器来敞开数据,与其它使用互联互通。

云钉一体:EventBridge 联合钉钉连接器打通云钉生态

如上图所示,凭借钉钉衔接器,能够将钉钉官方事情源和钉钉 SaaS 事情源衔接到阿里云 EventBridge,从而能驱动云上的弹性资源。SaaS 厂商能够凭借 EventBridge 衔接的才能快速构建云原生的 SaaS 使用,凭借云的弹性才能,采用云原生最新的技术栈,快速高效地开发 SaaS 使用,一起使用 EventBridge 获取钉钉和其它 SaaS 使用的数据源,轻松进行事务创新。

当钉钉生态和 EventBridge 联通后,能发生哪些使用场景呢?

  • 剖析场景:企业凭借 EventBridge 事情剖析才能,对钉钉官方事情进行剖析,快速洞悉企业运转数据。比方批阅效率,职工变更趋势、会议效率等。

  • 告诉场景:钉钉衔接器 + EventBridge 可覆盖绝大多数音讯告诉场景,协助企业用户快速感知 批阅,职工变化,会议室信息等一些列企业根底支撑体系。

  • 集成场景:基于阿里云根底建设,可快速提高钉钉生态和企业内部数据的互通。例如当公司需求对钉钉和企业内部 IT 体系进行数据打通时,EventBridge 解决计划能够毫不费力地将建立在阿里云体系的 IT 体系连通起来,比方函数计算,云数据库,音讯行列等衔接扩展阿里云生态。

  • EDA 场景:使用 EventBridge 快速构建 EDA 驱动的自动化事务流程。例如在新职工入职时,获取职工变化信息。并会集推送到邮箱体系,事务支撑体系(DB),CRM 体系等。对企业新职工权限账户进行一站式授权,较少重复机械的事务批阅流程。

最佳实践:新增职工 0 代码入库

本章节介绍使用钉钉衔接器和 EventBridge 的最佳实践,经过一个例子展示怎么 0 代码将钉钉的一个新职工入职记载录入到自定义的数据库傍边,企业能够根据该数据库搭建各类职工办理体系。

计划简介

整个计划涉及到钉钉、钉钉衔接器、EventBridge、阿里云数据库等产品,整个链路如下图所示:

云钉一体:EventBridge 联合钉钉连接器打通云钉生态

前置条件:

  • 具有一个钉钉账号,并创立一个团队成为办理员,并能登陆钉钉敞开平台。
  • 具有一个阿里云账号,并开通 EventBridge 和阿里云数据库。

实践过程

整个实践进程分为以下几个过程。

1)创立事情总线和 HTTP 事情源

首要登陆 EventBridge 控制台,创立一个事情总线和 HTTP 事情源,如下图所示,能够先越过规矩和方针的创立。

云钉一体:EventBridge 联合钉钉连接器打通云钉生态

创立完结后,进入事情总线的概况列表,获取 HTTP 事情源的公网「Webhook 地址」,如下图所示:

云钉一体:EventBridge 联合钉钉连接器打通云钉生态

2)创立钉钉衔接流

登陆钉钉敞开平台,进入衔接平台,在「我的衔接」下创立衔接流,在创立界面,选择触发器为「官方-通讯录-通讯录用户增加」。

云钉一体:EventBridge 联合钉钉连接器打通云钉生态

衔接流创立完结后,进入编辑页面,增加一个「HTTP Webhook」的节点,在「恳求地址」一栏填入上个过程获取到的「HTTP 事情源」地址。

云钉一体:EventBridge 联合钉钉连接器打通云钉生态

3)钉钉触发新增职工事情

翻开钉钉,进入团队,约请另一个账号加入团队,然后进入事情总线的「事情追寻」页面,能够发现该职工新增事情已经投递到了事情总线之上。

云钉一体:EventBridge 联合钉钉连接器打通云钉生态

该事情被转换成了一个「CloudEvents」格式,其「$.data.body」为事情的概况,包括 dingId, userId, department 等字段。

{
  "datacontenttype": "application/json",
  "aliyunaccountid": "11*****48",
  "data": {
    "headers": {
    },
    "path": "/webhook/putEvents",
    "body": {
      "syncAction": "user_add_org",
      "orderInDepts": "{1:17626***32512}",
      "dingId": "$:***:$5RU***QhP/pK**+4A==",
      "active": true,
      "avatar": "",
      "isAdmin": false,
      "userId": "1411****46379",
      "isHide": false,
      "isLeaderInDepts": "{1:false}",
      "isBoss": false,
      "isSenior": false,
      "name": "小明",
      "department": [
        1
      ]
    },
    "httpMethod": "POST",
    "queryString": {}
  },
  "subject": "acs:eventbridge:cn-hangzhou:**:eventbus/**/eventsource/my.dingtalk",
  "aliyunoriginalaccountid": "118**48",
  "source": "my.dingtalk",
  "type": "eventbridge:Events:HTTPEvent",
  "aliyunpublishtime": "2022-05-13T07:28:29.505Z",
  "specversion": "1.0",
  "aliyuneventbusname": "chenyangbus",
  "id": "7059131c-**-**-b232-c4c3592120ae",
  "time": "2022-05-13T15:28:29.504+08:00",
  "aliyunregionid": "cn-hangzhou",
  "aliyunpublishaddr": "*.*.61.88"
}

4)数据库创立职工表

经过 RDS 控制台购买一个实例,并创立好数据库,然后根据上述新增职工事情的格式,提取部分字段对数据库进行建表。

CREATE TABLE `user_info` (
  `dingId` varchar(256) NULL,
  `active` varchar(256) NULL,
  `isAdmin` varchar(256) NULL,
  `userId` varchar(256) NULL,
  `name` varchar(256) NULL
) ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8;

5)创立事情规矩

数据库准备好后,返回 EventBridge 控制台,为第一步创立的事情总线创立事情规矩,对「新增职工事情」进行转换并投递至数据库傍边。

首要创立规矩,过滤第一步创立的 HTTP 事情源。

云钉一体:EventBridge 联合钉钉连接器打通云钉生态

然后选择 RDS 方针,做好参数映射。

云钉一体:EventBridge 联合钉钉连接器打通云钉生态

6)触发事情入库

第三步触发事情时,因未装备规矩和方针,事情没有被消费,故需求经过钉钉重新触发一次事情,然后从 EventBridge 控制台调查推送轨迹。

云钉一体:EventBridge 联合钉钉连接器打通云钉生态

从轨迹中能够看出推送成功,然后经过 RDS 控制台能够查询到该条记载。

云钉一体:EventBridge 联合钉钉连接器打通云钉生态

至此,一个钉钉团队新职工入职的记载经过 0 代码的办法入库到企业数据库傍边,能够十分低的成本开发企业级办理使用。

参考链接:

[1] 阿里云 EventBridge 事情驱动架构实践

[2] 数据库使用集成

[3]EDA 事情驱动架构与 EventBridge 二三事

[4]云事情驱动引擎EventBridge

[5]“音讯驱动、事情驱动、流 ”根底概念解析

了解更多 EventBridge 相关信息,扫描下方二维码加入钉钉群~

云钉一体:EventBridge 联合钉钉连接器打通云钉生态

点击阅览原文,进入官网了解更多内容~