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

6

我正在尝试评估使用Kinesis处理日志文件的流程。有一个独立的进程将新日志上传到S3存储桶中,我不能干预该进程。我想知道是否有一种很好的方法可以将出现在S3日志存储桶中的新文件实时流式传输到Kinesis流进行处理。到目前为止,我找到的所有文档都是关于如何将S3用作流的输出。

我的当前解决方案是拥有一台不停轮询S3以获取新文件的机器,然后将新文件下载到本地机器并使用Log4j附加程序将其流式传输。这似乎效率低下。有更好的方法吗?

1个回答

2
我知道这是一个很老的问题,但请看一下AWS Lambda。 它非常适合您的使用情况,如此处所示。
在您的情况下,您将设置s3事件,以便每个添加到存储桶中的新对象都会调用您的lambda函数。 在lambda函数中,您只需编写几行代码即可读取文件并将内容发送到Kinesis流的PutRecord(或批处理的PutRecords)方法。
这不仅适用于您的用例,而且还非常棒,因为它勾选了一些流行术语:“无服务器”和“实时”!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接