通过 ARM 更新现有的应用程序网关

Update existing Application Gateway via ARM

大家好,

我目前正在构建一些二头肌模板来为一个项目建立新的环境,在我进入应用程序网关之前一切都很顺利。

我们有一个现有的 ApplicationGateway 实例,我希望将新的 backendAddressPool/httpListener/requestRoutingRule 等添加到其中,就像我们可以创建一个新的 Microsoft.Web/sites 并将其附加到现有的 Microsoft.Web/serverfarms.

不幸的是,这些似乎是属性,而不是子资源,因为我在尝试创建它们时遇到错误:

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

// This resource type is not valid
resource backendPool 'Microsoft.Network/applicationGateways/backendAddressPools@2021-03-01' = {
  name: '${appName}-${environment}-backend'
  parent: appGateway
  properties: {
    backendAddresses: [
      {
        fqdn: appServiceUrl
      }
    ]
  }
}

谁能确认是否有可能在我再花时间之前像这样更新现有网关的配置?

应用程序网关没有子资源。您需要在一次部署中部署具有所有属性的整个应用程序网关。为了添加额外的 httpListenersbackendAddressPools 等...,您需要使用现有 App GW 的所有属性创建一个模板,然后将新属性添加到模板中。

使用模板管理应用程序网关有点棘手。我最好的建议是在创作模板时使用 WhatIf 部署,因为这将帮助您验证 none 现有配置在部署模板时是否被意外删除或修改。