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,搭建一个在线教育视频课程分享网站。
目录
打赏
0
0
0
0
55
分享
相关文章
GitHub官方开源MCP服务!GitHub MCP Server:无缝集成GitHub API,实现Git流程完全自动化
GitHub MCP Server是基于Model Context Protocol的服务器工具,提供与GitHub API的无缝集成,支持自动化处理问题、Pull Request和仓库管理等功能。
231 2
GitHub官方开源MCP服务!GitHub MCP Server:无缝集成GitHub API,实现Git流程完全自动化
OpenRouter 推出百万 token 上下文 AI 模型!Quasar Alpha:提供完全免费的 API 服务,同时支持联网搜索和多模态交互
Quasar Alpha 是 OpenRouter 推出的预发布 AI 模型,具备百万级 token 上下文处理能力,在代码生成、指令遵循和低延迟响应方面表现卓越,同时支持联网搜索和多模态交互。
130 1
OpenRouter 推出百万 token 上下文 AI 模型!Quasar Alpha:提供完全免费的 API 服务,同时支持联网搜索和多模态交互
大模型文生图服务API设计原来如此简单(1)
文生图大模型的API设计其实很简单!无论是Midjourney这样的商业产品,还是ComfyUI这样的开源工具,它们的核心API设计都遵循着相似的简单原则。
94 1
云原生应用实战:基于阿里云Serverless的API服务开发与部署
随着云计算的发展,Serverless架构日益流行。阿里云函数计算(Function Compute)作为Serverless服务,让开发者无需管理服务器即可运行代码,按需付费,简化开发运维流程。本文从零开始,介绍如何使用阿里云函数计算开发简单的API服务,并探讨其核心优势与最佳实践。通过Python示例,演示创建、部署及优化API的过程,涵盖环境准备、代码实现、性能优化和安全管理等内容,帮助读者快速上手Serverless开发。
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 的发展。
469 12
Flink CDC YAML:面向数据集成的 API 设计
百聆:集成Deepseek API及语音技术的开源AI语音对话助手,实时交互延迟低至800ms
百聆是一款开源的AI语音对话助手,结合ASR、VAD、LLM和TTS技术,提供低延迟、高质量的语音对话体验,适用于边缘设备和低资源环境。
1541 5
百聆:集成Deepseek API及语音技术的开源AI语音对话助手,实时交互延迟低至800ms
DeepSeek Engineer:集成 DeepSeek API 的开源 AI 编程助手,支持文件读取、编辑并生成结构化响应
DeepSeek Engineer 是一款开源AI编程助手,通过命令行界面处理用户对话并生成结构化JSON,支持文件操作和代码生成。
985 6
DeepSeek Engineer:集成 DeepSeek API 的开源 AI 编程助手,支持文件读取、编辑并生成结构化响应
Voice-Pro:开源AI音频处理工具,集成转录、翻译、TTS等一站式服务
Voice-Pro是一款开源的多功能音频处理工具,集成了语音转文字、文本转语音、实时翻译、YouTube视频下载和人声分离等多种功能。它支持超过100种语言,适用于教育、娱乐和商业等多个领域,为用户提供一站式的音频处理解决方案,极大地提高工作效率和音频处理的便捷性。
359 10
Voice-Pro:开源AI音频处理工具,集成转录、翻译、TTS等一站式服务

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等