#terraform #azure-web-app-service #terraform-provider-azure #azurerm-app-service
Вопрос:
Я ищу решение для изменения приоритета в динамическом коде «ip_restrication», который я использую
variable "ip_address_list" {
type = list
default = ["20.20.20.3/32" , "10.10.10.2/32"]
}
site_config {
dynamic "ip_restriction" {
for_each = var.ip_address_list
content {
ip_address = cidrhost(ip_restriction.value, 0)
action = "Allow"
priority = 100
}
}
При использовании этого кода я получил следующий вывод
- ip_рестрикция= [
- {
- действие= «Разрешить»
- заголовки= (известны после применения)
- ip_адрес= «20.20.20.3»
- имя= (известно после применения)
- приоритет= 100
- service_tag= ноль
- virtual_network_subnet_id = null },
- {
- действие= «Разрешить»
- заголовки= (известны после применения)
- ip_адрес= «10.10.10.2»
- имя= (известно после применения)
- приоритет= 100
- service_tag= ноль
- virtual_network_subnet_id = null }, ]
Комментарии:
1. Не могли бы вы, пожалуйста, добавить свой variables.tf или как определяется список адресов var.ip_address_list?
2. Переменная определяется следующим образом: переменная «ip_address_list» { тип = список по умолчанию= [«20.20.20.3/32» , «10.10.10.2/32»] }
Ответ №1:
Вы можете использовать что-то вроде этого:
locals {
ip_address_list = [
{
ip_add : "20.20.20.3/32",
prior : "100"
},
{
ip_add : "10.10.10.2/32",
prior : "101"
}
]
}
и затем
site_config {
dynamic "ip_restriction" {
for_each = local.ip_address_list
content {
ip_address = ip_restriction.value["ip_add"]
action = "Allow"
priority = ip_restriction.value["prior"]
}
}
Выход:
Примечание.Вместо объявления переменных вы можете объявить локальные, как указано выше, а затем использовать блок конфигурации сайта, указанный выше.
Обновление: В соответствии с этой проблемой Github @martinjt прокомментировал, что он ожидает ipadd/32, поскольку маска подсети не включена в новые версии . Итак, изменил приведенный выше код, удалив cidrhost
и применив его, он был успешно развернут.
Ошибка: с cidrhost
После удаления cidrhost
Комментарии:
1. Это выглядит хорошо, но при попытке развертывания у меня возникает ошибка: Ошибка: создание службы приложений «hook-service» (Группа ресурсов «RG-DEV-ТЕСТ»): web.AppsClient#CreateOrUpdate: Ошибка отправки запроса: StatusCode=0 — Исходная ошибка: Код=»Плохой запрос» Сообщение=»Ограничение безопасности IPS». IP-адрес недействителен. «20.20.20.3» является недопустимым CIDR!»}
2. также @Игорь, не могли бы вы, пожалуйста, попробовать
ip_restriction.value["ip_add"]
только вместоcidrhost(ip_restriction.value["ip_add"], 0)
и дать мне знать, если это решит вышеуказанное'20.20.20.3' is an invalid CIDR!"}
3. Спасибо. Я протестировал, и он успешно развертывается.