我在swift上的移动设备上有一个csv文件,我想将它传递给AWS lambda,然后再处理该文件。
我读到APi网关可以将其作为二进制文件发送,但是可能存在文件大小变为20MB的情况,因此这似乎不合理。
我确实想到了另一个解决方案,即上传到s3,然后让s3触发一个lambda函数,然后将其用作原样。
我对此解决方案的问题是处理必须实时完成,上传到s3可能需要一段时间,用户将等待文件上传,然后lambda处理然后lambda的响应,我不要认为这会完成,假设有20万条记录的文件和一个复杂的处理算法可以说5秒钟?
另外,请问;从理论上讲,如果文件大小低于或大约10MB,那么最佳解决方案是什么?
由于
编辑:
我也在考虑使用cloudfront,但是文件上传时间和可用时间有时会出现延迟,我只希望这些文件在缓存中可以使用几分钟。
答案 0 :(得分:0)
我认为直接上传到Lambda不会对您的案例有效,主要原因是Lambda payload size limits。
以下是您可以做的事情:
发送到S3然后在Lambda上处理不会给流程增加那么多延迟。在Lambda中从S3重新传输文件应该非常快,特别是如果两者都在同一区域,并且S3流速度也很快(我认为不应超过250毫秒)。
但最好是部署此解决方案并测试延迟以确定它是可接受的。