Назад | Перейти на главную страницу

Как подписать несколько лямбда-функций на одну и ту же очередь SQS

Я хочу добиться увеличения числа потребителей определенной очереди с помощью лямбда-функций вместо «размещенных на собственном хостинге» подписчиков.

Для данного event-queue Я хочу, чтобы несколько потребителей обрабатывали уникальные сообщения из одной и той же очереди, точно так же, как я бы просто поступил с кластером процессов, но я хотел бы использовать облачные лямбда-функции. Пока что я только что нашел, как подписаться с одной функцией без возможности масштабирования.

Я нашел эту очень полезную статью от cloudonaut.io (Андреас Виттиг), которые иллюстрируют один подход к нескольким потребителям AWS Lambdas:

Интеграция SQS и Lambda: бессерверная архитектура для асинхронных рабочих нагрузок

Чтобы масштабировать решение Андреаса, вы можете использовать Сигналы тревоги AWS CloudWatch из очереди AWS SQS и тигра AWS CloudFormation (и / или Репозиторий бессерверных приложений AWS), чтобы при необходимости привлечь больше потребителей AWS Lambda.

Другой подход - использовать Amazon MQ.

Если вы используете Amazon Simple Notification Service (SNS) или AWS Kinesis, одно и то же сообщение вызовет разные лямбды, и вы, вероятно, получите дублированные действия между вашими лямбдами.

[Обновить]

Теперь можно использовать Amazon Simple Queue Service в качестве триггера для AWS Lambda:

Больше информации здесь: https://aws.amazon.com/blogs/aws/aws-lambda-adds-amazon-simple-queue-service-to-supported-event-sources/