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,搭建一个在线教育视频课程分享网站。
相关文章
|
10天前
|
SQL 人工智能 关系型数据库
Flink CDC YAML:面向数据集成的 API 设计
本文整理自阿里云智能集团 Flink PMC Member & Committer 徐榜江(雪尽)在 FFA 2024 分论坛的分享,涵盖四大主题:Flink CDC、YAML API、Transform + AI 和 Community。文章详细介绍了 Flink CDC 的发展历程及其优势,特别是 YAML API 的设计与实现,以及如何通过 Transform 和 AI 模型集成提升数据处理能力。最后,分享了社区动态和未来规划,欢迎更多开发者加入开源社区,共同推动 Flink CDC 的发展。
312 12
Flink CDC YAML:面向数据集成的 API 设计
|
26天前
|
人工智能 自然语言处理 API
百聆:集成Deepseek API及语音技术的开源AI语音对话助手,实时交互延迟低至800ms
百聆是一款开源的AI语音对话助手,结合ASR、VAD、LLM和TTS技术,提供低延迟、高质量的语音对话体验,适用于边缘设备和低资源环境。
606 4
百聆:集成Deepseek API及语音技术的开源AI语音对话助手,实时交互延迟低至800ms
|
1月前
|
人工智能 JSON 安全
DeepSeek Engineer:集成 DeepSeek API 的开源 AI 编程助手,支持文件读取、编辑并生成结构化响应
DeepSeek Engineer 是一款开源AI编程助手,通过命令行界面处理用户对话并生成结构化JSON,支持文件操作和代码生成。
737 6
DeepSeek Engineer:集成 DeepSeek API 的开源 AI 编程助手,支持文件读取、编辑并生成结构化响应
|
3月前
|
API Docker 微服务
Ocelot集成Consul实现api网关与服务发现
本文介绍了如何在.NET微服务架构中集成API网关Ocelot和Consul服务发现。首先通过Docker安装并配置Consul,接着在GoodApi项目中实现服务的自动注册与注销,并配置健康检查。然后,通过修改Ocelot的配置文件`ocelot.json`和`Program.cs`,实现基于Consul的服务发现,确保API请求能够正确路由到后端服务。最后,解决了服务解析时可能出现的问题,确保服务的IP地址而非节点名称被正确解析。
70 0
Ocelot集成Consul实现api网关与服务发现
|
4月前
|
IDE API 开发工具
沉浸式集成阿里云 OpenAPI|Alibaba Cloud API Toolkit for VS Code
Alibaba Cloud API Toolkit for VSCode 是集成了 OpenAPI 开发者门户多项功能的 VSCode 插件,开发者可以通过这个插件方便地查找API文档、进行API调试、插入SDK代码,并配置基础环境设置。我们的目标是缩短开发者在门户和IDE之间的频繁切换,实现API信息和开发流程的无缝结合,让开发者的工作变得更加高效和紧密。
沉浸式集成阿里云 OpenAPI|Alibaba Cloud API Toolkit for VS Code
|
4月前
|
开发框架 .NET API
Windows Forms应用程序中集成一个ASP.NET API服务
Windows Forms应用程序中集成一个ASP.NET API服务
123 9
|
4月前
|
存储 数据可视化 JavaScript
可视化集成API接口请求+变量绑定+源码输出
可视化集成API接口请求+变量绑定+源码输出
114 4
|
5月前
|
SQL 分布式计算 BI
Dataphin中集成SelectDB以支持报表分析和API查询
本文介绍了一家零售企业如何利用SelectDB进行BI分析及数据服务API的查询。通过Dataphin的数据集成、SQL研发等功能,将CRM、ERP等系统数据汇聚加工,并推送至SelectDB构建销售数据集市层,以支持报表分析及API查询。SelectDB具备实时、统一、弹性及开放特性,适用于多种实时分析场景。文章详细描述了在Dataphin中集成SelectDB的整体方案、数据源配置、数据集成、数据开发及数据服务流程。
211 1
|
6月前
|
存储 消息中间件 前端开发
Web2py框架下的神秘力量:如何轻松集成第三方API,让你的应用不再孤单!
【8月更文挑战第31天】在开发现代Web应用时,常需集成第三方服务如支付网关、数据存储等。本文将指导你使用Web2py框架无缝接入第三方API。通过实例演示从注册获取API密钥、创建控制器、发送HTTP请求到处理响应的全过程。利用`requests`库与Web2py的内置功能,轻松实现API交互。文章详细介绍了如何编写RESTful控制器,处理API请求及响应,确保数据安全传输。通过本教程,你将学会如何高效整合第三方服务,拓展应用功能。欢迎留言交流心得与建议。
70 1
|
6月前
|
jenkins 持续交付
jenkins学习笔记之六:共享库方式集成构建工具
jenkins学习笔记之六:共享库方式集成构建工具

热门文章

最新文章