You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Terraform azurerm_windows_function_app的ip_restrictions配置报错求助

问题解决:azurerm_windows_function_app ip_restriction 配置报错

报错原因

你使用的AzureRM Provider v3.38.0存在schema验证bug,当ip_restriction块使用virtual_network_subnet_id时,错误地要求必填headers、ip_address或service_tag属性,与官方文档描述不符。同时你的配置逻辑也不符合需求(当前配置是拒绝指定子网,而非仅允许该子网访问)。

解决方案

1. 升级AzureRM Provider版本

将provider版本升级至v3.40.0及以上(该版本修复了此schema验证问题),修改provider配置块:

terraform {
  required_providers {
    azurerm = {
      source  = "hashicorp/azurerm"
      version = ">= 3.40.0"
    }
  }
}

执行terraform init -upgrade完成版本升级。

2. 修正ip_restriction配置逻辑

要实现拒绝所有流量,仅允许指定子网访问,需要配置两条规则:

  • 高优先级规则允许指定子网访问
  • 低优先级规则拒绝所有其他流量

示例配置:

resource "azurerm_windows_function_app" "windows_function_app" {
  # 其他属性省略...

  site_config {
    # 其他site_config属性省略...

    ip_restriction = [
      # 允许指定子网访问,优先级100(数字越小优先级越高)
      {
        action                  = "Allow"
        virtual_network_subnet_id = data.terraform_remote_state.netsec_outputs.outputs.vnet_subnets_info["APIM"].id
        name                    = "Allow APIM Subnet"
        priority                = 100
      },
      # 拒绝所有其他流量,优先级200
      {
        action      = "Deny"
        ip_address  = "0.0.0.0/0"
        name        = "Deny All"
        priority    = 200
      }
    ]
  }
}

3. 临时 workaround(若无法升级provider)

如果必须使用v3.38.0,可在ip_restriction块中添加空的headers属性绕过验证:

ip_restriction = [
  {
    action                  = "Allow"
    virtual_network_subnet_id = data.terraform_remote_state.netsec_outputs.outputs.vnet_subnets_info["APIM"].id
    name                    = "Allow APIM Subnet"
    priority                = 100
    headers                 = [] # 临时添加空headers绕过验证
  },
  {
    action      = "Deny"
    ip_address  = "0.0.0.0/0"
    name        = "Deny All"
    priority    = 200
    headers     = []
  }
]

内容的提问来源于stack exchange,提问作者Chinchachee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 19:35:21