我有一个项目清单。此列表的长度未知。我想使用循环对每个项目执行一些相当繁重的处理。我想知道是否可以使用状态机来做到这一点。更具体地说,我可以让机器的一个步骤执行循环并启动每个项目的下一步实例吗?如果不是,你会建议什么?目标是尽可能保持无服务器。
PS我知道我可以使用步进函数进行迭代,但是状态机会在几分钟后超时,如果处理是串行完成的,恐怕没有足够的时间来处理所有项目。
我有一个项目清单。此列表的长度未知。我想使用循环对每个项目执行一些相当繁重的处理。我想知道是否可以使用状态机来做到这一点。更具体地说,我可以让机器的一个步骤执行循环并启动每个项目的下一步实例吗?如果不是,你会建议什么?目标是尽可能保持无服务器。
PS我知道我可以使用步进函数进行迭代,但是状态机会在几分钟后超时,如果处理是串行完成的,恐怕没有足够的时间来处理所有项目。
通过“无服务器”,我希望你的意思不是每天(或定期)手动启动和终止实例。
选项1:将项目放入AWS SQS,启动一个实例,该实例将逐个处理项目并在所有项目完成后终止。这里可以自动将项目添加到 SQS 并启动实例,具体取决于项目列表的来源/来源的触发点。
选项 2:AWS Batch,如果适用于您的用例,它可以并行处理所有项目。
根据触发点,将需要其他组件,例如,如果您想每 6 小时从 URL 获取项目列表(如提要),然后添加一个 cloudwatch 计划事件,该事件触发一个 lambda 函数,该函数下载项目并使用选项 1 或 2。