AWS - параллелизм SQS - PullRequest
       5

AWS - параллелизм SQS

0 голосов
/ 10 марта 2020

небольшой вопрос о параллелизме сообщений SQS.

сценарий :
я создал лямбду с 3-минутным таймаутом.
эта лямбда вызывается службой SQS (с настройкой по умолчанию) ,

когда SQS запускает мою лямбду, он ждет X секунды (менее 3 минут).
после ожидания он снова запускает ту же лямбду.

Теперь у меня две лямбды одновременно.

для этого случая, в конце - lambda_1 не удалось, а lambda_2 успешно.

вопрос :
сообщение SQS удаляется из очереди?

lambda, который Успешно удаляет сообщение из очереди.
lambda, который не смог повторить попытку для этого сообщения.

и как я могу контролировать проблему параллелизма?

спасибо.

1 Ответ

1 голос
/ 10 марта 2020

Чтобы сообщение SQS было удалено из очереди, лямбда должна явно удалить его из очереди после успешной обработки. (<- это неверно, см. редактирование ниже). </p>

Если лямбда не выполняется во время обработки сообщения, сообщение будет возвращено в очередь, когда видимость сообщения истекло время ожидания (по умолчанию 30 секунд). Таким образом, он будет иметь возможность снова обрабатываться лямбдой.

В настройках очереди SQS вы можете настроить Очереди недоставленных сообщений для хранения сообщений, которые не удалось успешно обработать для номера попыток.

Редактировать:

Как правильно заметил @ michael-sqlbot, первая часть моего ответа была неверной. Когда ваша функция успешно обрабатывает пакет, Lambda удаляет свои сообщения из очереди.

Для управления лямбда-параллелизмом используйте настройку Reserved Concurrency .

...