Что такое элегантный способ создания "логического клея" безсерверного приложения

Мне нужно реализовать следующую логику:

  1. PDF с несколькими (неизвестно на продвинутых) страницах загружается и сохраняется на S3
  2. Изображения страниц извлекаются из PDF-файла с помощью лямбда-функции и сохраняются в S3.
  3. Каждое изображение анализируется лямбда-функцией (одновременно). Результаты сохраняются либо на S3, либо на динамо.
  4. После того, как ВСЕ изображения были проанализированы, запустите финальную лямбду, объединяющую все результаты.

Одна из моих главных проблем заключается в том, как запустить, когда все параллельные лямбды на шаге 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 }
Другие вопросы по тегам