云函数如何在 EventBridge 设计零售业务中台?

2022-01-04 10:08:35 浏览数 (4)

笔者最近关注到,腾讯云以零售中台为例,基于EventBridge 提供了统一的事件投递规范,业务方产生的不同类型事件(如用户下单、商品入库、订单更新等)

通过 EB API 以相同规范进行投递,由 EB 进行事件的过滤、提取后,根据配置的不同路由规则,将对应事件投递给相应的处理目标,完成事件的自动化处理。在该场景下,EventBridge 完成了业务中台的基础能力,企业也可以基于 EB 提供的接口规范以及路由原则,将 EB 作为底层架构,完成更复杂的业务中台搭建,从而简化开发成本。

步骤一:绑定事件源:

EventBridge 目前支持三类事件源的投递:

  • 云服务事件源:

云服务产品产生的事件,如监控告警事件、云上操作审计事件等,该类事件默认投递至云服务事件集,由业务方主动投递,用户不可修改或关闭,可以在「事件总线控制台」--「云服务事件集」详情页面查看目前支持的所有云服务事件。

  • SaaS 事件源

基于鹊桥 iPaaS 实现,目前鹊桥 iPaaS 企业应用平台已完成与 Eventbridge 事件总线的对接,鹊桥 iPaaS 支持的 50 SaaS 应用均可实现到 EB 的投递,想了解更多可以扫码(文末)入群交流。

  • 自定义事件源

除了默认投递的事件外,EB 还支持自定义业务事件投递,您可以通过 Ckafka、TDMQ 等消息队列产品投递,API 网关 URL 回调,或者直接调用 API 接口等方式,自定义投递由业务方产生的事件信息。

对于零售中台架构,业务平台产生的事件为自定义事件,可通过调用接口或回调的方式,以统一规范投递给 EventBridge。

步骤二:配置路由规则

如何对收集到的不同业务来源事件进行分类处理,是中台系统需要关注的另一个问题,EventBridge 的规则过滤与筛选能力可以有效解决。基于 EB 标准事件格式,开发者可以自定义不同的字段匹配规则,来确定不同的事件需要被哪一个规则过滤,并进行简单的事件分析转换,实现海量数据分类高效处理。

步骤三:绑定推送目标

完成规则的配置后,业务方可以根据实际场景需要,将不同事件推送给指定的下游平台完成消费,实现相应业务逻辑,完成基本中台架构的搭建。

整体架构设计如图,从图上可以看出,当云服务器某台机器出现异常告警, CVM 会自动产生告警事件并主动推送给 EB,经过 EB 绑定的告警规则筛选后,完成到通知渠道的消息触达及时通知到用户,同时触发云函数,以调用 API 的方式完成硬盘快照的快速回滚,保证业务及时恢复。

03.

基本步骤

1. 登录云函数控制台新建云函数,通过调用 API 的方式,完成服务器故障后自动处理流程的函数代码编写

  • 云函数控制台:https://console.cloud.tencent.com/scf
  • 云服务器关机接口:https://cloud.tencent.com/document/product/213/15743
  • 快照回滚接口:https://cloud.tencent.com/document/product/362/15643

2. 登录 EventBridge 控制台,配置告警规则;

  • EventBridge 控制台:https://console.cloud.tencent.com/eb

3. 以「云服务器运行异常」事件告警配置为例,您可以选择指定的事件告警类型,也可以选择全部告警事件,详细事件匹配规则请参见 管理事件规则;

  • 管理事件规则:https://cloud.tencent.com/document/product/1359/56084

4. 配置推送目标

为了满足自动化处理和消息推送两部分能力,对于上述规则,我们需要同时配置消息推送和云函数两个投递目标

  • 消息推送:通过配置消息推送,将您的告警事件推送至指定的消息接收渠道,完成用户及时触达。
  • 云函数投递:触发方式选择「云函数(SCF)」--「已有函数」,选择刚刚已部署好的云函数进行绑定

5. 告警链路测试

配置完成后,回到事件集控制台,选择刚刚已绑定的事件集,单击发送事件,可以选择已绑定的事件规则模版,单击发送进行测试,如果同时收到了推送消息并自动进行回滚,即可确认您的业务故障自动化运维架构已完成搭建。

注:测试模版里只展示 data 字段里的内容,其它字段已固定,无法自定义修改。

0 人点赞