亚马逊网络服务

通过带有多目标的EventBridge发送和接收事件

Istock 1303320175

在这个上下文中,我们将展示如何使用自定义规则发送事件,以及如何通过添加目标检索事件。这里我添加了两个目标,一个是简单的发布/订阅实现亚马逊SNS作为我们的出版服务,Amazon SQS作为订阅者并监视成功事件日志AWS监测EVENTBRIDGE

EventBridge是什么?

亚马逊EventBridge是一个serverless事件总线这使得将应用程序与来自各种来源的数据连接起来更加容易。这些事件源可以是自定义应用程序、AWS服务和合作伙伴SaaS应用程序。

它提供了一种灵活的过滤方式,允许将事件发布到事件总线,然后根据目标路由规则将符合条件的事件发送到配置的目标应用程序或服务。

步骤1:创建事件:

创建在EventBridge控制台中创建一个新的事件总线,并将其命名为test-event-bus

步骤2:创建自定义规则:

在EventBridge主页上,选择规则。

  • 从事件总线下拉菜单中选择test-event-bus
  • 点击创建规则命名为sample-eventBridge-rule

步骤3:在“定义模式”下

  • 选择事件模式
  • 在“事件匹配模式”下,选择定制模式并添加您的自定义模式。

定义

基本上,规则会检查我们的事件数据。source, detail-type, detail作为事件模式中的三个参数,它们将是常量。如果匹配,那么只有规则会通过。

这里我根据“杰克和吉姆的详细信息(我们的事件消息)。如果我输入Jack/Jim,消息就会通过。如果我们给出任何新值而不是自定义模式,那么将创建请求事件。但我们无法在SNS、SQS和CloudWatch日志中监控该故障事件。

步骤4:创建目标:

选择目标,选择当EventBridge检测到所选类型的事件时要执行的AWS服务。

我们可以为一条规则创建25个目标。这里我使用了两个目标:

  • 选择target为CloudWatch日志组,创建日志组为sample-eventBridge-log
  • 选择目标为SNS主题,选择SNS主题名称为test-eventBridge-topic

目标监测:

目标云

SNS的目标:

亚马逊网络服务-避免呼叫中心停机:计划升级到亚马逊连接
避免呼叫中心停机:计划升级到Amazon Connect

了解升级呼叫中心时最常见的六个陷阱,以及Amazon Connect如何帮助您避免这些陷阱。

得到指导

目标Sns

在SNS上我有目标转换输入消息根据我的逻辑为输入路径和模板。如下所示,第一部分为Input路径,从事件有效负载中提取所需的数据值。第二部分是Input模板,在其中通过合并前面提取的值来创建传出事件数据。这里需要注意的一点是,传出的事件数据不需要是JSON!

变压器

步骤5:发送事件:

我用gradle项目创建了一个简单的EventBridge应用程序。

Prjt度高

依赖关系:

实现集团:“software.amazon.awssdk”名称:“eventbridge”版本:“2.16.101”

在eventbridgeecontroller中,我们有两个api调用,一个是发送事件到eventbridge,第二个是检索规则从一个事件。最后添加了一个SQS监听器,用于使用规则中SNS目标触发事件的消息。我从SNS主题订阅了这个队列。当事件成功通过规则时,将发生发布/订阅消息。

控制器

在服务类PutEventsRequest行动发送多个事件到EventBridge的单个请求。

服务

步骤6:测试事件:

当地的

当地的

从AWS控制台:

Aws控制台

从AWS控制台和Postman触发事件输出。AWS SQS仅用于突出显示的成功消息。如果它不满足规则,则可以使用id创建事件,但不会从SQS中消费如下截图所示的第二次登录。

本地日志

CloudWatch监控成功日志:

Cloudwatch日志

结论:

本文简要介绍了EventBridge,主要关注事件路由规则配置。如果使用得当,它当然可以为整个事件摄取和传递机制带来更多的通用性,我们可以从Amazon EventBridge中受益。请看我的GitHub回购对于应用程序的完整实现,请随意为回购做出贡献。

我希望我在这里分享的细节对你有用。在那之前,快乐事件

关于作者

更多来自作者

留下一个回复

这个网站使用Akismet来减少垃圾邮件。了解如何处理您的评论数据

订阅每周博客文摘:

报名