Kinesis Data Firehose 数据转换与压缩

0

【以下的问题经过翻译处理】 大家好,

我们正在基于CloudWatch Logs DestinationsKinesis Firehose 的解决方案上进行开发,以便能够将多个应用程序账户CloudWatch Logs集中到我们组织中的集中日志账户中,如下图所示,并在此处描述 here :

Enter image description here

我们使用Lambda FunctionFirehose Stream触发进行数据转换,然后将数据发送到最终目的地S3 Bucket

Lambda应该解压缩接收到的数据,处理它并将其发送回Firehose Stream“Base on Firehose Lambda Blueprint”

除了Kinesis Firehose Compression之外,一切都如预期那样工作,在Firehose目标设置上,我们已经启用了以GZIP格式压缩数据记录,但是我们在S3 Bucket上收到的是具有**.gz扩展名未压缩**文件!!

Enter image description here

对如何解决这个问题大家有什么想法吗?

Lambda是否应在处理数据记录并将其发送回Firehose Stream之前对其进行压缩,以及如何进行压缩?

提前感谢。

1 Antwort
0

【以下的回答经过翻译处理】 我找出了问题所在,就在使用Kinesis Firehose将对象写入S3时,它会在对象的元数据中添加一个key/value对: "Content-Encoding=gzip"。当我们在浏览器(UI)上请求下载S3中的对象时,这个key/value对会添加到response header中,这会导致浏览器自动解压缩该对象。最新的浏览器内置此功能,可以在下载时解压缩此类文件。因此,存储在S3存储桶中的文件具有正确的格式和压缩值,但当我们下载它时,浏览器会自动解压缩它,这是启用了GZIP压缩的Kinesis Firehose传递到S3的预期行为。

profile picture
EXPERTE
beantwortet vor 5 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen