Я использую Terraform для создания некоторых компонентов AWS VPC, таких как aws_route
ниже.
Я пытаюсь динамически масштабировать количество шлюзов NAT с помощью параметра count
:
resource "aws_route" "my_nat_gw" {
route_table_id = "${var.rt_id}"
destination_cidr_block = "0.0.0.0/0"
nat_gateway_id = "${nat_gw_id}"
#I have an error here - on the "lookup" term
count = "${length(var.azs) * lookup(map(var.enable_nat_gateway, 1), "true", 0)}"
}
Ради краткости давайте проигнорируем часть length(var.azs)
в расчете count
.
Я получаю следующую ошибку в части lookup(map(var....)
:
Ожидается число, фактический тип String more
Переменная enable_nat_gateway
является логическим значением.
Я пробовал также следующее:
lookup(map(true, 1), true, 0)}
lookup(map("true", 1), "true", 0)}
Но все равно ничего хорошего.
Есть идеи как это исправить?
Некоторые расчеты для тех, кто не знаком с синтаксисом map и lookup :
Если enable_nat_gateway
равно true , тогда 'map' is equal to{true=1}
и общий срок поиска должен быть равен 1 .
прочее:
Если enable_nat_gateway
равно false , тогда 'map' is equal to{true=0}
и общий срок поиска должны быть равны 0 .
Обратите внимание, что я использую Terraform 0.11.11, поэтому функция map
все еще поддерживается.