Я пытаюсь создать правило azure lb, используя element, и вот сообщение об ошибке и код, перечисленные ниже.
Что мне следует изменить в моем файле main.tf или файле variables.tf, чтобы элемент заработал. Однако, когда я предоставляю порты напрямую (с комментариями), код выполняется без каких-либо проблем.
Произошла 1 ошибка (и):
azurerm_lb_rule.test: произошла 1 ошибка (и):
azurerm_lb_rule.test: в столбце 3, строка 1: элемент: аргумент 1 должен быть списком типов, полученная строка типа в:
$ {element (var.lb_port ["$ {element (keys (var.lb_port), count.index)}"], 2)}
main.tf
resource "azurerm_lb_rule" "test" {
resource_group_name = "${azurerm_resource_group.test.name}"
loadbalancer_id = "${azurerm_lb.lb.id}"
name = "LBRule"
protocol = "Tcp"
#frontend_port = 3389
#backend_port = 3389
protocol = "${element(var.lb_port["${element(keys(var.lb_port), count.index)}"], 0)}"
frontend_port = "${element(var.lb_port["${element(keys(var.lb_port), count.index)}"], 1)}"
backend_port = "${element(var.lb_port["${element(keys(var.lb_port), count.index)}"], 2)}"
frontend_ip_configuration_name = "${var.frontend_name}"
}
variables.tf
variable "lb_port" {
description = "Protocols to be used for lb health probes and rules."
default = {"var1" = "tcp,3389,3389"}
}
${tolist(element(var.lb_port["${element(keys(var.lb_port), count.index)}"], 2))}
- person 4c74356b41   schedule 18.09.2019