基于 EventBridge 构建 SaaS 应用集成方案

简介: 事件源是事件驱动的基石,如何获取更多事件源也是 EventBridge 一直在探索和尝试的方向。针对市场上其他云厂商和垂直领域的 Saas 服务,EventBridge 发布了 HTTP Source 能力,提供简单且易于集成的三方事件推送 ,帮助客户更加高效、便捷地实现业务上云。

作者:昶风


引言


事件驱动架构(EDA)是一种以事件为纽带,将不同系统进行解耦的异步架构设计模型。在 EDA 中,事件驱动的运行流程天然地划分了各个系统的业务语义,用户可以根据需求对事件与针对此事件做出的响应灵活定制,这使得基于 EDA 架构可以方便地构建出高伸缩性的应用。据 Daitan Group 的调研报告,早在 2017 年,例如 UBER、Deliveroo、Monzo 等公司就已经采用了 EDA 去设计他们的系统。


640.png


为了便于用户更加轻松地开发以 EDA 为架构的应用,在 2020 年云栖大会上,阿里云正式推出了 EventBridge。EventBridge 是一款无服务器事件总线服务,能够以标准化的 CloudEvents 1.0 协议在应用之间路由事件。目前,EventBridge 已经集成了众多成熟的阿里云产品,用户可以低代码甚至零代码完成各个阿里云产品和应用之间的打通,轻松高效地构建分布式事件驱动架构。


事件源是事件驱动的基石,如何获取更多事件源也是 EventBridge 一直在探索和尝试的方向。针对市场上其他云厂商和垂直领域的 Saas 服务,EventBridge 发布了 HTTP Source 能力,提供简单且易于集成的三方事件推送 ,帮助客户更加高效、便捷地实现业务上云。


HTTP Source 概述


接入 EventBridge 应用有多种情况:用户自定义应用、阿里云服务、其他云厂商服务或者其他 SaaS 产品。


  • 对于用户自定义应用,用户可以使用 EventBridge 官方的 API 接口、多语言客户端以及 CloudEvents 社区的开源客户端来完成接入。


  • 对于阿里云的云产品,EventBridge 原生支持,用户可以在默认事件总线中选择对应的云产品与其相关的触发事件。


  • 而对于其他云厂商、SaaS 产品,EventBridge 同样也提供便捷的接入方式便于用户进行集成,HTTP Source 事件源便是一种典型的接入方式。


2.png


具体而言,HTTP Source 事件源是 EventBridge 支持的事件源的一种,它以 Webhook 形式暴露了发布事件的 HTTP 请求地址,用户可以在有 URL 回调的场景配置 HTTP Source 事件源,或者直接使用最简单的 HTTP 客户端来完成事件的发布。HTTP Source 事件源提供了支持 HTTP 与 HTTPS,公网与阿里云 VPC 等不同请求方式、不同网络环境的 Webhook URL,便于用户将其集成到各类应用中。接入时无需使用客户端,仅需保证应用可以访问到对应 Webhook URL 即可,这使得接入过程变得简单而高效。


在将 HTTP 请求转换为 CloudEvent 的时候,EventBridge 会将请求的头部和消息体部分置于 CloudEvent 字段中,其余字段会依据用户 EventBridge 资源属性以及系统默认规则进行填充。用户可以在事件规则中,对所需的内容进行过滤、提取,最终按照模板拼装成所需的消息内容投递给事件目标。


3.png


HTTP Source 事件源目前支持 3 种类型的安全设置,分别是请求方法、源 IP 以及请求来源域名。


  • 请求方法:用户可以配置当前请求此事件源时合法的 HTTP 请求方法,如果方法类型不满足配置规则,请求将被过滤,不会投递到事件总线。


  • 源 IP:用户可以设置允许访问此事件源时合法的源 IP(支持 IP 段和 IP),当请求源 IP 不在设置的范围内时,请求将被过滤,不会投递到事件总线。


  • 请求来源域名:即 HTTP 请求的 referer 字段,当请求的 referer 与用户配置不相符时,请求被过滤,不会投递到事件总线。


抛砖引玉,下面就介绍如何使用 HTTP Source 来构建 SaaS 应用集成的最佳实践,帮助大家快速上手 SaaS 集成方案。


SaaS 集成最佳实践


钉钉监控 GitHub 代码推送事件


GitHub 提供了 Webhook 功能,代码仓库在发生某些特定操作(push、fork等)时,可以通过回调来帮助用户完成特定功能。针对多人开发的项目,将 GitHub 事件推送到特定钉钉群可以帮助成员有效关注代码变更,提高协同效率。
image.gif

本节我们展示如何通过钉钉监控 GitHub 代码推送事件的最佳实践,主要包含以下几个步骤:


  • 创建一个钉钉机器人;
  • 创建 EventBridge 相关资源:事件总线、事件源(HTTP Source 类型)、事件规则、事件目标(钉钉);
  • 创建自定义事件总线;
  • 选择 GitHub 代码仓库创建 Webhook;
  • 向 GitHub 代码仓库推送代码变更;
  • 钉钉群接收此次代码推送相关信息。


1)创建钉钉机器人


参考钉钉官方文档[1],创建一个群机器人。创建群机器人时,安全设置请勾选“加签”并妥善保管密钥和稍后生成的机器人 Webhook 地址。


2)创建 EventBridge 相关资源


创建 EventBus 事件总线

5.png创建事件源。事件源配置完成之后,点击跳过,我们接下来会专门配置事件规则与目标。
66.png创建完成后,进入事件源详情页,保存刚刚生成的 Webhook URL。


77.png在 EventBridge 控制台页面点击进入刚刚创建的 EventBus 详情页,在左侧一栏中“事件规则”选择“创建规则”。


88.png

99.png



创建时间目标。选择钉钉,并将钉钉机器人的 Webhook 地址和密钥填入,推送内容侧可以按照需求设计。


100.png

image.gif

我们填写模板变量为:

{"repo":"$.data.body.repository.full_name","branch":"$.data.body.ref","pusher":"$.data.body.pusher.name"}


模板为:

{"msgtype": "text","text": {"content": "Github push event is triggered. repository: ${repo}, git reference: ${branch}, pusher: ${pusher}." } }


3)在 GitHub 代码仓库创建 Webhook


登陆 GitHub,在 GitHub 代码仓库“setting”中选择左侧“Webhooks”,选择新建 Webhook。


在创建 Webhook 的配置项中填入 HTTP Source 事件源的 Webhook 地址,Content type 部分选择“application/json”,下方触发事件类型选择“Just the push event.”,随后点击“Add Webhook”,创建完成。


111.png

122.png


4)向 GitHub 代码仓库推送代码变更


本地仓库做一定变更,commit 后推送 GitHub。


5)钉钉群接收此次代码推送相关信息


133.png


异步消费监控报警信息


业务上存在异步消费报警信息的场景,例如报警内容备份,根据报警频率自适应调整报警阈值等。而且对于多云业务的用户,如何将跨云服务的报警信息整合起来也是一个麻烦的问题。依托 HTTP Source,用户可以将不同云厂商(腾讯云、华为云等)、不同监控产品(Grafana、Zabbix、Nagios等)统一集成到 EventBridge 平台,以便于实现对报警信息的异步消费。

14.png


本节我们介绍如何使用 EventBridge 集成 Grafana,实现异步消费监控报警信息。Grafana 是一款开源数据可视化工具,也同时具有监控报警功能,具体使用可以参阅Grafana 官方文档[2]。本节主要包含以下步骤:


  • 创建 MNS 队列;
  • 创建 EventBridge 相关资源;
  • Grafana 上配置 Webhook;
  • 测试接收结果。


创建 MNS 队列


在 MNS 控制台,选择“队列列表-创建队列”。


15.png

创建 EventBridge 相关资源


同上文所述,这里仅示例创建事件目标时相关配置。


16.png


Grafana 上配置 Webhook


点击 Grafana 控制台左侧“Alerting-Notification channels”,选择“Add channel”。


17.png


在“type”一栏中选择“Webhook”,url 填写 HTTP Source 事件源的 Webhook 地址,点击下方“Test”。


18.png


测试接收结果


登陆 MNS 控制台,进入队列详情页,点击页面右上角“收发消息”,可以看到 MNS 已经接收到刚刚 Grafana 发送的消息。

212121.png

19.png



点击对应消息详情可以看到消息内容,说明消息已经被成功消费。


20.png


更多集成



HTTP Source 支持的三方集成包括 Prometheus,Zabbix,Skywalking,Grafana,Open-Falcon,Cacti,Nagios,Dynatrace,Salesforce,Shopify,Gitee 等 SaaS 应用。通过简单配置 Webhook 无需开发既可实现事件接收能力。


总结


本文重点介绍 EventBridge 的新特性:HTTP Source 事件源。作为一款无服务器事件总线服务,EventBridge 已经将阿里云云产品管控链路数据、消息产品业务数据整和到事件源生态中,提高了上云用户业务集成的便捷性,Open API 与多语言 sdk 的支持,为客户自身业务接入 EventBridge 提供了便利。
在此基础之上,HTTP Source 事件源更进一步,以 Webhook 形式开放了针对了其他云厂商、SaaS 应用的集成能力,无需代码改动,仅需要简单配置即可完成 EventBridge 集成操作。


相关链接


[1] 钉钉官方文档https://open.dingtalk.com/document/group/custom-robot-access


[2] Grafana 官方文档https://grafana.com/docs/

相关文章
|
11月前
|
人工智能 BI API
Dify-Plus:企业级AI管理核弹!开源方案吊打SaaS,额度+密钥+鉴权系统全面集成
Dify-Plus 是基于 Dify 二次开发的企业级增强版项目,新增用户额度、密钥管理、Web 登录鉴权等功能,优化权限管理,适合企业场景使用。
1683 3
Dify-Plus:企业级AI管理核弹!开源方案吊打SaaS,额度+密钥+鉴权系统全面集成
|
JavaScript 调度
Vue事件总线(EventBus)使用指南:详细解析与实战应用
Vue事件总线(EventBus)使用指南:详细解析与实战应用
804 1
|
人工智能 API 网络安全
使用SaaS化的Aurora应用快速搭建私人ChatGPT助手
Aurora是一个带UI且免费的GPT私人聊天助手,可切换GPT-3.5,4,4o等常用版本。用户可通过部署Aurora,快速打造自己专属的AI助手。阿里云计算巢已将Aurora打包为SaaS应用,您无需下载代码或安装复杂依赖,也无需连接国外VPN,仅需填写5个参数并等待5分钟,即可通过国内网络快速搭建私人聊天助手,非常适合非技术人员。部署前需确保已开通阿里云账号且余额充足。
|
存储 前端开发 数据库
一文搞懂SaaS应用架构:应用服务、应用结构、应用交互设计
【10月更文挑战第21天】本文介绍了 SaaS 应用服务的多租户服务、安全服务和更新与维护服务,以及 SaaS 应用的前后端结构和交互设计。多租户服务涉及数据隔离和资源分配;安全服务包括身份认证与授权及数据安全;更新与维护服务涵盖版本管理和技术支持。前端结构关注用户界面设计和前端技术选型;后端结构则涉及微服务架构和数据库管理。交互设计强调租户与应用的交互和应用内部模块间的交互。
1378 0
|
弹性计算 JSON 监控
EventBridge:构建SaaS应用集成的桥梁,让数据流动成为一场精彩的交响乐!
【8月更文挑战第8天】在云计算时代,SaaS应用因灵活性和可扩展性备受青睐,但多应用环境下的数据共享成为挑战。Amazon EventBridge作为一款无服务器事件总线服务,支持应用程序、SaaS应用及AWS服务间的事件驱动交互。它简化了事件产生、路由与处理流程,支持自定义与内置事件,实现应用间松耦合集成,提升系统可维护性和扩展性。通过定义业务相关事件、创建事件模式及规则,可轻松配置目标动作(如Lambda函数),实现如新订单触发CRM更新等场景。EventBridge提供高效灵活的集成方式,有助于提高应用响应性和可扩展性,成为云架构师不可或缺的技能之一。
306 7
|
消息中间件 运维 前端开发
java云his系统源码 B/S版+saas智慧医院云his系统源码 二甲医院应用多年 运行稳定
Java云HIS系统,SaaS模式,适用于二甲医院,稳定运行多年。包括B/S版电子病历,支持四级标准,具有自主知识产权。系统涵盖挂号、收费、病历、药物管理、统计报表、综合维护及运营运维功能。前端使用Angular+Nginx,后端基于Java+Spring系列,数据库为MySQL+MyCat,缓存Redis+J2Cache,集成RabbitMQ、XxlJob等。电子病历系统支持在线创建、管理和打印,采用SpringBoot、Mybatis-Plus等技术,提供一体化解决方案。系统优势在于模板化、配置化设计,便于使用和扩展。
291 1
java云his系统源码 B/S版+saas智慧医院云his系统源码  二甲医院应用多年 运行稳定
|
Web App开发 云安全 监控
企业SaaS应用加速网络场景最佳实践
企业分支通过SAG接入阿里云SDWAN网络,企业本地员工能够通过阿里云SDWAN应用加速线路实现加速访问SaaS服务,目前方案只支持office365、salesforce、ZOOM,后续会考虑加速逐步增加其他三方应用。
766 0
企业SaaS应用加速网络场景最佳实践
|
消息中间件 监控 Kubernetes
基于EventBridge HTTP Source构建SaaS应用集成的最佳实践
本文将介绍基于EventBridge HTTP Source构建SaaS应用集成的最佳实践。
477 0
基于EventBridge HTTP Source构建SaaS应用集成的最佳实践
|
消息中间件 SQL 关系型数据库
融合数据库生态:利用EventBridge构建CDC应用
本文介绍了CDC的一些概念、CDC在EventBridge上的应用以及若干最佳实践场景。
556 0