0

我天真地用一个公共键标记了 S3 对象,但是任意值(UUID每批一个),相信它会“很容易”返回并删除具有指定标记的每个对象。

到目前为止,我的测试表明,如果我指定一个基于仅键(无值)过滤的生命周期规则,那么它仅匹配也具有键且没有值的对象,而不是匹配具有该键的所有对象而不考虑值.

我目前正在等待午夜 UTC,以确保问题不在 Terraform 和 Amazon S3 之间。但是,如果有一种已知的指定方式apply rule to all objects with tag-key K,那将非常有帮助;迄今为止我发现的文档还不是很清楚。

为了完整起见,需要一点地形:

resource "aws_s3_bucket" "my_s3_bucket" {
  ...
  lifecycle_rule {
    id = "Tagged current version expiration"
    prefix = "my_prefix/"

    tags = {
      recyclable = ""
    }

    enabled = var.tagged_current_version_expiration_enabled

    noncurrent_version_expiration {
      days = var.tagged_noncurrent_version_expiration_days
    }
    
    expiration {
      days = var.tagged_current_version_expiration_days
    }
  }
  ...
}
4

1 回答 1

1

恐怕生命周期规则文档在这一点上非常清楚,您必须为您创建的每个 UUID 编写规则。

生命周期规则适用于同时指定了两个标签的对象。Amazon S3 执行逻辑 AND。请注意以下事项:

每个标签必须完全匹配键和值。

该规则适用于具有规则中指定的所有标签的对象子集。如果对象指定了其他标签,则该规则仍将适用。

必须完全匹配键和值似乎表明您不能在此处使用任何通配符。

于 2021-08-17T19:57:09.297 回答