0

尝试为 aws s3 版本控制配置添加动态块时,我收到错误 'versioning_configuration' 参数是必需的。请在下面找到代码实例并提出最佳答案。

resource "aws_s3_bucket_acl" "firehose_to_s3" {
bucket = aws_s3_bucket.firehose_to_s3.id
acl = "private"
}

resource "aws_s3_bucket_versioning" "firehose_to_s3" {
bucket = aws_s3_bucket.firehose_to_s3.id

dynamic "versioning_configuration" {
#value of replicate is false and true.
for_each = var.replicate ? ["yes"] : []
content {
status = "Enabled"
}

}
}

下面是我得到的错误参数“versioning_configuration”是必需的,但没有找到定义。

4

1 回答 1

0

如果您的目标只是基于布尔变量启用或禁用版本控制,您可以使用 count

resource "aws_s3_bucket_versioning" "firehose_to_s3" {
  count = var.replicate ? 1 : 0

  bucket = aws_s3_bucket.firehose_to_s3.id

  "versioning_configuration" {
    status = "Enabled"
  }
}

这是因为默认情况下不启用版本控制,因此当您不想要它时无法创建资源。

或者您可以在status变量上添加条件,例如

resource "aws_s3_bucket_versioning" "firehose_to_s3" {

  bucket = aws_s3_bucket.firehose_to_s3.id

  "versioning_configuration" {
    status =   var.replicate ? "Enabled" : "Suspended"
  }
}
于 2022-02-19T18:54:49.557 回答