作者:李凯(凯易)
EvenBridge 集成概述
EventBridge 是阿里云所推出了一款无服务器事情总线,其方针是拓宽事情生态,打破体系间的数据孤岛,树立事情集成生态。供给统一的事情标准化接入及管理才能,完善集成与被集成通路,协助客户快速完结事情驱动的核心原子功用,可将 EventBridge 快速集成至 BPM、RPA、CRM 等体系。
EventBridge 经过事情标准化,接入标准化,组件标准化三个方向作为支点拓宽 EventBridge 事情生态:
• 事情标准化:拥抱 CloudEvents 1.0 开源社区标准协议,原生支撑 CloudEvents 社区 SDK 和 API,全面拥抱开源社区事情标准生态; • 接入标准化:供给标准事情推送协议 PutEvent,并支撑 Pull 和 Push 两种事情接入模型,可有效下降事情接入难度,供给云上完善的事情接入标准化流程; • 组件标准化:封装标准的事情下流组件东西链体系,包含 Schema 注册、事情分析、事情检索、事情仪表盘等。供给完善的事情东西链生态。
在集成范畴 EventBridge 要点打造事情集成和数据集成两类核心场景,下面将环绕这两类场景详细打开描绘。
事情集成
现在 EventBridge 现已具有 80+ 云产品的事情源,800+ 种事情类型。整个事情生态还正在逐步丰富中。
那么,EventBridge 怎么完结云产品的事情集成呢?
• 首要在 EventBridge 控制台能够看见一个名为 default 的事情总线,云产品的事情都会投递到这个总线;
• 然后点击创立规矩,就能够挑选所关心的云产品以及它的相关事情进行事情的监听和投递。
下面以两个比如为例,来看下 EventBridge 事情集成的方法。
OSS 事情集成
以 OSS 事情源为例,来解说一下怎么集成 OSS 事情。
OSS 事情现在首要分为 4 类,操作审计相关、云监控相关、装备审计相关、以及云产品相关的事情例如 PutObject 上传文件等等。其他的云产品的事情源也相似,基本都能够分为这几个类型的事情。
下面演示一下事情驱动的在线文件解压服务:
• 在 OSS Bucket 下面会有一个 zip 文件夹寄存需求解压的文件,一个 unzip 文件夹寄存解压后的文件; • 当上传文件到 OSS Bucket 之后,会触发文件上传的事情并投递到 EventBridge 的云服务专用总线; • 然后会运用一个事情规矩过滤 zip 这个 bucket 的事情并投递到解压服务的 HTTP Endpoint; • 解压服务会在收到事情之后,根据事情里边的文件路径从 OSS 下载文件解压,并在解压之后将文件传到 unzip 目录下; • 一同,还会有一个事情规矩,监听 unzip 目录的文件上传事情,并将事情转换后推送到钉钉群。
一同来看下是怎么完结的:
前往下方链接检查视频: www.bilibili.com/video/BV1s4…
1)首要创立一个 bucket,下面有一个 zip 目录用于寄存上传的压缩文件,一个 unzip 目录用于寄存解压后的文件。
- 部署解压服务,并且暴露公网访问的地址。
解压服务的源码地址为: github.com/AliyunConta…
也能够运用 ASK 直接部署,yaml 文件地址为: github.com/AliyunConta…
3)创立一个事情规矩监听 zip 目录下的上传文件的事情,并投递到解压服务的 HTTP Endpoint。
这儿运用 subject,匹配 zip 目录。
4)再创立一个事情规矩监听 unzip 目录的事情,投递解压事情到钉钉群。
这儿相同运用 subject,匹配 unzip 目录。
关于变量和模板的装备能够参阅官方文档 : help.aliyun.com/document_de…
EventBridge 会经过 JSONPath 的方法从事情中提取参数,然后把这些值放到变量中,终究经过模板的界说烘托出终究的输出投递到事情方针。OSS 事情源的事情格式也能够参阅官方文档 : help.aliyun.com/document_de… ,并根据实践的业务需求运用 JSONPath 界说变量。5)终究,经过 oss 控制台上传一个文件进行验证。
能够看到刚刚上传的 eventbridge.zip 现已解压到并上传上来了,也能够在钉钉群里边,收到解压完结的通知。此外,还能够在事情追踪这边检查事情的内容现已投递的轨道。
能够看到有两个上传事情:一个是经过控制台上传的事情,一个是解压文件后上传的事情。
能够检查轨道,都成功投递到了解压服务的 HTTP Endpoint 以及钉钉机器人。
以自界说事情源以及云产品事情方针的方法集成云产品
方才演示的 demo 是集成云服务的事情源,下面再经过一个 demo 看一下怎么经过以自界说事情源以及云产品事情方针的方法集成云产品。
前往下方链接检查视频: www.bilibili.com/video/BV1QF…
这个 demo 的终究作用是经过 EventBridge 主动进行数据的清洗,并投递到 RDS 中去。事情内容是一个 JSON,具有两个字段一个姓名一个年纪,现在期望将把大于 10 岁的用户过滤出来并存储到 RDS 中。
全体的架构如图所示,运用一个 MNS Queue 作为自界说事情源,并经过 EventBridge 过滤并转换事情终究直接输出到 RDS 中去。
1)首要现已创立好了一个 MNS Queue,创立好一个 RDS 实例以及数据库表,表结构如下所示:
2)创立一个自定事情总线,挑选事情供给方为 MNS,队列为提前创立好的队列;
创立好了之后,咱们就能够在事情源这儿看见一个现已正在运行中的事情源;
3)接下来创立规矩投递到 RDS
装备的事情形式内容如下:
{
"source": [
"my.user"
],
"data": {
"messageBody": {
"age": [
{
"numeric": [
">",
10
]
}
]
}
}
}
数值匹配能够参阅官方文档: help.aliyun.com/document_de…
- 点击下一步,挑选事情方针为数据库,填写数据库信息,装备转化规矩,完结创立。
5)终究,先用 MNS Queue 发送一个音讯,这个的 age 是大于 10 的。
能够看见这条事情就输出到了 RDS 里边了。
下面再发一个小于 10 的音讯到 MNS Queue。
这条事情就被过滤掉了,没有输出到 RDS。
也可经过事情追踪检查事情:
能够看到一条事情成功投递到了 RDS,一条事情被过滤掉了,没有进行投递。
数据集成
事情流是 EventBridge 为数据集成供给的一个更为轻量化、实时的端到端的事情流试的通道,首要方针是将事情在两个端点之间进行数据同步,一同供给过滤和转换的功用。现在现已支撑阿里云各音讯产品之间的事情流通。
不同于事情总线模型,在事情流中,并不需求事情总线,其 1:1 的模型愈加的轻量,直接到方针的方法也让事情愈加的实时;经过事情流,咱们能够完结不同体系之间的协议转换,数据同步,跨地域备份的才能。
下面将经过一个比如解说怎么运用事情流,将 RocketMQ 的音讯路由到 MNS Queue,将两个产品集成起来。
全体的结构如图所示,经过EventBridge 将 RocketMQ 中 TAG 为 MNS 的音讯路由到 MNQ Queue。
一同看下怎么完结:
前往下方链接检查视频: www.bilibili.com/video/BV1D4…
• 首要创立一个事情流,挑选源 RocketMQ 实例,填写 Tag 为 mns。
• 事情形式内容留空表明匹配所有。
• 方针挑选 MNS,挑选方针队列完结创立。
• 完结创立之后,点击发动,发动事情流使命。
事情流发动完结之后,咱们就能够经过控制台或许 SDK 发送音讯到源 RocketMQ Topic 里边。当有 Tag 为 mns 的时分,咱们能够看见音讯路由到了 mns;当有 Tag 不为 mns 的时分,音讯就不会路由到 mns。
总结
本篇文章首要向大家共享了经过 EventBridge 怎么集成云产品事情源,怎么集成云产品事情方针以及经过事情流怎么集成音讯产品。
点击此处,了解更多 EventBridge 相关资讯~ 发布云原生技能最新资讯、汇集云原生技能最全内容,定期举办云原生活动、直播,阿里产品及用户最佳实践发布。与你并肩探索云原生技能点滴,共享你需求的云原生内容。
关注【阿里巴巴云原生】大众号,获取更多云原生实时资讯!