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

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 快速学习 EventBridge API 端点:让服务集成触手可及

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

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


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


2. Connection 访问合法性校验:API Key

image.png

API key 是其中最简单的授权认证方式,用户可以自定义 API访问的一个Key name 和 key value。eventbridge 会将其通过 http header的方式,传输到端进行认证,这种方式缺点也很明显,就是安全性不足,尤其是在一些非 HTTPS 的一些场景下,明文传输是容易引起一些安全问题的,但是对一些内部网络或者安全等级要求不高的场景下,这是一种非常容易理解,非常好用的方式。

3. Connection 访问合法性校验:Basic

image.png 

Basic是一种被很多 saas 产品支持的一种轻量级的方案,尤其是在用户内部网络访问认证的一些场景下被用的很多,那在这种模式下 username 和 password 会被 base64 进行编码,然后加上 basic 空格前缀,作为 header value 一起发送到目标服务,目标服务端会进行解码并进行认证,如果认证通过,会响应 eventbridge 的一个请求,如果失败会直接打回。当然它存在缺点,就是它的安全性其实也是不足的,因为 base64很容易被解码,甚至它不需要解码,也可以直接复用。

4. Connection 访问合法性校验:OAuth 2

image.png

OAuth 2 其实是一种相对来说更加安全可靠的授权认证方式,尤其是在一些公网等一些非可信的网络,目前很多产品尤其网络上的一些不同产品之间的相互授权都会被采用,面对不同的场景 oauth2 有四种授权方式。

第一种授权码这种主要是用于后端的外部应用,隐藏式的授权是主要是适用一些应用,密码主要是用一些内部网络高度性的的两个应用。对客户端品质是用于那些没有全单的服务间的调用。

那对于 eventbridge 事件驱动场景适合的是客户端凭证,这种授权方式,那在这种模式上用户需要在 eventbridge 配置,获取客户端凭证所需要的一些信息,这里包括 oauth service 地址、client id、client secret,支持通过get和post两种方式去获取客户端凭证,当 eventbridge  拿到客户的凭证之后,会在每次推送事件到目标服务的时候带上这个凭证信息,并且在凭证到期之前会自动的更新获取最新的凭证,详细大家也可以参考 oauth 2 的官方定义。

5.API 端点:有效管理事件目标

image.png 

有了刚才提到的 connection,eventbridge 就可以顺利的与目标服务进行连通了,但是为了访问最终的服务,其实还需要知道微服务 api 的具体定义,也就是刚才提到 api 端点,但是这里有一点需要注意的是 api 端点里只是定义了 API的原数据,具体的事件推送给目标端服务的时候,传递的一些参数以及每个参数传递什么内容是事件规则在选择 api 端点之后进行配置的时候定义的。可以这样去理解,api 端点是对 api 的描述,规则 api 端点则是对api 参数的每个值如何传递进行了定义。有的时候存在多个规则会往同一个目标服务 api 进行事件投递的场景,那如果这个时候没有 api 端点,一旦需要修改某一个API的参数,那需要修改所有的规则,这个是相当麻烦的,但是如果将这个目标服务的 api 定义成一个 api 端点,那只需要去修改 api 端点的一个配置,那么所有依赖这个 api 端点的规则都会同步自动更新,这里本质上是因为制定的事件的规则的目标,对api的依赖是一个引诱。

6.面向 API 端点的产品间集成

image.png

有了api端点,相当于是建了一条与微服务之间的一个快速通道,那就可以与事件中心轻松地对服务进行集成编排,可以将需要的事件实时同步给微服务,也可以通过事件的方式去驱动微服务的运行。尤其是对一些 saas 的服务,因为可能并没有二次开发能力去修改saas 服务里面的代码,这是非常困难的。但是一般 saas 服务都会暴露 API 可以通过 eventbridge 将事件通过 API 端点的方式推送给对应的 saas服务,这个是比较容易的。最后一起看一下api端点的应用场景。

 

四、应用场景案例

1.与内部微服务集成:将 OSS 事件推送到内部微服务

image.png

回到一开始的例子,如何将 oss 事件推送到用户内部的微服务。如果使用 api,首先得创建一个 connection,用来定义这个微服务所需要的连接信息,这里定义创建的 connection 名称为 Micro service connection,选择进程配置 api Key,api key name 选择 token,api key value选择 event bridge,点击确定,这样的话,连接配置就创建完了。

再创建一个 API端点,输入端点的名称,目标地址输入之前的web hook 作为模拟的后台微服务,Http method 选择post。Connection 选择刚刚创建的配置信息。点击确定。这样 api 端点的服务就已经创建完了。

然后回到 default 总线创建一个规则。筛选出需要推送的 oss 事件,将oss 事件推送到刚刚创建的API端点上。这里面可以设置 http 一些额外参数,设置 header 为加一个 source,Value选择能clut evenst的 source 字段,还可以再增加一个body,可以再增加一个Query 设置为固定值,value 也是固定值,这样规则就创建完了,那相比原先的HTTP这里可以看到可以去灵活的去设置 HTTP 参数,包括 header、body、Query,这样的有个好处是可以模拟所有 API方式,那这里可能会有一个疑问,就是如果规则中配置的参数和connection中默认的参数冲突了。因为它默认方式也会通过 http 等方式进行,那一旦冲突,那这个会被覆盖吗?这里是这样的,就是认为 connection 是连接是第一优先级的。所以当两边的参数冲突时会以 CONNECTION 的配置的参数为准。

先把 web hook 之前的记录删掉,让整个服务出一个待起伏的状态,再往 Oss 事件里面上传一个文件,文件上传成功,这里面看到 query 就是刚才设的字段,然后可以看到 haeder 里面有 token 信息,还有 source 字段 oss 以及body 完整地记录了 clut events 中的 data 信息。

2. 与 saas 服务集成:通过 event 集成 jenkins 触发构建部署

image.png 

再来看一个例子,通过event去集成 jenkins服务,轻松的去触发jenkins 构建和部署,jenkins 大家已经很熟悉了很多公司都会通过Jenkins来去做实现代码的自动构建测试和部署,这里在demo上部署了 jenkins 服务,Jenkins api 默认支持 message 请求模式,所以在 jenkins 里面可以为自己的账号去申请一个 api token。

这里生成了一个密码串,回到event bridge里面创建一个jkenkins 的 connection,用户名输入 jenkins 账号名,密码就是刚才已经生成的密码串,点击确定,这样 jenkins 连接配置就创建完了。接着创建一个去触发 jenkins job构建的api。连接配置选择刚刚创建的conection,点击确定,创建完了。然后创建一个自定义事件总线,输入事件源名称,输入事件规则名称,默认可以过滤所有的事件,然后选择 api 端点,选择刚刚创建的api服务,这里同样可以设置一些对应的参数信息,然后点击创建,这样一个触发 jenkins构建部署规则就创建好了。

现在可以通过页面或者SDK往总线去发送一条事件,回到 jenkins 页面,看到 jenkins 收到了 eventbridge 事件,并且触发了一次构建部署。

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
相关文章
|
2月前
|
存储 数据可视化 Java
基于MicrometerTracing门面和Zipkin实现集成springcloud2023的服务追踪
Sleuth将会停止维护,Sleuth最新版本也只支持springboot2。作为替代可以使用MicrometerTracing在微服务中作为服务追踪的工具。
153 1
|
3月前
|
Java Maven Windows
使用Java创建集成JACOB的HTTP服务
本文介绍了如何在Java中创建一个集成JACOB的HTTP服务,使Java应用能够调用Windows的COM组件。文章详细讲解了环境配置、动态加载JACOB DLL、创建HTTP服务器、实现IP白名单及处理HTTP请求的具体步骤,帮助读者实现Java应用与Windows系统的交互。作者拥有23年编程经验,文章来源于稀土掘金。著作权归作者所有,商业转载需授权。
使用Java创建集成JACOB的HTTP服务
|
22天前
|
机器学习/深度学习 人工智能 自然语言处理
Voice-Pro:开源AI音频处理工具,集成转录、翻译、TTS等一站式服务
Voice-Pro是一款开源的多功能音频处理工具,集成了语音转文字、文本转语音、实时翻译、YouTube视频下载和人声分离等多种功能。它支持超过100种语言,适用于教育、娱乐和商业等多个领域,为用户提供一站式的音频处理解决方案,极大地提高工作效率和音频处理的便捷性。
92 10
Voice-Pro:开源AI音频处理工具,集成转录、翻译、TTS等一站式服务
|
1月前
|
安全 测试技术 数据安全/隐私保护
原生鸿蒙应用市场开发者服务的技术解析:从集成到应用发布的完整体验
原生鸿蒙应用市场开发者服务的技术解析:从集成到应用发布的完整体验
|
2月前
|
存储 Java 开发工具
【三方服务集成】最新版 | 阿里云OSS对象存储服务使用教程(包含OSS工具类优化、自定义阿里云OSS服务starter)
阿里云OSS(Object Storage Service)是一种安全、可靠且成本低廉的云存储服务,支持海量数据存储。用户可通过网络轻松存储和访问各类文件,如文本、图片、音频和视频等。使用OSS后,项目中的文件上传业务无需在服务器本地磁盘存储文件,而是直接上传至OSS,由其管理和保障数据安全。此外,介绍了OSS服务的开通流程、Bucket创建、AccessKey配置及环境变量设置,并提供了Java SDK示例代码,帮助用户快速上手。最后,展示了如何通过自定义starter简化工具类集成,实现便捷的文件上传功能。
【三方服务集成】最新版 | 阿里云OSS对象存储服务使用教程(包含OSS工具类优化、自定义阿里云OSS服务starter)
|
2月前
|
开发框架 .NET API
Windows Forms应用程序中集成一个ASP.NET API服务
Windows Forms应用程序中集成一个ASP.NET API服务
109 9
|
2月前
|
安全 Java 测试技术
ToB项目身份认证AD集成(二):快速搞定window server 2003部署AD域服务并支持ssl
本文详细介绍了如何搭建本地AD域控测试环境,包括安装AD域服务、测试LDAP接口及配置LDAPS的过程。通过运行自签名证书生成脚本和手动部署证书,实现安全的SSL连接,适用于ToB项目的身份认证集成。文中还提供了相关系列文章链接,便于读者深入了解AD和LDAP的基础知识。
|
4月前
|
存储 设计模式 缓存
OpenFeign集成Ribbon负载均衡-过滤和选择服务核心实现
该文章主要介绍了如何在OpenFeign中集成Ribbon以实现负载均衡,并详细分析了Ribbon中服务选择和服务过滤的核心实现过程。文章还涉及了Ribbon中负载均衡器(ILoadBalancer)和负载均衡策略(IRule)的初始化方式。
OpenFeign集成Ribbon负载均衡-过滤和选择服务核心实现
|
3月前
|
编解码 Linux 开发工具
Linux平台x86_64|aarch64架构RTMP推送|轻量级RTSP服务模块集成说明
支持x64_64架构、aarch64架构(需要glibc-2.21及以上版本的Linux系统, 需要libX11.so.6, 需要GLib–2.0, 需安装 libstdc++.so.6.0.21、GLIBCXX_3.4.21、 CXXABI_1.3.9)。
|
4月前
|
jenkins 持续交付
jenkins学习笔记之六:共享库方式集成构建工具
jenkins学习笔记之六:共享库方式集成构建工具