Да, у вас там неправильный синтаксис.Вы, очевидно, имеете в виду это:
resource "azurerm_application_gateway" "AppGateway" {
dynamic "disabled_rule_group" {
for_each = var.disabled_rule_groups // Removed [ ] from this line.
content {
rule_group_name = disabled_rule_group.value.rule_group_name
rules = disabled_rule_group.value.rules
}
}
}
Кроме того, переменная disabled_rule_groups
должна быть необязательной.Таким образом, если не настроен disabled_rule_groups, блок следует отключить.Как я могу достичь этого?Нужна ли мне вторая логическая переменная и if для каждого?
Лучший способ сделать параметр необязательным - разрешить ему по умолчанию пустой список.Но так, как вы это написали, он уже является необязательным, но если он не указан, по умолчанию будет использоваться значение по умолчанию, которое вы выписали.
Возможно, вам нужно следующее:
variable "disabled_rule_groups" {
default = []
}
Тогда вам не нужна никакая условная логика, потому что если вы зациклите пустой список (то есть for_each = []
), то ни один из этих динамических вложенных блоков не будет сгенерирован, и это выглядитты хочешь.