Я пытаюсь создать процесс, который запускает лямбда-сигнал AWS, который затем использует AWS-SNS для отправки сообщений, запускающих большее количество лямбд. Каждая такая вызванная лямбда записывает выходной файл на S3. Процесс, как показано ниже -
У меня такой вопрос: как я могу знать, что все лямбды сделаны с записью файлов? Я хочу выполнить другой процесс, который собирает все эти файлы и выполняет слияние. Я мог бы придумать два очевидных способа -
- Постоянно отслеживайте s3 столько же выходных файлов, сколько сообщений SNS. Как только общее число достигнет, вызовите последнюю лямбду слияния.
- Использование базы данных в качестве источника синхронизации, запись количества для этого конкретного задания / сеанса и отслеживание его до тех пор, пока число не достигнет числа сообщений SNS.
Оба решения требуют постоянного опроса, которого я хотел бы избежать. Я хочу сделать это на основе событий. Я надеялся, что Amazon SQS придет мне на помощь с каким-то «лямбда-триггером пустой очереди», но SQS поддерживает только лямбда-триггеры для новых сообщений. Есть ли какой-нибудь известный способ достичь этого в AWS? Ваши предложения / комментарии / ответы очень ценятся.