Я хочу добиться масштабирования количества потребителей определенной очереди с помощью лямбда-функций, а не «самостоятельных» подписчиков.
Для данного event-queue
я хочу, чтобы несколько потребителей обрабатывали уникальные сообщения из этой же очереди, как я бы просто сделал с кластером процессов, но я хотел бы использовать размещенные в облаке лямбда-функции. Пока что я только нашел, как подписаться с помощью одной функции, без опции масштабирования.
решение1
Я нашел эту очень полезную статью отcloudonaut.io(Андреас Виттиг), которые иллюстрируют один из подходов к нескольким потребителям AWS Lambdas:
Интеграция SQS и Lambda: бессерверная архитектура для асинхронных рабочих нагрузок
Для масштабирования решения Андреаса вы можете использоватьСигналы тревоги AWS CloudWatchиз вашей очереди AWS SQS и tiggerAWS CloudFormation(и/илиРепозиторий бессерверных приложений AWS) для развертывания большего количества потребителей AWS Lambda при необходимости.
Другой подход заключается в использованииАмазон MQ.
Если вы используетеПростая служба уведомлений Amazon (SNS)илиAWS Кинезис, одно и то же сообщение вызовет разные лямбда-выражения, и вы, вероятно, получите дублирующиеся действия между вашими лямбда-выражениями.
[обновлять]
Теперь можно использовать Amazon Simple Queue Service в качестве триггера для AWS Lambda:
Более подробная информация здесь:https://aws.amazon.com/blogs/aws/aws-lambda-adds-amazon-simple-queue-service-to-supported-event-sources/