【发布时间】:2020-01-18 20:47:27
【问题描述】:
我正在尝试使用元素创建一个 azure lb 规则,这是错误消息和下面列出的代码。
我应该在 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))}
标签: azure terraform terraform-provider-azure