1

我正在将带有 Kinesis 代理(使用 Docker 映像)的 JSON 文件发送到 Kinesis Data Stream,然后它充当 Kinesis Firehose 传输流的源,然后它应该将文件写入 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 存储桶中没有任何内容。

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

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

任何帮助表示赞赏!

4

1 回答 1

3

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

于 2019-04-22T11:01:03.137 回答