医院网站建设管理规范,超链接到网站怎么做视频,wordpress负载状态100%,aspnet网站开发技术简介#xff1a;事件源是事件驱动的基石#xff0c;如何获取更多事件源也是 EventBridge 一直在探索和尝试的方向。针对市场上其他云厂商和垂直领域的 Saas 服务#xff0c;EventBridge 发布了 HTTP Source 能力#xff0c;提供简单且易于集成的三方事件推送 #xff0c;帮…简介事件源是事件驱动的基石如何获取更多事件源也是 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 支持的三方集成包括 PrometheusZabbixSkywalkingGrafanaOpen-FalconCactiNagiosDynatraceSalesforceShopifyGitee 等 SaaS 应用。通过简单配置 Webhook 无需开发既可实现事件接收能力。
总结
本文重点介绍 EventBridge 的新特性HTTP Source 事件源。作为一款无服务器事件总线服务EventBridge 已经将阿里云云产品管控链路数据、消息产品业务数据整和到事件源生态中提高了上云用户业务集成的便捷性Open API 与多语言 sdk 的支持为客户自身业务接入 EventBridge 提供了便利。
在此基础之上HTTP Source 事件源更进一步以 Webhook 形式开放了针对了其他云厂商、SaaS 应用的集成能力无需代码改动仅需要简单配置即可完成 EventBridge 集成操作。
原文链接
本文为阿里云原创内容未经允许不得转载。