AWS Lambda, запускаемый SQS, увеличивает количество запросов SQS - PullRequest
0 голосов
/ 20 октября 2018

У меня есть функция AWS Lambda, которая запускается SQS.Эта функция запускается примерно 100 раз в день, но число запросов в очередь SQS составляет примерно 20 000 раз в день.Я не понимаю, почему количество запросов к SQS слишком велико.Я ожидаю, что количество запросов к SQS должно совпадать с вызовом Lambda.

У меня есть только одна лямбда-функция и одна очередь SQS в моей учетной записи.

Может быть связано с опросом очереди SQS?Я попытался изменить интервал опроса SQS из конфигурации очереди, но ничего не изменилось.Другая возможность - изменить интервал опроса из конфигурации функции Lambda.Однако я не могу найти связанный параметр.

Вкратце, я хочу уменьшить количество запросов SQS, как я могу это сделать при вызове функции Lmabda с SQS?

Ответы [ 2 ]

0 голосов
/ 21 октября 2018

Вот как мы изначально реализовали, когда нет триггера SQS.

Создание триггера SNS с метрикой SQS Cloudwatch

ApproximateNumberOfMessagesVisible> 0

Запуск лямбды из SNS, чтение сообщений из SQS и доставка ее в любое удобное для лямбды сообщение.

В качестве альтернативы вы можете использовать Kinesis для доставки его в лямбду.

SQS -> Cloudwatch (лямбда триггера) -> лямбда (чтение сообщений) -> Kinesis (установить размер пакета) -> лямбда (обработка фактического сообщения)

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

Надеюсь, это поможет.

0 голосов
/ 20 октября 2018

При использовании SQS в качестве источника событий для AWS Lambda AWS Lambda регулярно опрашивает настроенную очередь SQS для получения новых сообщений.Хотя официальная документация на самом деле не совсем ясна, об этом в блоге , объявляющем об этой функции , подробно рассказывается:

Когда изначально создается и включается сопоставление источника событий SQS,или когда сообщения впервые появляются после периода без трафика, тогда служба Lambda начнет опрос очереди SQS, используя пять параллельных соединений с длинным опросом.

Согласно документации AWS длительность по умолчанию для длинного опроса от AWS Lambda до SQS составляет 20 секунд.

Это приводит к пяти запросам к SQS каждые 20 секунд для функций AWS Lambda без значительной нагрузки, что в сумме составляет ~ 21600 в день, что близко к 20000, которые вы испытываете.

Хотя увеличение длительности опроса кажется простым способом уменьшить количество запросов, это невозможно, поскольку по умолчанию используется AWS Lambda с 20 секундами.это уже максимально возможная продолжительность для очереди SQS .Боюсь, что нет простого способа уменьшить запросы к SQS, если использовать его в качестве источника событий для AWS Lambda.Вместо этого, возможно, стоит оценить, подойдет ли другой источник событий, например, SNS, для вашего варианта использования.

...