2016-05-14 50 views
2

我正在考虑转移到lambda表达式,并花一些时间阅读文档和各种博客与用户体验,我仍然有一个简单的问题后挣扎。有没有建议/正确的方式来使用lambda与现有的S3文件?AWS拉姆达S3事件的现有文件

我有一个包含归档数据跨越几年的S3桶。这些数据的大小相当大(数百GB)。每个文件都是一个简单的txt文件。文件中的每一行代表一个事件,它只是一个逗号分隔的字符串。

我的最终目标是消费这些文件,解析其中的每一个一行行申请一些改造,创建行的批次,并将它们发送到外部服务。从我迄今为止所读到的内容来看,如果我写了一个正确的lambda表达式,这将由s3事件触发(例如上传一个新文件)。

是否有拉姆达适用于我的桶的所有现有内容的方法吗?

感谢

回答

1

对于你需要编写一个脚本,获取所有资源的列表和每个项目以某种方式发送到一个lambda函数现有资源。我可能会考虑将每个现有S3对象的位置发送到Kenesis流,并配置一个Lambda函数以从该流中提取记录并处理它们。

0

尝试复制您的存储桶内容并使用lambda捕获创建事件。

副本:

s3cmd sync s3://from/this/bucket/ s3://to/this/bucket 

较大的水桶:

https://github.com/paultuckey/s3_bucket_to_bucket_copy_py

+1

注意,这种方法会重置所有日期上的对象,以“现在”,将招致新对象的创建费用,因为复制一个对象,即使是同一个桶中的同一个键,在技术上也会创建一个新的对象。 –