The*_*One 4 amazon-s3 amazon-web-services
我正在尝试找到一种解决方案,以便在 ALB 日志文件自动从 ALB 上传到 S3 时提取 .gz 格式的 ALB 日志文件。
我的桶结构是这样的
/log-bucket
..alb-1/AWSLogs/account-number/elasticloadbalancing/ap-northeast-1/2018/log.gz
..alb-2/AWSLogs/account-number/elasticloadbalancing/ap-northeast-1/2018/log.gz
..alb-3/AWSLogs/account-number/elasticloadbalancing/ap-northeast-1/2018/log.gz
Run Code Online (Sandbox Code Playgroud)
基本上,每 5 分钟,每个 ALB 都会自动将日志推送到对应的 S3 存储桶。我想立即在同一个存储桶中提取新的 .gz 文件。
有什么办法可以处理这个问题吗?
我注意到我们可以使用 Lambda 函数,但不知道从哪里开始。示例代码将不胜感激!
您最好的选择可能是让 AWS Lambda 函数订阅 S3 事件。每当创建新对象时,都会触发此 Lambda 函数。然后,Lambda 函数可以从 S3 读取文件,提取该文件,将提取的数据写回到 S3 并删除原始数据。
将AWS Lambda 与 Amazon S3 配合使用中描述了其工作原理。
也就是说,您可能还需要重新考虑是否确实需要在 S3 中存储未压缩的日志。压缩文件不仅更便宜,因为它们不像未压缩文件那样占用那么多的存储空间,而且处理速度通常也更快,因为在大多数情况下,瓶颈是传输数据的网络带宽,而不是可用的 CPU 资源。减压。大多数工具还支持直接处理压缩文件。以 Amazon Athena(压缩格式)或 Amazon EMR(如何处理压缩文件)为例。
| 归档时间: |
|
| 查看次数: |
9573 次 |
| 最近记录: |