作者:尘央
布景
“以事情集成阿里云,从 EventBridge 开端”是 EventBridge 这款云产品的愿景和任务。作为一款无服务器事情总线服务,EventBridge 从发布以来,以标准化的 CloudEvents 1.0 协议衔接了大量云产品和云事情,用户能够经过 EventBridge 轻松拜访云上事情,驱动云上生态。
截止目前为止,EventBridge 已集成 85+ 阿里云产品,供给了 941+ 事情类型,集成 50+ SaaS产品,经过事情规矩可轻松驱动 10+ 阿里系一方云产品的计算力。
另一方面,钉钉生态空前繁荣,具有 4000+ 家的生态同伴,包括 ISV 生态同伴、硬件生态同伴、服务商、咨询生态和交付生态同伴等。经过事情将钉钉生态与阿里云生态联通,是饯别「云钉一体」战略的重要途径,EventBridge 作为阿里云标准化的事情枢纽,其重要性不言而喻。
今天,EventBridge 联合钉钉衔接器,打通了钉钉生态和阿里云生态,钉钉的生态同伴能够经过通道的才能驱动阿里云上海量的计算力。
关键技术
EventBridge 集成阿里云和钉钉生态的计划,中心才能由钉钉衔接器和 EventBridge 的 HTTP 事情源才能供给。
钉钉衔接器
钉钉衔接平台经过可视化拖拽装备、一键订阅等零代码办法,简略高效的完结钉钉、企业内部体系、闻名厂商体系(金蝶、用友、SAP 等)、钉钉第三方企业使用之间数据互通和集成。
近期,钉钉衔接器在「衔接流」中发布了「HTTP Webhook」的执行动作才能,支撑将钉钉生态敞开给外部生态,EventBridge 正是经过该才能将钉钉生态接入到阿里云生态。
EventBridge HTTP 事情源
事情源是事情驱动的基石,怎么获取更多事情源也是 EventBridge 一直在探究和测验的方向。针对商场上其他云厂商和垂直领域的 Saas 服务,EventBridge 发布了 HTTP 事情源才能,供给简略且易于集成的三方事情推送 ,协助客户愈加高效、便捷地完结事务上云。
具体而言,HTTP 事情源是 EventBridge 支撑的事情源的一种,它以 Webhook 形式暴露了发布事情的 HTTP 恳求地址,用户能够在有 URL 回调的场景装备 HTTP 事情源,或许直接使用最简略的 HTTP 客户端来完结事情的发布。HTTP 事情源供给了支撑 HTTP 与 HTTPS,公网与阿里云 VPC 等不同恳求办法、不同网络环境的 Webhook URL,便于用户将其集成到各类使用中。接入时无需使用客户端,仅需保证使用能够拜访到对应 Webhook URL 即可,这使得接入进程变得简略而高效。
在将 HTTP 恳求转换为 CloudEvent 的时候,EventBridge 会将恳求的头部和音讯体部分置于 CloudEvent 字段中,其余字段会根据用户 EventBridge 资源属性以及体系默认规矩进行填充。用户能够在事情规矩中,对所需的内容进行过滤、提取,终究依照模板拼装成所需的音讯内容投递给事情方针。
在安全方面,HTTP 事情源不需求用户进行复杂的签名鉴权,支撑 3 种类型开箱即用的安全设置,分别是恳求办法、源 IP 以及恳求来历域名。
- 恳求办法:用户能够装备当前恳求此事情源时合法的 HTTP 恳求办法,假如办法类型不满足装备规矩,恳求将被过滤,不会投递到事情总线。
- 源 IP:用户能够设置答应拜访此事情源时合法的源 IP(支撑 IP 段和 IP),当恳求源 IP 不在设置的范围内时,恳求将被过滤,不会投递到事情总线。
- 恳求来历域名:即 HTTP 恳求的 referer 字段,当恳求的 referer 与用户装备不相符时,恳求被过滤,不会投递到事情总线。
使用场景
钉钉衔接器商场有数百款衔接器,包括官方衔接器和第三方生态衔接器。
-
官方衔接器,来历主要是钉钉官方的使用,比方视频会议、日程、通讯录、批阅流、钉盘、宜搭等,企业和 SaaS 厂商能够充分使用这些官方使用的事情构建企业级的使用体系,也能够将钉钉的官方数据流与其他体系做深度集成。
-
第三方衔接器,来历主要是钉钉的生态合作同伴,比方金蝶、行翼云、集简云、用友、易快报、销帮帮等。SaaS 厂商能够经过敞开衔接器来敞开数据,与其它使用互联互通。
如上图所示,凭借钉钉衔接器,能够将钉钉官方事情源和钉钉 SaaS 事情源衔接到阿里云 EventBridge,从而能驱动云上的弹性资源。SaaS 厂商能够凭借 EventBridge 衔接的才能快速构建云原生的 SaaS 使用,凭借云的弹性才能,采用云原生最新的技术栈,快速高效地开发 SaaS 使用,一起使用 EventBridge 获取钉钉和其它 SaaS 使用的数据源,轻松进行事务创新。
当钉钉生态和 EventBridge 联通后,能发生哪些使用场景呢?
-
剖析场景:企业凭借 EventBridge 事情剖析才能,对钉钉官方事情进行剖析,快速洞悉企业运转数据。比方批阅效率,职工变更趋势、会议效率等。
-
告诉场景:钉钉衔接器 + EventBridge 可覆盖绝大多数音讯告诉场景,协助企业用户快速感知 批阅,职工变化,会议室信息等一些列企业根底支撑体系。
-
集成场景:基于阿里云根底建设,可快速提高钉钉生态和企业内部数据的互通。例如当公司需求对钉钉和企业内部 IT 体系进行数据打通时,EventBridge 解决计划能够毫不费力地将建立在阿里云体系的 IT 体系连通起来,比方函数计算,云数据库,音讯行列等衔接扩展阿里云生态。
-
EDA 场景:使用 EventBridge 快速构建 EDA 驱动的自动化事务流程。例如在新职工入职时,获取职工变化信息。并会集推送到邮箱体系,事务支撑体系(DB),CRM 体系等。对企业新职工权限账户进行一站式授权,较少重复机械的事务批阅流程。
最佳实践:新增职工 0 代码入库
本章节介绍使用钉钉衔接器和 EventBridge 的最佳实践,经过一个例子展示怎么 0 代码将钉钉的一个新职工入职记载录入到自定义的数据库傍边,企业能够根据该数据库搭建各类职工办理体系。
计划简介
整个计划涉及到钉钉、钉钉衔接器、EventBridge、阿里云数据库等产品,整个链路如下图所示:
前置条件:
- 具有一个钉钉账号,并创立一个团队成为办理员,并能登陆钉钉敞开平台。
- 具有一个阿里云账号,并开通 EventBridge 和阿里云数据库。
实践过程
整个实践进程分为以下几个过程。
1)创立事情总线和 HTTP 事情源
首要登陆 EventBridge 控制台,创立一个事情总线和 HTTP 事情源,如下图所示,能够先越过规矩和方针的创立。
创立完结后,进入事情总线的概况列表,获取 HTTP 事情源的公网「Webhook 地址」,如下图所示:
2)创立钉钉衔接流
登陆钉钉敞开平台,进入衔接平台,在「我的衔接」下创立衔接流,在创立界面,选择触发器为「官方-通讯录-通讯录用户增加」。
衔接流创立完结后,进入编辑页面,增加一个「HTTP Webhook」的节点,在「恳求地址」一栏填入上个过程获取到的「HTTP 事情源」地址。
3)钉钉触发新增职工事情
翻开钉钉,进入团队,约请另一个账号加入团队,然后进入事情总线的「事情追寻」页面,能够发现该职工新增事情已经投递到了事情总线之上。
该事情被转换成了一个「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 事情源。
然后选择 RDS 方针,做好参数映射。
6)触发事情入库
第三步触发事情时,因未装备规矩和方针,事情没有被消费,故需求经过钉钉重新触发一次事情,然后从 EventBridge 控制台调查推送轨迹。
从轨迹中能够看出推送成功,然后经过 RDS 控制台能够查询到该条记载。
至此,一个钉钉团队新职工入职的记载经过 0 代码的办法入库到企业数据库傍边,能够十分低的成本开发企业级办理使用。
参考链接:
[1] 阿里云 EventBridge 事情驱动架构实践
[2] 数据库使用集成
[3]EDA 事情驱动架构与 EventBridge 二三事
[4]云事情驱动引擎EventBridge
[5]“音讯驱动、事情驱动、流 ”根底概念解析
了解更多 EventBridge 相关信息,扫描下方二维码加入钉钉群~
点击阅览原文,进入官网了解更多内容~