Проблема AWS-SDK с deleteMessageBatch, сообщающая мне, что MissingParameter отсутствует, но я не - PullRequest
0 голосов
/ 30 ноября 2018

Я получаю следующее сообщение

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();

Это то, что paramsпохоже на момент отправки;выглядит так же, как документы, если вы спросите меня ...

{ 
    Entries: [
      {
        Id: "83ba1e18-someid", 
        ReceiptHandle: "AQEB79CDI1Q+blablabla"
      }
    ]
    QueueUrl: "https://sqs.us-west-2.amazonaws.com/somequeeuurl"
}

Моя система:

aws-sdk: "^2.354.0",
MacOS - current
node 8.12.0

1 Ответ

0 голосов
/ 06 декабря 2018

Документация фактически указывает, что входные данные должны иметь пронумерованную карту, а не массив для Entries.

{ 
    Entries: {
        1 : {
            Id: "83ba1e18-someid", 
            ReceiptHandle: "AQEB79CDI1Q+blablabla"
        },
        2 : {
            Id: "c0ffeeba11ad-someid", 
            ReceiptHandle: "cdgjiib4674"
        }
    }
   QueueUrl: "https://sqs.us-west-2.amazonaws.com/somequeeuurl"
}
...