目前,我正在实施一个基于S3,Lambda和DynamoDB的解决方案。 我的用例是,当一个新对象上传到S3上时,第一个Lambda函数被调用,下载新文件,将其分割成大约100(或更多)个部分,并为每个部分添加额外的信息。下一步,每个部分都将被第二个Lambda函数处理,在某些情况下,将在DynamoDB中执行插入。AWS Lambda更快的处理方式
我的问题只是关于调用“第二lambda”的最佳方式。我的意思是,更快的方式。我想要同时执行100个Lambda函数(如果我要处理100个零件)。
我知道有不同的可能性:
1)我的第一拉姆达功能可以推动每一部分如在室壁运动流和项目我的第二拉姆达功能会发生反应,检索项目和处理它。在这种情况下,我不知道AWS每次在流中有剩余项目时是否会启动新的Lambda函数。也许有一些限制...
2)我的第一个Lambda函数可以推动SNS主题中的每个部分,然后我的第二个Lambda会对每条新消息作出反应。在这种情况下,我对延迟(通过SNS主题发送消息的操作与执行第二个Lambda函数的时间之间的时间间隔)有一些怀疑。
3)我的第一个Lambda函数可以通过执行API调用并传递信息直接启动第二个函数。在这种情况下,我不知道我是否可以同时启动100个Lambda功能。我认为我会受到针对AWS API的费率限制(我说,我想!)
有人对我的使用案例有反馈,也许建议?再一次,对我来说最重要的是拥有更快的处理方式。
感谢
...或者您可以使用与第一个Lambda相同的方法。将你的作品放入另一个S3存储桶中,在对象元数据中保存附加信息并将第二个Lambda附加到第二个存储桶中。 –
这是另一种解决方案,但我不确定这是更快的方法.... – Matt