无法在terraform 4.0.0版本中为aws s3的version_configuration添加动态块



当尝试为aws s3版本控制配置添加动态块时,我得到了错误"version_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"
}
}
}

下面是我得到的错误论点";版本配置";是必需的,但没有定义建立

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

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"
}
}

相关内容

最新更新