使用AWS Kinesis Firehose写入S3存储桶中的特定文件夹

EMC*_*amp 7 amazon-s3 amazon-web-services amazon-kinesis aws-lambda amazon-kinesis-firehose

我希望能够根据数据内部的内容将数据发送到kinesis firehose。例如,如果我发送了此JSON数据:

{
   "name": "John",
   "id": 345
}
Run Code Online (Sandbox Code Playgroud)

我想根据ID过滤数据,然后将其发送到s3存储桶的子文件夹,例如:S3:// myS3Bucket / 345_2018_03_05。Kinesis Firehose或AWS Lambda完全可行吗?

我现在唯一想到的方法是为每个可能的ID创建一个运动流,并将其指向相同的存储桶,然后将事件发送到应用程序中的那些流,但我想避免因为有许多可能的ID。

E.J*_*nan 5

您可能希望使用每次 Firehose 在您的 S3 存储桶中放置新文件(PUT)时触发的 S3 事件通知;S3 事件通知应调用您编写的自定义 lambda 函数,该函数读取 S3 文件的内容并将其拆分并将其写入单独的存储桶,请记住,每个 S3 文件可能会包含许多记录,而不是只有一个。

https://aws.amazon.com/blogs/aws/s3-event-notification/