Я использую функцию AWS Lambda, которая запускается триггером события SNS для использования из очереди SQS. Когда функция Lambda выполняется, она извлекает 10 сообщений из очереди, обрабатывает их, извлекает еще 10 и т.д. ).
Насколько я понимаю, лямбда-функция, запускаемая событием SNS, является взаимно однозначной, это правильно? Другими словами, одно событие SNS не будет запускать несколько лямбда-функций (до максимального предела одновременного выполнения). Нет масштабирования в зависимости от нагрузки.
Есть ли другие потенциальные решения, использующие Lambda, которые позволили бы мне использовать SQS как можно чаще / быстрее? Я подумал о том, чтобы попытаться автоматически масштабировать свои функции Lambda, используя сигналы тревоги CloudWatch (и триггеры событий SNS) на основе размера очереди SQS, но похоже, что эти сигналы могут срабатывать не чаще, чем каждые 5 минут. Я также рассмотрел возможность разработки главной лямбда-функции, которая может автоматически выполнять (многие) подчиненные лямбда-выражения на основе запроса размера очереди.
Я понимаю, что более оптимальным вариантом может быть использование Kinesis вместо SNS. Я могу рассмотреть вопрос о включении Kinesis в будущем, но давайте просто сделаем вид, что Kinesis в настоящее время не вариант.