【发布时间】:2019-12-25 02:20:46
【问题描述】:
我正在使用 Kinesis Firehose 将应用程序日志从 CloudWatch Logs 复制到 S3 存储桶中。
- 应用程序日志写入 CloudWatch
- 日志组上的 Kinesis 订阅将日志事件提取到 Kinesis 流中。
- firehose 传输流使用 Lambda 函数来解压缩和转换源记录。
- Firehose 将转换后的记录写入启用 GZIP 压缩的 S3 目标。
但是,此流程存在问题。我经常注意到 Lambda 转换函数失败,因为输出数据超过了 Lambda 同步调用的 6 MiB response payload limit。这是有道理的,因为输入被压缩但输出没有被压缩。这样做似乎是在 S3 中的结果对象上正确设置文件扩展名和 MIME 类型的唯一方法。
有什么方法可以将输入未压缩地传递给 Lambda 转换函数?
这将对齐输入/输出大小。我已经尝试减少 Firehose 传输流上的缓冲区大小,但缓冲区大小限制似乎是针对压缩数据,而不是原始数据。
【问题讨论】:
标签: amazon-web-services amazon-s3 amazon-kinesis-firehose amazon-cloudwatchlogs