4

如何从客户端应用程序订阅 AWS 事件总线事件,例如:NodeJS 应用程序、Angular 客户端或移动客户端应用程序?

2020 年 12 月,来自 AWS Marketing 的一封电子邮件介绍了使用事件驱动架构的优势。遵循文档和教程,很快我偶然发现找不到从客户端应用程序订阅此事件的方法。

电子邮件指出:

关注事件驱动架构的 4 个理由

您是否希望在没有延迟和依赖的情况下扩展和构建健壮的应用程序?我们分解了事件驱动架构的基础知识,它们是如何工作的,并向您展示入门的方法。了解事件驱动架构如何帮助您:

  • 独立扩展和失败 - 不再依赖
  • 敏捷开发 -没有自定义轮询代码
  • 轻松审计 - 使用您的事件路由器定义策略
  • 削减成本 - 停止支付连续投票

令人失望的是,没有将库集成到客户端代码中以订阅这些事件的示例。谷歌搜索不返回任何重要结果,并且节点的唯一当前库:@aws-sdk/client-eventbridge-node仅公开发送和销毁方法。

4

3 回答 3

5

无法直接订阅 Amazon EventBridge 总线,因为它不提供发布/订阅功能。为了在 EventBridge 中处理事件,您需要创建过滤匹配事件并将匹配事件发送到目标的事件规则。您可以在此列表中找到适用于 EventBridge 规则的所有目标:Amazon EventBridge 目标

这些目标之一可能是提供发布/订阅功能的 Amazon SNS 主题,即您的客户端应用程序可以订阅该主题以自动接收相应的事件。

乍一看这可能很复杂,但实现是严格遵循分离关注点的原则。它提供了简单的构建块(如乐高积木),您可以将它们组合在一起以创建真正松散耦合的架构。

此图显示了 Amazon Event Bridge 范围内的功能以及它如何与其他服务和应用程序通信。

于 2020-12-25T15:51:22.290 回答
2

允许您根据需要订阅的服务(通过 tcp 连接(例如 websocket)直接将订阅的消息传递给您的代码)是:

  • AppSync - 网络套接字
  • 物联网核心——websocket、mqtt
  • SQS - 长轮询
  • 卡夫卡

(从我的头顶)

因此,一个简单的无服务器解决方案可能是:

事件桥 —> SQS——> 你的代码

为此,我经常使用 AppSync。但是 eventbridge 也很酷。

于 2021-03-05T21:16:45.740 回答
1

如果您想避免轮询并且您不能/想要使用AWS Lambda,那么您可以解决问题并使用规则从 EventBridge 调用您的应用程序上的 api。

您可以在 EventBridge 中创建 API 目标:

API 目的地

于 2021-07-22T08:57:07.353 回答