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

如何在AWS S3生命周期过期前缀规则中使用正则匹配并通过Terraform实现

实现方案说明

首先要明确一个S3的基础限制:S3生命周期规则的前缀匹配不支持正则表达式,你提到的/*/5.1[1-3]/格式的正则无法直接在S3生命周期规则中使用,只能通过显式指定匹配前缀的方式实现需求。

下面是两种可行的Terraform实现方式:

方案1:单条规则匹配多个前缀(推荐,仅需配置一条规则)

如果你的目标文件夹都是存放在同一个根前缀下,或者你需要匹配的就是对应路径下的5.11/、5.12/、5.13/前缀,你可以通过Terraform的动态块批量配置前缀过滤,规则会统一对所有匹配前缀的对象生效。
示例代码如下:

resource "aws_s3_bucket" "example" {
  bucket = "替换为你的存储桶名称"
}

# 生命周期规则配置
resource "aws_s3_bucket_lifecycle_configuration" "example" {
  bucket = aws_s3_bucket.example.id

  rule {
    id     = "archive-5.11-5.13-folders"
    status = "Enabled"

    # 动态生成三个前缀的过滤条件
    dynamic "filter" {
      for_each = toset(["5.11/", "5.12/", "5.13/"])
      content {
        prefix = filter.value
      }
    }

    # 归档配置,这里示例是30天后归档到S3 Glacier Flexible Retrieval,可按需修改
    transition {
      days          = 30
      storage_class = "GLACIER"
    }

    # 如需配置过期删除等其他策略可补充对应块,不需要可直接删除
    # expiration {
    #   days = 365
    # }
  }
}

注意:如果你的5.11/等文件夹都放在固定的上级目录下,比如所有文件夹都在projects/下面,就把前缀改成projects/5.11/这种完整前缀即可。


方案2:针对每个文件夹单独配置规则

如果需要为不同版本的文件夹配置不同的归档周期,可以拆成多条独立规则:

resource "aws_s3_bucket_lifecycle_configuration" "example" {
  bucket = aws_s3_bucket.example.id

  # 5.11文件夹归档规则
  rule {
    id     = "archive-5.11"
    status = "Enabled"
    filter {
      prefix = "5.11/"
    }
    transition {
      days          = 30
      storage_class = "GLACIER"
    }
  }

  # 5.12文件夹归档规则
  rule {
    id     = "archive-5.12"
    status = "Enabled"
    filter {
      prefix = "5.12/"
    }
    transition {
      days          = 30
      storage_class = "GLACIER"
    }
  }

  # 5.13文件夹归档规则
  rule {
    id     = "archive-5.13"
    status = "Enabled"
    filter {
      prefix = "5.13/"
    }
    transition {
      days          = 30
      storage_class = "GLACIER"
    }
  }
}

验证方式

配置完成执行terraform plan确认规则无误后apply即可,你可以在AWS S3控制台的存储桶「管理」标签页下的生命周期规则中核对生成的规则是否正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 02:36:06