Rob*_*uyl 2 amazon-sqs aws-sdk
我收到以下消息
UnhandledPromiseRejectionWarning:MissingParameter:请求必须包含参数DeleteMessageBatchRequestEntry.1.Id。
T我想我正在按照AWS-SDK/SQS 的文档进行操作
我正在使用这个代码
var params = {
Entries: _.map(_.uniqWith(data.Messages,d=>d.MessageId),d=>({
Id: d.MessageId,
ReceiptHandle: d.ReceiptHandle
})),
QueueUrl: xx.QueueUrl
};
await sqs.deleteMessageBatch(params).promise();
Run Code Online (Sandbox Code Playgroud)
这是发送时 params 的样子;如果你问我的话,看起来就像文档一样......
{
Entries: [
{
Id: "83ba1e18-someid",
ReceiptHandle: "AQEB79CDI1Q+blablabla"
}
]
QueueUrl: "https://sqs.us-west-2.amazonaws.com/somequeeuurl"
}
Run Code Online (Sandbox Code Playgroud)
我的系统:
aws-sdk: "^2.354.0",
MacOS - current
node 8.12.0
Run Code Online (Sandbox Code Playgroud)
\n\nUnhandledPromiseRejectionWarning:MissingParameter:请求必须包含参数DeleteMessageBatchRequestEntry.1.Id。
\n
我只是花了很长时间查看这个错误并调试我的代码。我最终发现的是,它似乎试图说DeleteMessageBatchRequestEntry请求 \xe2\x80\x93 中至少需要有一个元素,不能是 0。当我重构我们的代码并添加一项检查以使确保如果列表中没有条目我们就不会发出请求,这个问题就消失了。
您是否有可能在某些情况下实际发送以下内容?
\n{ \n Entries: []\n QueueUrl: "https://sqs.us-west-2.amazonaws.com/somequeeuurl"\n}\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
2946 次 |
| 最近记录: |