共计 2599 个字符,预计需要花费 7 分钟才能阅读完成。
download: 云原生利用架构设计与开发实战
备链:https://www.sisuoit.com/2803.html
引言
事件驱动架构(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”,创立实现。