SQS 消息接收器中缺少 MessageAttributes 属性
Missing MessageAttributes property in SQS message receiver
我看到的都是这样的数据:
{
MessageId: 'c604c772-8468-4cd2-8f3e-9b430ed52d92',
ReceiptHandle: 'AQEBHyPYuNqFztvy9QNOHeLQg==',
MD5OfBody: '096c6509c8628bde267adde2b105f4e4',
Body: 'foobar'
}
当我进行此调用以从队列中读取时:
const conf = {
QueueUrl: 'https://sqs.us-west-2.amazonaws.com/920371/logging-q',
WaitTimeSeconds: 19, // max is 20 (off by one errors avoided!)
MaxNumberOfMessages: 9 // max is 10 (off by one errors avoided!)
};
sqs.receiveMessage(conf, cb);
但我在将消息放入队列时添加了 MessageAttributes:
sqs.sendMessageBatch({QueueUrl,条目:v}, cb);
条目是一个数组:
{
Id: uuid.v4(),
MessageBody: 'foobar',
MessageAttributes: {
logStream: {
StringValue: LOG_STREAM,
DataType: 'String'
},
logGroup: {
StringValue: LOG_GROUP,
DataType: 'String'
}
}
}
有人知道为什么当我从队列中读取时 MessageAttributes 没有显示,即使它们可能被推入队列?
在您的 receiveMessage
conf 中,您需要包含 MessageAttributeNames
并为其提供属性名称列表或 All
。看起来您正在使用 javascript,因此您需要查看 Javascript SDK 文档以了解 receiveMessage
https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SQS.html#receiveMessage-property
我看到的都是这样的数据:
{
MessageId: 'c604c772-8468-4cd2-8f3e-9b430ed52d92',
ReceiptHandle: 'AQEBHyPYuNqFztvy9QNOHeLQg==',
MD5OfBody: '096c6509c8628bde267adde2b105f4e4',
Body: 'foobar'
}
当我进行此调用以从队列中读取时:
const conf = {
QueueUrl: 'https://sqs.us-west-2.amazonaws.com/920371/logging-q',
WaitTimeSeconds: 19, // max is 20 (off by one errors avoided!)
MaxNumberOfMessages: 9 // max is 10 (off by one errors avoided!)
};
sqs.receiveMessage(conf, cb);
但我在将消息放入队列时添加了 MessageAttributes:
sqs.sendMessageBatch({QueueUrl,条目:v}, cb);
条目是一个数组:
{
Id: uuid.v4(),
MessageBody: 'foobar',
MessageAttributes: {
logStream: {
StringValue: LOG_STREAM,
DataType: 'String'
},
logGroup: {
StringValue: LOG_GROUP,
DataType: 'String'
}
}
}
有人知道为什么当我从队列中读取时 MessageAttributes 没有显示,即使它们可能被推入队列?
在您的 receiveMessage
conf 中,您需要包含 MessageAttributeNames
并为其提供属性名称列表或 All
。看起来您正在使用 javascript,因此您需要查看 Javascript SDK 文档以了解 receiveMessage
https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SQS.html#receiveMessage-property