terraform 代码用于在 10 天后删除存储桶中的对象

Ank*_*kur 5 amazon-s3 terraform terraform-provider-aws

我必须在 10 天后删除存储桶中的对象。这意味着存储桶中超过 10 天的所有对象都需要使用 terraform 删除。

无论我在哪里找到删除它的代码,它都有前缀。如果我必须应用于存储桶中的所有对象而不是前缀,需要做什么。

ofi*_*ule 13

您需要添加过期生命周期规则(注意前缀是可选的)。

例子:

resource "aws_s3_bucket" "b1" {
  bucket = "b1"

  lifecycle_rule {
    enabled  = true
    id     = "expire_all_files"

    expiration {
        days = 10
      }
  }
}
Run Code Online (Sandbox Code Playgroud)

请参阅文档

更新:

在 v4.0 及更高版本上,aws 提供程序 api 已更改,现在添加过期生命周期规则如下所示:

resource "aws_s3_bucket" "b1" {
  bucket = "b1"    
}

resource "aws_s3_bucket_lifecycle_configuration" "l1" {
  bucket = aws_s3_bucket.b1.id
  rule {
    status = "Enabled"
    id     = "expire_all_files"
    expiration {
        days = 10
    }
  }
}
Run Code Online (Sandbox Code Playgroud)