В настоящее время я загружаю файл в AWS S3 Bucket (B1) с размером 250 МБ и 1 миллионом записей. Это запускает лямбду (L1 - 1,5 ГБ, 3 минуты), которая читает этот файл и группирует записи с некоторыми критериями и снова записывает около 25K файлов в S3 в другом сегменте (B2).
Теперь событие уведомления, настроенное в Bucket (B2), генерирует 25K событий (запросов) к разным лямбдам (L2 - 512 МБ, 2Mins, Concurrency-2). Этот лямбда-вызов вызывает основанный на Java микросервис, который после обработки делает запись в БД, которая занимает около 1-2 секунд для каждого вызова.
Проблема здесь в том, что, как только сработает 2-я лямбда (L2), остановить ее невозможно. Он работает в течение нескольких часов и не получает никаких других событий для той же лямбды, пока не обработает все события полностью, и я уже не могу контролировать события S3, запущенные.
Может ли кто-нибудь объяснить, как события, инициируемые на S3, при обработке загрузки файлов (архитектура) на Amazon S3 и как получить детальный контроль над событиями S3, запускаемыми?
Могу ли я что-нибудь сделать на стороне AWS Lambda, чтобы остановить уже запущенные события S3?