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

Чего я хочу добиться, так это масштабировать количество потребителей определенной очереди, используя лямбда-функции, а не "самодостаточных" подписчиков.

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

1 ответ

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

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

Для масштабирования решения Andreas вы можете использовать AWS CloudWatch Alarms из своей очереди AWS SQS и тигра AWS CloudFormation (и / или AWS Serverless Application Repository), чтобы при необходимости увеличить количество пользователей 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/

Другие вопросы по тегам