You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Kinesis Firehose写入S3的Parquet对象添加标签适配生命周期规则

解决方案:通过Kinesis Firehose为S3对象添加标签触发生命周期规则

核心可行方案

Kinesis Firehose支持在将数据写入S3时直接为对象添加标签,无需修改现有生命周期规则,具体实现方式如下:

1. 控制台配置Firehose添加标签

在创建或更新Kinesis Firehose交付流的S3目标环节,进入高级配置的标签设置:

  • 新增标签,键设为S3Intelligent1Yr,值设为Yes
  • 该配置会让Firehose在生成Parquet文件并写入S3时,自动为对象打上对应标签,匹配生命周期规则的过滤条件,触发转存至INTELLIGENT_TIERING和365天后过期的动作

2. Terraform代码配置(若用基础设施即代码管理)

如果通过Terraform管理Firehose交付流,可在aws_kinesis_firehose_delivery_stream资源的s3_configuration块中添加标签配置:

resource "aws_kinesis_firehose_delivery_stream" "log_delivery" {
  name        = "log-to-s3-parquet"
  destination = "s3"

  s3_configuration {
    role_arn        = aws_iam_role.firehose_role.arn
    bucket_arn      = aws_s3_bucket.lifecycle_testing.arn
    prefix          = "logs/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/"
    error_output_prefix = "errors/"

    # 添加匹配生命周期规则的对象标签
    tagging_configuration {
      tag {
        key   = "S3Intelligent1Yr"
        value = "Yes"
      }
    }

    # Parquet格式序列化配置(按需补充)
    output_format_configuration {
      serializer {
        parquet_serializer {
          compression = "SNAPPY"
        }
      }
    }
  }
}

3. 权限验证

确保Firehose使用的IAM角色拥有s3:PutObjectTagging权限,否则无法为S3对象添加标签。需在角色权限策略中补充:

{
  "Effect": "Allow",
  "Action": "s3:PutObjectTagging",
  "Resource": "arn:aws:s3:::lifecycle-testing/*"
}

验证步骤

  1. 等待Firehose生成并写入新的Parquet文件到目标S3桶
  2. 在S3控制台查看对象的标签属性,确认S3Intelligent1Yr=Yes已成功添加
  3. 检查生命周期规则的执行记录,确认对象已被转存至INTELLIGENT_TIERING存储类

内容的提问来源于stack exchange,提问作者Divya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 14:22:45