当尝试为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"
}
}