Разделение лямбда-пакета SQS на частичный успех / частичный отказ - PullRequest
2 голосов
/ 21 мая 2019

Интеграция AWS SQS -> Lambda позволяет обрабатывать входящие сообщения в пакете, где вы настраиваете максимальное количество, которое вы можете получить в одном пакете.Если во время обработки выдается исключение, чтобы указать на сбой, все сообщения не удаляются из входящей очереди и могут быть обработаны другой лямбда-памятью для обработки после истечения времени ожидания видимости.

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

1 Ответ

1 голос
/ 21 мая 2019

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

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

...