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

通过ARM/Bicep更新现有Application Gateway配置的可行性咨询

结论

你当前使用的单独声明backendAddressPools作为独立子资源部署的方式不可行。Application Gateway的后端地址池、HTTP监听器、请求路由规则等配置均属于主资源的属性数组内的元素,并非支持单独创建的可独立部署子资源,和App Service挂载现有服务计划的逻辑有本质区别。

正确实现方式

你需要先引用现有Application Gateway的全量配置,将需要新增的配置和原有配置数组合并后,重新部署整个Application Gateway资源完成更新,示例代码如下:

1. 引用现有Application Gateway

resource appGateway 'Microsoft.Network/applicationGateways@2021-03-01' existing = {
  name: appGwName
}

2. 构造更新后的配置数组

以新增后端地址池为例,将原有池和新增池合并:

var updatedBackendPools = concat(appGateway.properties.backendAddressPools, [
  {
    name: '${appName}-${environment}-backend'
    properties: {
      backendAddresses: [
        {
          fqdn: appServiceUrl
        }
      ]
    }
  }
])

3. 部署更新Application Gateway

保留所有原有无需修改的配置,仅替换需要更新的属性数组:

resource appGatewayUpdate 'Microsoft.Network/applicationGateways@2021-03-01' = {
  name: appGwName
  location: appGateway.location
  properties: {
    // 复用原有无需修改的核心配置
    sku: appGateway.properties.sku
    gatewayIPConfigurations: appGateway.properties.gatewayIPConfigurations
    frontendIPConfigurations: appGateway.properties.frontendIPConfigurations
    frontendPorts: appGateway.properties.frontendPorts
    backendHttpSettingsCollection: appGateway.properties.backendHttpSettingsCollection
    // 替换为合并后的后端地址池
    backendAddressPools: updatedBackendPools
    // 其他配置保持原有值不变,若需要新增监听器、路由规则则对应合并对应数组即可
    httpListeners: appGateway.properties.httpListeners
    requestRoutingRules: appGateway.properties.requestRoutingRules
  }
}

注意事项

  • 部署使用的身份必须持有目标Application Gateway的写入权限
  • 不要遗漏任何必填的原有属性,否则部署时会覆盖删除已有配置
  • 新增监听器、路由规则等其他配置时,使用相同的concat逻辑合并对应属性数组即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 17:54:06