Сообщения SQS остаются в полете, хотя они были обработаны lamdba - PullRequest
0 голосов
/ 21 ноября 2018

SQS сообщения успешно обрабатываются лямбдой.Вот код, который обрабатывает, а затем выполняет обратный вызов:

 exports.handler = function(event, context, callback) {
   handleSQSMessages(context,event, function () {
    const response = {
        statusCode: 200,
        body: JSON.stringify({
            message: 'SQS event processed.',
            input: event,
        }),
    };
    console.log ("OK DONE");
    callback(null, response);

function handleSQSMessages(context, messages, callback) {
 messages = messages.Records;
 if (messages && messages.length > 0) {
   messages.forEach(function(message) {
       console.log(message);
       //...

Я вижу, что cloudwatch печатает сообщение "OK DONE".Тем не менее, SQS помещает сообщения «в рейс» (и он остается в рейсе навсегда).Насколько я понимаю, после отправки успешного ответа сообщение будет автоматически удалено.Мой таймер видимости = 10 минут

1 Ответ

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

Кажется, вам не хватает некоторых закрывающих скобок / фигурных скобок.Вызывается ли обратный вызов обработчика в обратном вызове handleSQSMessages?Трудно сказать с отсутствующими скобками - но если нет, то это, вероятно, причина, по которой он терпит неудачу.

...