将S3存储桶中的新文件流式传输到Kinesis中

时间:2014-09-18 15:17:13

标签: amazon-web-services amazon-s3

我正在尝试使用Kinesis来评估流处理日志文件。有一个单独的过程将新日志上传到S3存储桶 - 我无法触及该过程。我想知道是否有一种很好的方法可以将在S3日志存储桶中显示的新文件流式传输到 Kinesis流中进行处理。到目前为止,我发现的所有文档都使用S3作为流的输出。

我目前的解决方案是让一台机器不断轮询S3以获取新文件,将新文件下载到本地机器并使用Log4j appender将其流入。这似乎效率低下。还有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

我意识到这是一个非常古老的问题,但请看AWS Lambda。它非常适合您的用例,如here所示。

在您的情况下,您将设置s3事件,以便添加到存储桶的每个新对象都会调用您的lambda函数。在lambda函数中,然后编写几行读入文件的代码,并将内容发送到Kinesis流的PutRecord(或PutRecords批处理)方法。

这不仅适用于您的用例,而且它也很棒,因为它会检查几个流行语:"无服务器"和"实时"!