Я работаю над этим модулем terraform azure_rm nsg (группа сетевой безопасности), и я стараюсь сделать его максимально управляемым и универсальным. все работает, как ожидалось, но не работает один флаг.
Файл Main.tf
`resource "azurerm_network_security_rule" "Inbound" {
count = length(var.inbound_port_ranges)
name = "sg-rule-${count.index}"
direction = "Inbound"
access = "Allow"
priority = element(var.priority, count.index)
source_address_prefix = "*"
source_port_range = "*"
destination_address_prefix = "*"
destination_port_range = element(var.inbound_port_ranges, count.index)
protocol = "TCP"
resource_group_name = azurerm_network_security_group.this.resource_group_name
network_security_group_name = azurerm_network_security_group.this.name
}
`
Файл Variables.tf:
`variable "resource_group_name" {
default = "test"
}
variable "priority" {
default = ["100", "101"]
}
variable "inbound_port_ranges" {
default = ["8000", "8001"]
}
variable "outbound_port_ranges" {
default = ["9000", "9001"]
}
`
Мне удалось прочитать список в переменных для 'destination_port_range', но не для переменной приоритета, и он продолжал выдавать ошибку с ошибкой ниже, и я не уверен, почему?
`Error: Incorrect attribute value type
on main.tf line 20, in resource "azurerm_network_security_rule" "Inbound":
20: priority = "element(var.priority, ${count.index})"
|----------------
| count.index is 1
Inappropriate value for attribute "priority": a number is required.
`
Было бы очень полезно и очень признательно, если бы кто-нибудь мог указать мне в правильном направлении, чтобы решить эту проблему. Все, что я хочу, - это читать значения из списка с индексом, чтобы я мог использовать одно и то же входящее правило для создания нескольких правил.
Заранее спасибо.