我正在尝试使用 Kinesis 进行流处理日志文件的评估。有一个单独的进程可以将新日志上传到 S3 存储桶中 - 我无法触及该进程。我想知道是否有一种好方法可以将 S3 日志存储桶中显示的新文件流式传输到 Kinesis 流中进行处理。到目前为止,我发现的所有文档都涵盖了使用 S3 作为流的输出。
我目前的解决方案是让一台机器不断轮询 S3 以获取新文件,将新文件下载到本地机器并使用 Log4j appender 将其流式传输。这似乎效率低下。有没有更好的办法?
最佳答案
我意识到这是一个非常古老的问题,但请查看 AWS Lambda .它非常适合您的用例,如图 here .
在您的情况下,您将设置 s3 事件,以便添加到存储桶的每个新对象调用您的 lambda 函数。然后在 lambda 函数中编写几行代码,读取文件并将内容发送到 PutRecord (或 PutRecords 批处理)用于 Kinesis 流的方法。
这不仅适用于您的用例,而且它也很棒,因为它检查了一些流行语:“无服务器”和“实时”!
关于amazon-web-services - 将 S3 存储桶中的新文件流式传输到 Kinesis,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25916540/