【发布时间】:2019-03-19 02:42:33
【问题描述】:
我正在使用 AWS Lambda (https://registry.opendata.aws/sentinel-2/) 处理相对较大的图像。
为了处理这些图像,我将它们分成更小的图像(约 1500 个“芯片”),这些图像可以独立处理(芯片的数量会根据源图像的内容发生不可预测的变化)。使用 Lambda 的多次调用并行处理芯片,该 Lambda 接收数百芯片的“页面”。
这就是我卡住的地方:当所有页面都处理完毕后,我需要将结果合并到一个输出图像中,但是如何知道所有页面(“可变调用批次”)何时完成?
我考虑过例如将进度信息写入 s3 或 dynamo 并在每个页面之后调用组合函数,以便只有该函数的最后一次调用继续进行(当进度检查返回完成时)。我见过期货/承诺之类的选项,但一页筹码的处理时间约为 10-15 分钟,所以我不想让“控制器”功能等待期货/承诺完成,因为那时进行多次调用会更便宜。
有没有更好的解决方案,写出进度信息并多次检查?
(注意我看过这个问题:Fork and Join with Amazon Lambda)
【问题讨论】:
标签: python amazon-web-services aws-lambda