amazon-s3 - 使用 Kinesis Firehose Delivery Stream 从 Kinesis Data Stream 源将数据写入 S3 时出现问题

标签 amazon-s3 amazon-kinesis amazon-kinesis-firehose amazon-kinesis-agent

我使用 Kinesis Agent(使用 Docker 镜像)将 JSON 文件发送到 Kinesis Data Stream,然后 Kinesis Data Stream 充当 Kinesis Firehose Delivery Stream 的源,然后 Kinesis Firehose Delivery Stream 应该将文件写入 S3,但没有任何内容出现在S3中。

JSON 数据流入数据流,并在监控和代理日志中可见:

2019-04-16 19:00:14.036+0000 6ae9843658b1 (Agent.MetricsEmitter RUNNING) com.amazon.kinesis.streaming.agent.Agent [INFO] Agent: Progress: 18947 records parsed (490492 bytes), and 18500 records sent successfully to destinations. Uptime: 900020ms

我有一个小的 shell 脚本,它以 2 秒的间隔将 JSON 文件复制到输入文件夹(代理正在监视的文件夹)中。每个文件都由 Kinesis Agent 拾取:

2019-04-16 19:00:15.015+0000 6ae9843658b1 (FileTailer[kinesis:dev-kinesis-stream:/tmp/stream/*.json]) com.amazon.kinesis.streaming.agent.tailing.KinesisParser [INFO] KinesisParser[kinesis:dev-kinesis-stream:/tmp/stream/*.json]: Continuing to parse /tmp/stream/testfile00001.json.

但是,我的 Firehose Delivery 流或 S3 存储桶中没有任何内容。

在我的 Firehose 中,我已将缓冲区条件设置为“1 MB 或 60 秒”,并禁用了加密和压缩。这应该允许文件传递到 S3,因为每个文件仅包含一个小数组(文件大小约为 1 KB)。

我很困惑,不太明白还有什么原因。

感谢任何帮助!

最佳答案

所以我自己想出了这个办法。 问题出在我定义的 IAM 策略上。基本上,firehose IAM 角色没有附加适当的角色策略,并且数据未写入 S3(由于权限问题)。

关于amazon-s3 - 使用 Kinesis Firehose Delivery Stream 从 Kinesis Data Stream 源将数据写入 S3 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55715459/

相关文章:

amazon-web-services - 将数据从 Amazon Aurora 同步到 Redshift

amazon-web-services - 按事件时间分区 Kinesis firehose S3 记录

amazon-web-services - 调用 DeleteBucket 操作时发生错误 (AccessDenied) : Access Denied

javascript - 如何防止 for 循环开始下一次迭代,直到它里面的功能(AWS S3 上传功能)完全完成?

postgresql - RDS 到 S3 直接使用 pg_dump(没有中介)

amazon-web-services - 我可以在 Kinesis 之前使用 AWS API Gateway 吗?

javascript - 如何将视频数据发送到 Kinesis Video Stream?

amazon-web-services - 如何构建和使用flink-connector-kinesis?

amazon-web-services - 使用 Athena 查询 s3 中的 AWS firehose 数据 - 无法查询批处理

amazon-web-services - 如何使用 Elastic beanstalk 和 Dockerrun.aws.json 正确部署到 AWS?