[英]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.