我在S3上上传了一个大文件,对于文件中的每一行,我需要进行长时间运行的休息API调用。我正试图找出打破工作的最佳方法。我目前的流程理念是
Lambda(逐行分解) - > SNS(每行通知) - > Lambda(每行/通知单独)
这似乎是一个常见的用例,但我找不到很多引用它,我错过了什么?是否有更好的选择来分解我的工作并在合理的时间内完成工作?
答案 0 :(得分:2)
Best 方式将是主观的。您当前使用的方法Lambda->SNS->Lambda
是一种可能的方法。正如JohnAllen指出的那样,你可以简单地做Lambda->Lambda
。
您的方案让我想起了this project,它有一个Lambda函数将项添加到Kinesis流,然后触发许多并行的Lambda函数。
如果您生成大量的Lambda任务,我认为Lambda->Kinesis->Lambda
可能比Lambda->SNS->Lambda
更适合您的用例。我担心SNS实现会遇到最大数量的并发Lambda函数,而Kinesis实现会将它们排队并优雅地处理它。