AWS SQS Long Polling не уменьшает количество пустых сообщений - PullRequest
0 голосов
/ 19 ноября 2018

В настоящее время у меня есть AWS SQS в качестве триггера для моей функции AWS Lambda.

Я хотел бы внедрить длинный опрос, чтобы сократить расходы, поскольку я израсходовал 70% своего ежемесячного бесплатного уровня, в основном из пустых приемов.

Я попытался настроить длинный опрос, изменив атрибут очереди ReceiveMessageWaitTimeSeconds на 20 seconds:

SQS Details showing ReceiveMessageWaitTimeSeconds set to 20s

Однако, похоже, это не уменьшило количество пустых приёмов, где настройки были изменены 11/19, между 2:00 - 3:00. Empty Receives graph shows the same trend even after setting long polling

Согласно Документации AWS , WaitTimeSeconds имеет приоритет над атрибутом очереди ReceiveMessageWaitTimeSeconds

Короткий опрос происходит, когда параметр WaitTimeSeconds объекта Запрос ReceiveMessage устанавливается в 0 одним из двух способов:

  • Вызов ReceiveMessage устанавливает для WaitTimeSeconds значение 0.
  • Вызов ReceiveMessage не устанавливает WaitTimeSeconds, но атрибут очереди ReceiveMessageWaitTimeSeconds имеет значение 0.

Примечание

Для параметра WaitTimeSeconds действия ReceiveMessage значение от 1 до 20 имеет приоритет над любым значением, установленным для атрибут очереди ReceiveMessageWaitTimeSeconds.

Поскольку AWS Lambda получает запросы SQS, я не думаю, что WaitTimeSeconds можно настроить.

Почему моя конфигурация длинного опроса не работает в этой ситуации? Я что-то неправильно понимаю или неправильно настроил?

Спасибо!

1 Ответ

0 голосов
/ 19 ноября 2018

Фактически длинный опрос - это , работающий в вашей ситуации.

5 lambdas * polling / 20 seconds * 3600 seconds in an hour = 900 receives/hour

Я думаю, что вы пропустили "5 минимальных одновременных лямбд".Это подразумевается в документации Lambda Scaling Behavior , но более подробно и подробно изложено в разделе «Дополнительная информация» в объявлении / блоге глубокого погружения .

Если исходное сопоставление источника событий SQS изначально создано и включено, или когда сообщения впервые появляются после периода без трафика, служба Lambda начнет опрос очереди SQS , используя пять параллельных long-опросные соединения.Служба Lambda отслеживает количество сообщений в полете и, когда обнаруживает, что это число имеет тенденцию к увеличению, увеличивает частоту опроса на 20 запросов ReceiveMessage в минуту и ​​параллелизм функции на 60 вызовов в минуту.

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