我有一组 10 个文档,我想并行处理这 10 个文档,这样如果 10 个文档中的任何一个处理失败,工作单元就会自行失败。
例如,假设我有一个可公开访问的文档 URL 集合。我想将集合中的每个文件下载到 S3,在每个文档上运行类似 OCR 的东西,并且不知何故,当所有 10 个文档都经过 OCR 时,更新一些数据库标志以保持整个工作单元(在这种情况下为 OCR 10 文档(已完成。
在 AWS 中有哪些选项可用于完成此操作?
似乎阶跃函数可能是一种方法。我还能如何以事务性方式完成此工作单元?
同样,我从输入一组/公共 URL 集合开始,我想将所有这些图像引入 AWS 空间,处理这些文档,然后以某种方式将事务标记为完成(或者如果其中任何一个文档失败,则操作失败(。
在声明整个工作单元失败之前,我可能想重试从公共 URL 下载到 S3 的配置次数。但是,如果 10 个文档中的任何一个文档中的任何一个无法导入到 AWS 中,则整个批处理失败。
我有哪些选择?任何见解都值得赞赏。
没有现成的 AWS 服务可以为您执行此操作。继续/失败逻辑需要在您正在编写的任何系统中编码以执行工作。
您是正确的,AWS Step Functions能够并行运行任务,然后获取这些并行路径的输出并组合信息以做出决策(例如,它们是否都成功了(。然后,流可以决定是接受所有作业还是失败所有作业,但您将负责在执行这些操作的 Lambda 函数中编写逻辑。
请参见:动态并行的新 – 步进函数支持 |AWS 新闻博客