繁体   English   中英

AWS SQS 和 SNS 中的消息结构

[英]Message structure in AWS SQS and SNS

我有一个订阅到 SQS 队列q1的 SNS 主题t1 我有一个发布到t1的 NodeJS 进程p1 ,从q1订阅的进程p2 我还有一个直接写入q1的进程p3

假设当p2从队列中读取data时填充数据。 然后,虽然下面的代码片段使用p1作为队列的写入者,但我得到一个 JSON 解析器错误p3

for (var i = 0; i < data.Messages.length; i++) {
 var message = data.Messages[i];
 let messageBody = JSON.parse(message.Body)
 let payload = JSON.parse(messageBody.Message)

我可以处理来自p3工作的数据的唯一方法是没有JSON.parse(messageBody.Message)并直接处理messageBody 因此,如果写入者是 SNS 主题订阅或 SQS 写入者,队列中接收到的消息结构似乎是不同的。

您能否告知我是否可以拥有一个可以处理来自 SQS 的数据的 NodeJS 应用程序,而不管该队列中写入了什么?

不是 100% 确定这是否会解决您的所有问题,但作为第一步,至少您可能想要启用“原始消息传递”

https://docs.aws.amazon.com/sns/latest/dg/sns-large-payload-raw-message-delivery.html

这样,SNS 放入队列的消息不会添加任何额外的属性,因此应该匹配直接放入的消息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM