简介:事件源是事件驱动的基石,如何获取更多事件源也是 EventBridge 始终在摸索和尝试的方向。针对市场上其余云厂商和垂直畛域的 Saas 服务,EventBridge 公布了 HTTP Source 能力,提供简略且易于集成的三方事件推送,帮忙客户更加高效、便捷地实现业务上云。
作者:昶风
引言
事件驱动架构(EDA)是一种以事件为纽带,将不同零碎进行解耦的异步架构设计模型。在 EDA 中,事件驱动的运行流程人造地划分了各个系统的业务语义,用户能够依据需要对事件与针对此事件做出的响应灵便定制,这使得基于 EDA 架构能够不便地构建出高伸缩性的利用。据 Daitan Group 的调研报告,早在 2017 年,例如 UBER、Deliveroo、Monzo 等公司就曾经采纳了 EDA 去设计他们的零碎。
为了便于用户更加轻松地开发以 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 事件源便是一种典型的接入形式。
具体而言,HTTP Source 事件源是 EventBridge 反对的事件源的一种,它以 Webhook 模式裸露了公布事件的 HTTP 申请地址,用户能够在有 URL 回调的场景配置 HTTP Source 事件源,或者间接应用最简略的 HTTP 客户端来实现事件的公布。HTTP Source 事件源提供了反对 HTTP 与 HTTPS,公网与阿里云 VPC 等不同申请形式、不同网络环境的 Webhook URL,便于用户将其集成到各类利用中。接入时无需应用客户端,仅需保障利用能够拜访到对应 Webhook URL 即可,这使得接入过程变得简略而高效。
在将 HTTP 申请转换为 CloudEvent 的时候,EventBridge 会将申请的头部和音讯体局部置于 CloudEvent 字段中,其余字段会根据用户 EventBridge 资源属性以及零碎默认规定进行填充。用户能够在事件规定中,对所需的内容进行过滤、提取,最终依照模板拼装成所需的音讯内容投递给事件指标。
HTTP Source 事件源目前反对 3 种类型的平安设置,别离是申请办法、源 IP 以及申请起源域名。
申请办法:用户能够配置以后申请此事件源时非法的 HTTP 申请办法,如果办法类型不满足配置规定,申请将被过滤,不会投递到事件总线。
源 IP:用户能够设置容许拜访此事件源时非法的源 IP(反对 IP 段和 IP),当申请源 IP 不在设置的范畴内时,申请将被过滤,不会投递到事件总线。
申请起源域名:即 HTTP 申请的 referer 字段,当申请的 referer 与用户配置不相符时,申请被过滤,不会投递到事件总线。
抛砖引玉,上面就介绍如何应用 HTTP Source 来构建 SaaS 利用集成的最佳实际,帮忙大家疾速上手 SaaS 集成计划。
SaaS 集成最佳实际
钉钉监控 GitHub 代码推送事件
GitHub 提供了 Webhook 性能,代码仓库在产生某些特定操作(push、fork 等)时,能够通过回调来帮忙用户实现特定性能。针对多人开发的我的项目,将 GitHub 事件推送到特定钉钉群能够帮忙成员无效关注代码变更,进步协同效率。
本节咱们展现如何通过钉钉监控 GitHub 代码推送事件的最佳实际,次要蕴含以下几个步骤:
- 创立一个钉钉机器人;
- 创立 EventBridge 相干资源:事件总线、事件源(HTTP Source 类型)、事件规定、事件指标(钉钉);
- 创立自定义事件总线;
- 抉择 GitHub 代码仓库创立 Webhook;
- 向 GitHub 代码仓库推送代码变更;
- 钉钉群接管此次代码推送相干信息。
1)创立钉钉机器人
参考钉钉官网文档[1],创立一个群机器人。创立群机器人时,平安设置请勾选“加签”并妥善保存密钥和稍后生成的机器人 Webhook 地址。
2)创立 EventBridge 相干资源
创立 EventBus 事件总线
创立事件源。事件源配置实现之后,点击跳过,咱们接下来会专门配置事件规定与指标。
创立实现后,进入事件源详情页,保留刚刚生成的 Webhook URL。
在 EventBridge 控制台页面点击进入刚刚创立的 EventBus 详情页,在左侧一栏中“事件规定”抉择“创立规定”。
创立工夫指标。抉择钉钉,并将钉钉机器人的 Webhook 地址和密钥填入,推送内容侧能够依照需要设计。
咱们填写模板变量为:
{“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”,创立实现。
4)向 GitHub 代码仓库推送代码变更
本地仓库做肯定变更,commit 后推送 GitHub。
5)钉钉群接管此次代码推送相干信息
异步生产监控报警信息
业务上存在异步生产报警信息的场景,例如报警内容备份,依据报警频率自适应调整报警阈值等。而且对于多云业务的用户,如何将跨云服务的报警信息整合起来也是一个麻烦的问题。依靠 HTTP Source,用户能够将不同云厂商(腾讯云、华为云等)、不同监控产品(Grafana、Zabbix、Nagios 等)对立集成到 EventBridge 平台,以便于实现对报警信息的异步生产。
本节咱们介绍如何应用 EventBridge 集成 Grafana,实现异步生产监控报警信息。Grafana 是一款开源数据可视化工具,也同时具备监控报警性能,具体应用能够参阅 Grafana 官网文档[2]。本节次要蕴含以下步骤:
- 创立 MNS 队列;
- 创立 EventBridge 相干资源;
- Grafana 上配置 Webhook;
- 测试接管后果。
创立 MNS 队列
在 MNS 控制台,抉择“队列列表 - 创立队列”。
创立 EventBridge 相干资源
同上文所述,这里仅示例创立事件指标时相干配置。
Grafana 上配置 Webhook
点击 Grafana 控制台左侧“Alerting-Notification channels”,抉择“Add channel”。
在“type”一栏中抉择“Webhook”,url 填写 HTTP Source 事件源的 Webhook 地址,点击下方“Test”。
测试接管后果
登陆 MNS 控制台,进入队列详情页,点击页面右上角“收发音讯”,能够看到 MNS 曾经接管到刚刚 Grafana 发送的音讯。
点击对应音讯详情能够看到音讯内容,阐明音讯曾经被胜利生产。
更多集成
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 集成操作。
原文链接
本文为阿里云原创内容,未经容许不得转载。