EventBridge API 端点:让服务集成触手可及|学习笔记(一)

简介: 快速学习 EventBridge API 端点:让服务集成触手可及

开发者学堂课程事件总线EventBridge生态集成课程EventBridge API 端点:让服务集成触手可及学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/1235/detail/18405


EventBridge API 端点:让服务集成触手可及

 

内容介绍

一、概括

二、eventbridge 背景

三、api 端点

四、应用场景案例

 

一、概括

最近对外正式发布了 api 端点服务,用来帮助大家更方便的将云上的产品以自己的微服务或者购买了 saas 服务进行集成。那 api 端点到底是什么?

今天的讲解主要包含三部分,首先先简单介绍一下 eventbridge的背景,然后讲一下为什么要做 api 端点。第二部分一起看一下今天的主角 API 端点,它到底是什么,有什么用。第三部分用两个场景演示案例来实际体验一下 api 端点。

 

二、eventbridge 背景

1.什么是 EventBridge

 

image.png

eventbridge 在阿里云的定位是云原生时代,云上操作系统的事件中枢,通过这个事件中枢,可以以标准 cloudevents 的事件协议将阿里云上的产品自建服务,以及外部的 saas 服务进行集成连接,来构建一个松耦合和高可靠的事件驱动架构。

2.EventBridge 的基本模型

来看一下 eventbridge 的基本模型,

image.png

当开通 eventbridge 的时候,eventbridge 会自动收集阿里云上两百多款产品的事件。然后就可以在事件总线上轻松地通过规则方便地去订阅,并过滤到需要的云产品事件,并推送到目标端。这里的目标端可以是阿里云上的服务,也可以是自己搭建的一个微服务,甚至可以是外部的一些 saas 服务,当然不仅是阿里云上的云产品事件可以通过 eventbridge 去实现事件驱动,那用户自己的业务事件,以及用户购买的一些 saas 服务产生事件都是可以通过 SDK 主动上报或者通过 eventbridge 主动拉取以及 web hook的一些能力,将这些事件推送回 eventbridge。

eventbridge 就像一个事件中心,去帮助用户管理了产品周边所有事件。当需要使用事件时候,可以很方便地通过 eventbridge 筛选出需要的事件,并推送给目标端。整个过程目标端是不需要像消息订阅一样去主动地适配上的消息,那目标端也无需要去改一行代码就可以通过原本暴露的 API 来完成整个产品的集成,那整个架构是更加松耦和,更加易维护和可靠的。

3.适配目标端:过滤和转换

image.png

事件规则里面过滤和转换事件的过程,本质上是将之前目标端原本订阅消息的逻辑,以及去解析上游消息格式的逻辑。从目标端前置到了 eventbridge 当中,因为订阅和解析消息的逻辑,对于每个目标端来讲都是大同小异的,而且目标端增加对上游消息的适配层,其实会破坏目标微服务的一个内聚性,尤其是当目标微服务需要去订阅很多事件的时候,那会让目标微服务非常多的一些适配代码变得不可维护。为了满足目标微服务长的一些场景需求,eventbridge 提供了非常丰富的事件过滤模式,以及事件转换工具,那来看一下一个简单的例子,就是将云产品 OSS 的事件推送到内部微服务 HTTP target,阿里云上所有官方云产品事件都默认会投递到 default 总线,那在北京提前在 default 总线创建了一个规则。这个规则会过滤所有的 OSS 事件,并投递到 HTTP 目标端,这个目标端指向的是自建的 web hook 地址,它会时刻地去监听,访问这个服务的 HTTP 请求,并把收到请求完整地打印出来,可以看到图中左边,

image.png

这个服务一直在处于监听等待中,这里面设置了推送到 http body 为模板,提取了 cluteveent 中的 subject 字段,并随模板一起输出,现在就往北京的 oss packet 上传一个 demo文件。看到文件已经上传成功,然后看一下 http 目标服务,它也已经收到了刚刚上传的事件,它的内容是上传的对应的文件信息。

4.HTTP Target 遇到的问题

这里大家可能也发现了目前 HTTP 目标的能力还是比较弱的,主要体现在三个方面。

image.png

第一鉴权方式比较单一,只支持固定 token 的鉴权方式,第二参数传递的能力较弱,只支持传递 HTTP body,不支持传递 http header 的参数,而且默认用 post 方式,第三是管理成本比较高,当多个规则依赖同一个 HTTP 的时候万一需要修改,所有的规则都需要去改变,这次为什么不直接去升级 http target 而推出 api 端点这个服务,接下来一起来看一下 api 的端点,它到底是什么,又是怎么去解决用户遇到的问题。

 

三、api 端点

1.什么是 API 端点

首先,看一下api端点在 eventbridge 中的位置。

image.png

作为 eventbridge 的目标端,整体的模型是和其它事件目标保持一致的,那事件发送到 eventbus 之后会通过规则进行过滤和转换来最终推送到 api 端点对应的目标服务上,那这个 api 开端点是什么?里面有什么呢?在回答这个问题之前,一起看一下,一个典型的微服务 API 是什么样的。

image.png

先看图中最下面,一个目标微服务在其他服务进行集成交汇时候最常见的方式是暴露 API,通过 API 来定义当前目标微服务的边界。在暴露 api时,微服务通过多种方式,目前最常用的方式是 HTTP 协议暴露 http resetfule api ,其他服务如果想和当前的微服务进行集成,就可以通过访问  http resetfule API来实现这个目的,eventbridge 如果希望将事件推送到这个目标微服务的 api,就需要清楚地知道目标微服务的 api 的定义,当然光知道 api 的定义还是不够的,因为对于一个微服务来讲,为了防止一些恶意攻击,常常还会有自己的一个认知方式,用来限制使用一些合法的请求才能被响应。

在完成第一个微服务 api 时主要含两部分。一部分是用来实现和微服务的联通就是普通的 connection。第二部分是 api 的方法的参数信息,就是图中的 api 端点。另外,在不同的场景下,同一个api的参数传递的内容在创建规则配置时候,其实是不一样的,所以在创建规则的时候还会具体的去配置 API 对应的参数具体的值的信息。

先来看下第一部分 connection,刚才提到 connection 主要是用于去实现外部服务与当前微服务的连通性,这里可以看到 connection 一般是微服务的,微服务上提供的多个 API 其实是共享这个 connection。

关于 connection 目前主要包含两部分,第一部分是网络配置。比如通过公网连接还是通过阿里私有网络进行连接,那第二部分是刚才提到的鉴权配置信息。 eventbridge 目前选取行业内最常见的三种基本方式 api key、basic、OAuth 2.0。那下面简单介绍方便后面使用。


相关文章
|
消息中间件 运维 监控
基于 EventBridge API Destination 构建 SaaS 集成实践方案
本次新增集成中心(Integration Center)是负责 EventBridge 与外界系统对接的模块,通过抽象与配置快速获取第三方事件并将事件集成到第三方系统。并且优化现有 HTTP Sink 集成方案,为用户下游集成创造更多适配场景。
308 0
基于 EventBridge API Destination 构建 SaaS 集成实践方案
|
安全 jenkins API
EventBridge API 端点:让服务集成触手可及|学习笔记(二)
快速学习 EventBridge API 端点:让服务集成触手可及
267 0
EventBridge API 端点:让服务集成触手可及|学习笔记(二)
|
5天前
|
机器人 API Python
智能对话机器人(通义版)会话接口API使用Quick Start
本文主要演示了如何使用python脚本快速调用智能对话机器人API接口,在参数获取的部分给出了具体的获取位置截图,这部分容易出错,第一次使用务必仔细参考接入参数获取的位置。
|
3天前
|
XML JSON API
RESTful API设计最佳实践:构建高效、可扩展的接口
【8月更文挑战第17天】RESTful API设计是一个涉及多方面因素的复杂过程。通过遵循上述最佳实践,开发者可以构建出更加高效、可扩展、易于维护的API。然而,值得注意的是,最佳实践并非一成不变,随着技术的发展和业务需求的变化,可能需要不断调整和优化API设计。因此,保持对新技术和最佳实践的关注,是成为一名优秀API设计师的关键。
|
4天前
|
监控 API 数据安全/隐私保护
​邮件API触发式接口分析?邮件API接口好评榜
邮件API在企业通信和营销中至关重要,通过自动化邮件发送流程提升效率与客户满意度。本文解析邮件API触发式接口,即基于特定事件(如用户注册、购买产品)自动发送邮件的技术,能显著加快企业响应速度并增强用户体验。推荐市场上的优秀邮件API产品,包括SendGrid、Mailgun、Amazon SES、Postmark及新兴的AOKSend,它们各具特色,如高发送率、详细分析工具、灵活配置、强大的日志功能及用户友好的API接口,帮助企业根据不同需求选择最合适的邮件API解决方案。
|
11天前
|
存储 算法 Oracle
19 Java8概述(Java8概述+lambda表达式+函数式接口+方法引用+Stream+新时间API)
19 Java8概述(Java8概述+lambda表达式+函数式接口+方法引用+Stream+新时间API)
39 8
|
21天前
|
开发框架 前端开发 JavaScript
循序渐进VUE+Element 前端应用开发(13)--- 前端API接口的封装处理
循序渐进VUE+Element 前端应用开发(13)--- 前端API接口的封装处理
|
28天前
|
缓存 自然语言处理 搜索推荐
解析微店商品详情的 API 接口获取之道
在电商蓬勃发展的时代,微店的商品详情数据对商家与开发者极具价值。API接口成为挖掘这些数据的关键,助力商家洞察市场,优化策略,实时监控竞品,管理库存;赋能开发者创新,如构建推荐系统和分析工具。获取接口需注册认证,理解政策,明确权限需求。调用API须精读文档,选用合适语言编码,处理错误,优化策略如缓存和异步请求。数据处理涉及自然语言分析、价格预测和情感分析,应用广泛。注意事项包括合规操作、数据安全、适应接口变动及性能优化,确保高效合法利用数据,推动电商进步。
|
28天前
|
API 数据安全/隐私保护 开发者
Web 开发新风尚!Python RESTful API 设计与实现,让你的接口更懂开发者心!
【7月更文挑战第23天】Python的RESTful API设计在Web开发中流行,提升效率与体验。REST强调HTTP方法(GET, POST, PUT, DELETE)操作资源。使用Flask框架可快速实现API,如管理用户信息。示例代码展示如何创建、读取、更新和删除用户,通过不同HTTP方法和URL路径。实际应用中,增加验证、错误处理和权限控制可增强API的安全性和稳定性。安装Flask后,可运行代码测试API功能。
53 6
|
25天前
|
缓存 监控 测试技术
API设计与开发的最佳实践:打造高效、易用的接口服务
【7月更文挑战第26天】API的设计与开发是一个复杂而重要的过程,它直接影响到系统的可用性和用户体验。通过遵循上述最佳实践,开发者可以构建出高效、易用、可扩展的接口服务,为不同软件和服务之间的集成提供有力支持。在未来的软件开发中,API将扮演越来越重要的角色,因此不断学习和实践API设计与开发的最佳实践,对于开发者来说至关重要。