У меня есть лямбда с триггером SQS. Когда в него попадают, приходит партия записей из SQS (обычно около 10 за раз, я думаю). Если я верну ошибочный код состояния из обработчика, все 10 сообщений будут повторены. Если я верну код успеха, все они будут удалены из очереди. Что делать, если одно из этих 10 сообщений не удалось, и я хочу повторить попытку только этого?
exports.handler = async (event) => {
for(const e of event.Records){
try {
let body = JSON.parse(e.body);
// do things
}
catch(e){
// one message failed, i want it to be retried
}
}
// returning this causes ALL messages in
// this batch to be removed from the queue
return {
statusCode: 200,
body: 'Finished.'
};
};
Нужно ли мне вручную добавлять эти сообщения обратно в очередь? Или я могу вернуть статус из моего обработчика, который указывает, что одно сообщение не удалось и его следует повторить?