Обработка ошибок потребителя очереди Lambda SQS с более чем 1 записью? - PullRequest
0 голосов
/ 01 декабря 2018

Легко, если я установлю Batch Size на 1, потому что если:

  • Lambda возвращает true, SQS считает это успешным и удаляет сообщение из очереди
  • Если Lambda сгенерирует или не сгенерируетвообще не возвращаюсь, SQS не удаляет сообщение

// example code
exports.handler = async (event) => {
  event.Records.forEach(record => {
    try {
      const body = JSON.parse(record.body);
      processMessage(body);
    } catch(err) {
      throw err;
    }
  });

  // if execution made this
  // far, everything is fine
  return {};
};


function processMessage(record) {
  // process single message

  if (somethingWentWrong) throw new Error('heck');
}

Но как только я добавлю более 1 сообщения в пакет, что намного эффективнее,Я не могу просто выбросить, потому что все другие успешные сообщения будут обработаны, но не удалены из очереди.

Как решить эту проблему (кроме того, что размер пакета не будет равен 1)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...