Может кто-нибудь объяснить мне преимущество или недостаток использования SNS -> Lambda vs. SNS -> SQS -> Lambda.AWS Pub/Sub Message Pattern
Я ищу, чтобы настроить архитектуру для обмена сообщениями в пабе/под микросервисом, но наличие очереди перед каждой лямбдой кажется чрезмерным.
Вы правы, и я приношу свои извинения за пропущенную инструкцию по прямому триггеру, Lambda в случае очереди потребует опроса с расписанием лямбда. Но я думаю, что я ищу, как вы получаете хотя бы раз доставку с SNS на Lambda. – tafaju
@tafaju SNS всегда будет вызывать подписанную функцию лямбда. Если ваша функция лямбда не завершится успешно, она будет повторена до двух раз. Но ваша функция Lambda всегда будет вызываться хотя бы один раз. С SNS to Lambda недостатком является то, что нет понятия очереди с мертвой буквой, поэтому, если ваша функция Lambda три раза истекает для одного и того же сообщения SNS, вы просто отбросили эти данные на пол. Нет способа выздороветь. – idbehold
@idbehold правильный. Один из способов избежать потери данных, если ошибки с тремя шагами предотвращают обработку событий, - это отключение от темы SNS до Lambda и SQS, позволяя сообщениям обычно просто истекать и автоматически удаляться из очереди SQS, если ошибки Lambda не являются , и в этом случае процесс очистки может просматривать сообщения, помеченные в очередь. У меня есть настройка S3> SNS> Lambda, которая делает это. Функция Lambda иногда выдает ошибки, когда S3 является одним из своих «окончательно согласованных» настроений во время больших партий перезаписи существующих объектов, поэтому это мой резервный план. –