У нас есть внешний сервис, который загружает файлы на наш S3 bucket
в account A
. Мы повышаем SNS notifications
при каждой загрузке. Функция lambda
в account B
подписывается на эти уведомления.
Это хорошо работает для нас, за исключением того, что , если внешняя служба пропускает конфигурацию, она загружает> 500 файлов вместе (в одном каталоге) . И наша лямбда срабатывает 500 раз, когда это происходит.
1. Is there a way to limit the number of files uploaded to a bucket within X minutes?
2. Is there a way to stop the lambda from getting invoked if it sees >500 SNS notifications together?
Я знаю, что размещение SQS между Lambda и SNS, вероятно, решит нашу проблему. Я хочу знать, есть ли другой более простой и удобный способ решить эту проблему.
Я исследовал возможность ограничения параллелизма лямбда-выражений, чтобы при дросселировании это не удавалось, однако уведомления SNS будут повторяться трижды (что также это хорошо, и мы не хотим потерять эту функцию в случае других ошибок), поэтому мы не хотим этого делать.
Обратите внимание, что мгновенная обработка не является для нас жестким требованием. Мы можем подождать около 5 минут для обработки уведомления SNS.