【发布时间】:2021-08-10 20:03:22
【问题描述】:
尝试创建多个私有 DNS 区域
- 非产品 --> Dev、QA、UAT。
- prod --> PRd,DR
仅当 is_nonprod 设置为 1 时才应创建资源。强调文本(布尔值)。 想法是在资源块中使用两次计数:一次用于布尔值,一次用于长度函数。
resource "azurerm_private_dns_zone" "example" {
count = var.is_nonprod ? 1 : 0 && length(var.env)
name = var.env[count.index].npr
resource_group_name = "examplerg"
}
变量文件:
variable "env" {
description = "List of routes to be added to the route table"
default = []
type = list(map(any))
}
variable "is_nonprod " {
default = true
}
tfvars
env = [
{ npr = "qa" },
{ npr = "uat" },
{ npr = "dev" }
]
错误: 真假结果表达式的类型必须一致。给定的 表达式分别是数字和布尔值。
解决方法:
resource "azurerm_private_dns_zone" "example" {
count = var.is_nonprod ? 1 : 0
count = length(var.env)
name = var.env[count.index].npr
resource_group_name = "examplerg"
}
错误: 参数“count”已经设置在 main.tf:96,3-8。每个参数可能是 只设置一次。
【问题讨论】: