重新部署使用ARM设置的VM比例时出错

时间:2016-04-07 09:28:12

标签: azure azure-resource-manager arm-template azure-vm-scale-set

我正在使用ARM模板中的应用程序网关设置的VM规模。首次部署工作正常。重新部署模板时,出现错误:“后端地址池最多可以设置一个VM比例”。

  

IpConfiguration   /订阅/.../ resourceGroups /.../提供商/ Microsoft.Compute / virtualMachineScaleSets /.../ updateGroups /.../ networkInterfaceConfigurations /.../ ipConfigurations / ...   无法引用后端地址池   /订阅/.../ resourceGroups /.../提供商/ Microsoft.Network / applicationGateways /.../ backendAddressPools / ...   因为它包含另一个VM比例集。后端地址池可以   最多只有一个VM规模集。 (码:   ApplicationGatewayBackendAddressPoolCanHaveAtMostOneVMScaleSet)

这个问题的根本原因是什么?

澄清:通过重新部署,我的意思是:我想更新现有部署。我不想复制。

3 个答案:

答案 0 :(得分:0)

'后端地址池'是(根据Azure Resource Manager Support for Load Balancer

  

这些是与将向其分发负载的虚拟机网络接口卡(NIC)相关联的IP地址。

部署中发生的情况是,您的部署尝试在两组不同的VM上使用相同的后端地址池。

在模板的某个地方,你会有一个类似这样的部分

"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)))]",

这将根据资源组ID创建唯一字符串。这意味着您可以从同一模板部署多个资源组而不会出现问题。

答案 1 :(得分:0)

当您重新部署模板时,您想要更改什么?

对于重新部署,您不需要指定所有VMSS属性(如网络)和相关资源(如应用网关),仅指定VMSS的sku属性以及您特别更改的任何属性。

答案 2 :(得分:0)

我联系了Azure团队,他们让我知道这是他们方面的一个错误,将在下一个NRP版本中修复。

编辑:此错误已解决。