Что такое элегантный способ создания "логического клея" безсерверного приложения
Мне нужно реализовать следующую логику:
- PDF с несколькими (неизвестно на продвинутых) страницах загружается и сохраняется на S3
- Изображения страниц извлекаются из PDF-файла с помощью лямбда-функции и сохраняются в S3.
- Каждое изображение анализируется лямбда-функцией (одновременно). Результаты сохраняются либо на S3, либо на динамо.
- После того, как ВСЕ изображения были проанализированы, запустите финальную лямбду, объединяющую все результаты.
Одна из моих главных проблем заключается в том, как запустить, когда все параллельные лямбды на шаге 3 закончились. Какой самый лучший, самый элегантный способ сделать это? У меня были предложения попробовать использовать функцию шага AWS, но кажется, что состояние Parallel может иметь только фиксированное число, известное в предварительных ветках.
1 ответ
Поскольку вы уже используете Dynamodb в своем решении, я мог бы подумать об одном из возможных решений:
Step 2:
Extract Images and store total_count in Dynamodb
Step 3:
At the end of Lambda increment new column current_count
if(current_count==total_count){ trigger Step 4 }