使用 AWS Lambda 观看 SNS 主题并通过 websocket 交付?

Posted

技术标签:

【中文标题】使用 AWS Lambda 观看 SNS 主题并通过 websocket 交付?【英文标题】:Using AWS Lambda to watch SNS topic and deliver by websocket? 【发布时间】:2018-04-10 12:35:35 【问题描述】:

出于测试/调试目的,我将创建一个网络应用程序来模拟我们系统中第 3 方参与者之一的功能。它应该能够发布和订阅在 AWS SNS 服务上发送的消息。

我正计划制作一个 ReactJS Web 应用程序,该应用程序调用在 AWS Lambda 中创建的 API。发送消息应该没问题,在应用程序中有一些按钮,调用将 SNS 消息发布到主题的 Lambda。

但是监控发送到我想观看的相关主题的消息呢?我正在考虑使用可以接收消息的 websocket。我知道我可以使用 SNS 消息触发 Lambda,但是如何让 lambda 将这些消息传递到 websocket?如果没有运行永久服务器会话,这可能吗?我应该与 AWS 工具箱中的其他东西结合使用吗?

【问题讨论】:

我最终在网络应用程序中使用了 Amplify javascript API,然后直接从那里调用 SQS 和 SNS API。后端由基于 node.js 的 lambdas 组成,这些 lambdas 订阅各种 SNS 主题并将命令发送到适当的 SQS 队列。 【参考方案1】:

当我最初写这个答案时,对 Lambda 的 websocket 支持不可用,但现在是:https://aws.amazon.com/blogs/compute/announcing-websocket-apis-in-amazon-api-gateway/

【讨论】:

【参考方案2】:

我也在寻找完全相同的东西,但不幸的是 aws sns 没有 websocket 支持。 但我遇到了一个非常有趣的博客。所以他所做的是使用支持 websockets 和 pub-sub 的 AWS IoT。你可以看看here

编辑: AWS API Gateway 提供了以无服务器方式管理 Websocket 的功能。这是一个快速入门指南API Gateway Websockets

【讨论】:

以上是关于使用 AWS Lambda 观看 SNS 主题并通过 websocket 交付?的主要内容,如果未能解决你的问题,请参考以下文章

AWS Eventbridge 通知无法使用 SNS 主题

使用AWS Lambda从AWS SNS读取时修改JSON消息

使用 AWS Lambda 从 AWS SNS 读取时修改 JSON 消息

javascript CloudWatch到AWS Lambda到Slack Channel Alerts和Charts。通过SNS主题通过Lambda函数将CloudWatch警报发布到Slack通

AWS - 在 SNS 订阅或 Lambda 函数上设置死信队列有啥区别?

AWS Inspector 的 AWS CloudFormation 模板能否添加 SNS 主题