Is it possible to use this
resource "azurerm_network_security_group" "this" {
for_each = {
for sg in local.nsgs:
sg.nsg_name => sg...
}
name = each.value.nsg_name
location = var.location
resource_group_name = var.resource_group_name
dynamic "security_rule" {
for_each = {
for sg in local.nsgs:
"${sg.rule}.${sg.name}" => sg
}
content {
name = each.value.name
priority = each.value.priority
direction = each.value.direction
access = each.value.access
protocol = each.value.protocol
source_port_range = each.value.source_port_range
destination_port_range = each.value.destination_port_range
source_address_prefix = each.value.source_address_prefix
destination_address_prefix = each.value.destination_address_prefix
}
}
}
I have two different flatten blocks that define structure for keys corresponding to names of network security groups and another one that defines all rules of the security groups.
The one above gives error because the second for_each never comes in context. The error:
59: destination_address_prefix = each.value.destination_address_prefix
|----------------
| each.value is tuple with 2 elements
shows that the first for_each loop still is in context and the second one never becomes active.