如何通过Azure CLI将VMSS添加至应用网关后端池?
将VMSS添加至应用网关后端池的CLI解决方案
错误分析与纠正
你尝试更新VMSS配置时的命令错误在于:applicationGatewayBackendAddressPools是数组类型属性,不能用--set配合"[]".id的方式赋值,正确做法是用--add追加完整的JSON对象元素。
可行CLI方案
方案1:修改VMSS配置,让实例自动加入后端池
此方案会修改VMSS的模板配置,后续新创建的实例会自动加入指定后端池,已存在的实例需重新部署生效:
az vmss update --resource-group "<你的资源组名>" --name "<你的VMSS名>" --add virtualMachineProfile.networkProfile.networkInterfaceConfigurations[0].ipConfigurations[0].applicationGatewayBackendAddressPools '{"id": "/subscriptions/<订阅ID>/resourceGroups/<资源组名>/providers/Microsoft.Network/applicationGateways/<应用网关名>/backendAddressPools/<后端池名>"}'
若需让已存在的实例生效,执行:
az vmss update-instances --resource-group "<资源组名>" --name "<VMSS名>" --instance-ids "*"
方案2:直接将整个VMSS关联至应用网关后端池
此方案无需逐个添加实例IP/FQDN,应用网关会自动同步VMSS的实例变化,完全适配自动化脚本需求:
az network application-gateway address-pool update --resource-group "<资源组名>" --gateway-name "<应用网关名>" --name "<后端池名>" --add backendAddresses '{"id": "/subscriptions/<订阅ID>/resourceGroups/<资源组名>/providers/Microsoft.Compute/virtualMachineScaleSets/<VMSS名>"}'
说明
- 方案2更贴合你的需求,它直接关联VMSS资源,无需担心实例轮换导致的地址变更。
- 替换命令中所有
<>包裹的占位符为实际资源信息即可执行。
内容的提问来源于stack exchange,提问作者Vedant Sharma
相关产品推荐
相关产品推荐

