Terraform:能否在单个资源中组合多个S3生命周期策略
合并S3存储桶Terraform生命周期策略的方法
当然可以将两条生命周期策略合并到单个aws_s3_bucket_lifecycle_configuration资源中,该资源本身支持在同一个块内定义多个rule条目。
你之前的代码里第二个策略引用的桶aws_s3_bucket.dest.id不存在(仅定义了aws_s3_bucket.artifact),先修正这个问题,再把两个规则合并到同一个资源里即可,修改后的代码如下:
resource "aws_s3_bucket" "artifact" { bucket = "jatin-123" } resource "aws_s3_bucket_lifecycle_configuration" "artifact_lifecycle" { bucket = aws_s3_bucket.artifact.bucket # 规则1:当前版本30天后过期 rule { id = "expire-current-versions" status = "Enabled" expiration { days = 30 } } # 规则2:非当前版本3天后删除 rule { id = "delete-noncurrent-versions" status = "Enabled" noncurrent_version_expiration { noncurrent_days = 3 } } }
每个rule块对应一条独立的生命周期规则,只需确保每个规则的id唯一,Terraform就会将这些规则作为一个整体应用到目标S3存储桶上。
内容的提问来源于stack exchange,提问作者Jatin Mehrotra
相关产品推荐
相关产品推荐

