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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 15:05:26