gpt4 book ai didi

node.js - sqs 在接收消息时没有给我 MessageAttributes

转载 作者:太空宇宙 更新时间:2023-11-03 23:00:43 25 4
gpt4 key购买 nike

我编写了以下 API 来接收消息:

app.get('/receive', function(req, res) {
var params = {
QueueUrl: queueUrl,
VisibilityTimeout: 600
};

sqs.receiveMessage(params, function(err, data) {
if (err) {
res.send(err);
} else {
console.log('data is ' + JSON.stringify(data));
res.send(data);
}
});
});

我得到的回复如下:

{
"ResponseMetadata": {
"RequestId": "id"
},
"Messages": [
{
"MessageId": "id",
"ReceiptHandle": "handle",
"MD5OfBody": "body",
"Body": "body"
}
]
}

API发送消息格式如下所示:

 let params = {
MessageBody: object,
QueueUrl: process.env.queueUrl,
MessageAttributes:{
"Title":{
DataType:'String',
StringValue:'Item Id Array',
}
},
DelaySeconds: 0
}
sqs.send(params, (err, data) => {
console.log('------------the send message data is------------',err,data);
});

最佳答案

您必须告诉 SQS 您希望在传递给 receiveMessage 函数的参数中接收哪些属性。

因此,在您的情况下,/receive 路由中的 params 定义可能如下所示:

var params = {
QueueUrl: queueUrl,
VisibilityTimeout: 600,
MessageAttributeNames: ["All"],
};

查看以下链接以获取更多信息:

  1. JavaScript SQS Example
  2. AWS JavaScript SDK doc 中的“调用 receiveMessage 操作”示例
  3. AWS SQS API doc 中的“MessageAttributeName.N”参数

关于node.js - sqs 在接收消息时没有给我 MessageAttributes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48927554/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com