Я обрабатываю относительно большие изображения с помощью AWS Lambda (https://registry.opendata.aws/sentinel-2/).
. Чтобы обработать эти изображения, я разделил их на более мелкие изображения (~ 1500 "фишек"), которые можно обработатьнезависимо (количество микросхем непредсказуемо зависит от содержимого исходного изображения). Микросхемы обрабатываются параллельно с использованием нескольких вызовов лямбды, которая занимает «страницу» из пары сотен микросхем.
Вотгде я застрял: когда все страницы обработаны, мне нужно объединить результаты в одно выходное изображение, но как узнать, когда все страницы - «переменная партия вызовов» - завершены?
IЯ рассмотрел, например, запись информации о прогрессе в s3 или динамо и вызов функции объединения после каждой страницы, так что выполняется только последний вызов этой функции (когда проверка выполнения возвращается как завершенная). Я видел такие варианты, как futures / promises,но время обработки страницы чипов составляет порядка 10-15 минут, поэтому я не хочуt держать функцию «контроллера» в ожидании завершения фьючерсов / обещаний, потому что в этот момент дешевле использовать несколько вызовов.
Есть ли лучшее решение, которое выписывает информацию о ходе выполнения и проверяет ее несколько раз??
(NB. Я видел этот вопрос: Разветвление и соединение с Amazon Lambda )