我正在使用ARM模板中的应用程序网关设置的VM规模。首次部署工作正常。重新部署模板时,出现错误:“后端地址池最多可以设置一个VM比例”。
IpConfiguration /订阅/.../ resourceGroups /.../提供商/ Microsoft.Compute / virtualMachineScaleSets /.../ updateGroups /.../ networkInterfaceConfigurations /.../ ipConfigurations / ... 无法引用后端地址池 /订阅/.../ resourceGroups /.../提供商/ Microsoft.Network / applicationGateways /.../ backendAddressPools / ... 因为它包含另一个VM比例集。后端地址池可以 最多只有一个VM规模集。 (码: ApplicationGatewayBackendAddressPoolCanHaveAtMostOneVMScaleSet)
这个问题的根本原因是什么?
澄清:通过重新部署,我的意思是:我想更新现有部署。我不想复制。
答案 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版本中修复。
编辑:此错误已解决。