0

Я использую набор шкал VM с шлюзом приложения в шаблоне ARM. Первое развертывание отлично работает. При повторном развертывании шаблона я получаю сообщение об ошибке: «У пула адресов Backend может быть не более одного набора шкал VM».Ошибка при перераспределении шкалы VM с помощью ARM

IpConfiguration /subscriptions/.../resourceGroups/.../providers/Microsoft.Compute/virtualMachineScaleSets/.../updateGroups/.../networkInterfaceConfigurations/.../ipConfigurations/... cannot reference Backend Address Pool /subscriptions/.../resourceGroups/.../providers/Microsoft.Network/applicationGateways/.../backendAddressPools/... because it contains another VM scale set. A Backend Address Pool can have atmost one VM scale set. (Code: ApplicationGatewayBackendAddressPoolCanHaveAtMostOneVMScaleSet)

В чем причина этой проблемы?

Уточнение: Передислокация Я имею в виду: я хочу обновить существующее развертывание. Я не хочу дублировать.

ответ

0

Я связался с командой Azure, и они сообщили мне, что это ошибка на их стороне, которая будет исправлена ​​на следующем выпуске NRP.

Редактировать: Эта ошибка была устранена.

0

«Backend пул адресов» является (по Azure Resource Manager Support for Load Balancer)

these are IP addresses associated with the virtual machine Network Interface Card (NIC) to which load will be distributed.

Что происходит на вашем развертывании будет у вас есть развертывание, который пытается использовать один и тот же бэкенд пул адресов через два разных набора виртуальных машин ,

Где-то в шаблоне вы будете иметь сечение, которое является чем-то вроде этого

"type": "Microsoft.Network/loadBalancers", 
"name": "[variables('loadBalancerName')]", 
"location": "[parameters('resourceLocation')]", 
"apiVersion": "[variables('networkApi')]", 
"dependsOn": [ 
    "[concat('Microsoft.Network/publicIPAddresses/', variables('publicIPAddressName'))]" 
], 
"properties": { 
    "backendAddressPools": [ 
     { 
      "name": "[variables('backendAddressPoolsName')]" 
     } 
    ], 

(очевидно, не является допустимой частью JSON/шаблона)

Если вы измените переменную backendAddressPoolsName во втором шаблоне это решит проблему.

Если вам нужно развернуть этот шаблон несколько раз, вы можете создать уникальное имя, изменив переменную, чтобы быть что-то вроде этого

"backendAddressPoolsName": "[toLower(concat(parameters('BaseName'), uniqueString(resourceGroup().id)))]", 

Это позволит создать уникальную строку, основанную на групповой идентификатор ресурса. Это означает, что вы можете развернуть несколько групп ресурсов из одного и того же шаблона без проблем.

+0

Я развертываю его снова, чтобы обновить существующий шлюз и набор шкал. Я не намерен добавлять еще один шлюз и шкалу. –

0

Когда вы передислоцируете шаблон, что вы пытаетесь изменить?

Для повторного развертывания вам не нужно указывать все свойства VMSS, такие как сеть, и связанные с ними ресурсы, такие как шлюз приложений, только свойство sku для VMSS и любые свойства, которые вы конкретно меняете.