Есть ли AWS решение для сортировки очереди SQS? - PullRequest
0 голосов
/ 20 февраля 2020

У меня есть архитектурная дилемма, и я подумал: может быть, это решаемая проблема или ее можно решить несколькими способами. У меня есть очередь SQS (одна из многих), которая запускает функцию Lambda (одна из многих). Эта очередь требует немного другой обработки сообщений, основанной на одном ключе в полезной нагрузке. Каков наилучший способ сортировки сообщений очереди перед фактической обработкой Lambda?

Должна ли она быть отдельной Lambda, которая проверит ключ, а затем поместит сообщение в отдельную очередь, которая вызовет соответствующую Лямбда?

Должно ли это быть просто оператором if в основной лямбде?

Может быть, есть автоматический способ справиться с такой ситуацией?

Спасибо!

1 Ответ

2 голосов
/ 20 февраля 2020

Похоже, что ваша ситуация такова:

  • Внешний процесс отправляет сообщения на Amazon SNS topi c
  • Amazon SQS очередь подписана на SNS topi c
  • AWS лямбда-функция подписана на очередь SQS
  • Есть различные суб -типы сообщений , каждое из которых должно обрабатываться немного по-разному

Один из вариантов - использовать Фильтрация сообщений Amazon SNS , которая может доставлять сообщения по-разному в зависимости от атрибут сообщения . Например, он может отправлять подмножество сообщений в функцию SNS topi c или Lambda. Однако для этого потребуется, чтобы сообщения, отправляемые в SNS topi c до , имели атрибут сообщения, определенный .

Если это не так, то возможны следующие варианты:

  • Используйте одну лямбда-функцию для обработки всех типов сообщений (Вы можете включить довольно сложный код в несколько файлов в лямбда-функции!), или
  • Используйте лямбда-функцию, чтобы определить подтип сообщения и затем отправить его в указанную c лямбда-функцию (или отправить ее через очередь SQS в лямбда-функцию для дополнительной устойчивости)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...