使用 terraform 在 Azure 上为应用服务添加多个 IP 限制时的动态优先级更改
Dynamic Priority change when adding multiple IP Restriction for App Services on Azure using terraform
我正在寻找更改动态“ip_restriction”优先级的解决方案
我使用的代码是
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_restriction= [
- {
- action= "Allow"
- headers= (known after apply)
- ip_address= "20.20.20.3"
- name= (known after apply)
- priority= 100
- service_tag= null
- virtual_network_subnet_id = null },
- {
- action= "Allow"
- headers= (known after apply)
- ip_address= "10.10.10.2"
- name= (known after apply)
- priority= 100
- service_tag= null
- virtual_network_subnet_id = null }, ]
你可以这样使用:
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 issue @martinjt 评论说它期望 ipadd/32 因为子网掩码不包含在新版本中。因此,通过删除 cidrhost
更改上面的代码并进行应用,它已成功部署。
错误: 与 cidrhost
删除后 cidrhost
我正在寻找更改动态“ip_restriction”优先级的解决方案 我使用的代码是
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_restriction= [
- {
- action= "Allow"
- headers= (known after apply)
- ip_address= "20.20.20.3"
- name= (known after apply)
- priority= 100
- service_tag= null
- virtual_network_subnet_id = null },
- {
- action= "Allow"
- headers= (known after apply)
- ip_address= "10.10.10.2"
- name= (known after apply)
- priority= 100
- service_tag= null
- virtual_network_subnet_id = null }, ]
你可以这样使用:
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 issue @martinjt 评论说它期望 ipadd/32 因为子网掩码不包含在新版本中。因此,通过删除 cidrhost
更改上面的代码并进行应用,它已成功部署。
错误: 与 cidrhost
删除后 cidrhost