开发者学堂课程【EventBridge 入门课程 :EventBridge SaaS 集成解决方案(一)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/1220/detail/18277
EventBridge SaaS 集成解决方案
内容介绍
一、概括
二、EventBridge 介绍
三、Http Source 事件源概述
四、最佳实践
一、概括
第一讲为大家讲解了 EventBridge 诞生的背景以及一些基础概念。本讲主要讲解 EventBridge SaaS 应用集成的解决方案。本讲主要分为三个部分。第一部分对 EventBridge 再次进行简要的介绍,方便对 EventBridge 还不够熟悉的同学能够更好地理解分享的剩余部分。第二部分对集成 SaaS 应用的重要工具 Http Source 事件源进行介绍,让大家更好地理解 EventBridge 是如何集成 SaaS 应用的。最后一部分我会列举三个基于 EventBridge 的 SaaS 应用解决方案。
二、EventBridge 介绍
现在开始第一部分,为大家简单介绍阿里云的 EventBridge。
在谈 EventBridge之前,首先为大家介绍 EDA,全称事件驱动架构,它是一种以事件为纽带,将不同系统之间结有的异步架构设计模型,和传统的请求响应模式不同,EDA 强调系统发现事件,并根据事件作出必要响应。
整个业务流程是事件驱动的,事件的驱动流程天然地划分了各个应用系统之间的业务语义。用户也可以根据需求去设计事件以及针对事件需要做出响应。为了便于用户搭建局一低的用户系统,阿里云在2020年云栖大会上发布了云产品,是一款无服器电服,以标准化的协议连接云产品和云应用,提供中心化的时间治理和驱动能力。
首先熟悉几个名词,便于大家接下来更好地理解 EventBridge。第一个是事件。事件指状态变化的数据记录。当然也可以很宽泛。任何基础组件的状态的变化、只为的浮动都可以看作事件。
EventBridge 采用云原生事件标准 Claut Events 来描述事件,Claut Events 作为云原生事件的事件标准,可以保证 EventBridge 使用时的通用性。用户在使用时也不用担心被厂商锁定。第二个名词是事件总线。事件总线负责接收来自事件源的事件,是 EventBridge 中事件的载体。目前 EventBridge 是两种事件总线,分别是用于接收阿里云官方事件源的云服务事件总线和用于接收自定义事件的事件总线。第三个是事件源,顾名思义,事件源就是事件的来源。目前 EventBridge 是的事件源类型,也分为阿里云官方事件源和自定义事件源两类。
在第二部分,要讲的 Http Source 事件源就属于自定义事件源。接下来是事件规则,事件规则有两个能力,一个是过滤,另外一个是转换。过滤功能可以帮助用户选择某些符合要求的事件投递到事件目标。而转换则允许对事件内容进行进一步加工,将事件加工为事件目标满足的格式。最后一个名词事件目标,顾名思义是指事件的处理终端,负责消费世界。下面这张图是 EventBridge 事件流程的一张概述图,
可以看到事件由事件源发布到事件总线,经过事件规则过滤和转换之后,最终投递到事件目标。上面的 schema 指的是事件的结构。用户可以自定义 schema ,也可以通过过滤事件对导出事件结构,从而得到 schema。当然,这不是今天要讲的重点内容。下面开始本讲的第二部分,Http Source 事件源。
三、Http Source 事件源概述
用户的业务如何将事件投递到 EventBridge?如果用户的事件是阿里云云产品事件,比如 ecs 重启或创建 ecs。EventBridge 早就已经做好了集成,用户仅需在控制台上选择云产品以及相应事件,比如 ecs 快照生成事件,EventBridge 就开启监听和投递。如果用户自己的应用想要投递事件到事件总线呢?
EventBridge 提供完善的 SDK 和 OPI。用户可以参考官方文档,按照说明使用,也可以完成发布。如果是用户使用某些 SaaS 应用呢?比如代码仓库或者数据化工发呢?这个时候就可以使用 EventBridge 提供的 Http Source事件源来完成事件的发布工作。具体而言,Http Source 事件源是 EventBridge 支持的事件源的一种。它以 web hook 形式暴露了发布之间的接口。用户可以在有 U R 回调的场景中配置 Http Source 事件源。或者直接使用最简单的 Http 客户端完成事件的发布。Http Source 事件源支持 http 与 HTPS。网络上,支持工网与 APC。这样就方便用户将其集成到各类应用当中,因为接触时候没有需求使用客户端。仅仅需要保证应用可以访问到对应的 web hook 就可以了。这样就使得接入过程变得很简单和高效。Http Source 事件源也支持安全校验。目前有13种安全校验类型。第一个是请求方法。用户在控制台上设置合法的 Http 需求方法,比如说get post,当选求方法不满足配置规则的时候,事件会被过滤掉。另一个叫源 IT。如果HTTP请求的原IT 不在用户设置的 IP 段内。那么这个请求也是会被过滤掉的。最后一个就是请求来源域名,也就是 HTTP 请求的 referce。当请求的 referce 跟用户配置的不相符的时候,这个请求也会被过滤掉,不会投递到事件总线。就像下面这张图所示,
不仅是啥应用。只要去 web hook 能力,包括阿里云云产品,比如说云监控 CM S 和日志服务 SS。其他厂商,比如腾讯云,华为云都可以接入到 EventBridge 生态中来。EventBridge 会按照一定规则,将 HTTP 请求转化为 event 的定义的事件格式。用户可以使用 EventBridge 事件规则提供的过滤和转化能力。来定制最终投递到事件目标的内容格式。
那么 EventBridge 是如何将请求转化为事件呢?为了保证 http 信息的完整性,EventBridge 会将 http 请求的请求头和请求正文,置于事件 data 字段中的 head body部分。用户在后续定制事件规则的时候,按照需要去提取部相应部分内容就可以了。下面,开始讲本次课程的第三部分,基于 EventBridge 构建 SaaS 应用的最佳实践。在这部分,会给大家举几个例子。