【问题标题】:Multi S3 bucket Definition with versioning limitations具有版本控制限制的多 S3 存储桶定义
【发布时间】:2023-05-12 03:25:01
【问题描述】:

我正在阅读这篇文章:Terraform - creating multiple buckets

并且想知道如何添加一个过滤器以在其中一个存储桶上启用存储桶版本控制,并使用 terraform 条件或任何允许它工作的东西禁用其余存储桶的版本控制? 我正在尝试这样的事情,但它不起作用

variable "s3_bucket_name" {
  type    = "list"
  default = ["prod_bucket", "stage-bucket", "qa_bucket"]
}

resource "aws_s3_bucket" "henrys_bucket" {
  count         = "${length(var.s3_bucket_name)}"
  bucket        = "${var.s3_bucket_name[count.index]}"
  acl           = "private"
  force_destroy = "true"
  var.s3_bucket_name[count.index] != "target-bucket-name" versioning { enabled = true } : versioning { enabled = false }
}

【问题讨论】:

    标签: amazon-s3 terraform bucket


    【解决方案1】:

    您可以使用对象列表而不仅仅是存储桶名称列表。该对象可以包含存储桶名称和 versioning_enabled 标志。然后使用 bucket-name 和 versioning_enabled。

    类似:

    bucket        = var.s3_buckets[count.index].bucket_name 
    

    对于版本控制,添加基于 var.s3_buckets[count.index].versioning_enabled 的动态块,如下所示:

    dynamic "versioning" {
      for_each = var.s3_buckets[count.index].versioning_enabled== true ? [1] : []
      content {
        enabled = true
      }
    }
    

    【讨论】:

    • 谢谢你这样做。非常感谢您的帮助。
    最近更新 更多