问题描述
在删除 vmss Network InterfaceConfiguration 时出错。代码如下:
$myVmss = Get-AzVmss -ResourceGroupName 'MyApp-test-rg' -VMScaleSetName 'Myapp-vmss'
Remove-AzVmssNetworkInterfaceConfiguration -VirtualMachinescaleSet $myVmss -Name $myVmss.VirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations.IPConfigurations.Name
Remove-AzVmssNetworkInterfaceConfiguration: Sequence contains no matching element
有人可以推荐吗。
编辑:
我要做的就是将基本 LB 的后端池配置应用到新标准 LB。按照 Joy 的建议,remove 命令成功了,但现在面临 update-azvmss 命令的问题。
$myVmss = Get-AzVmss -ResourceGroupName $rgName -VMScaleSetName $vmssName
$newlb = (Get-AzLoadBalancer -ResourceGroupName $rgName -Name $newLbName)
$mysubnetId = $myVmss.VirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations.IpConfigurations[0].subnet.Id
$backendPoolId = $newlb.BackendAddresspools.Id
$ipConfig = New-AzVmssIpConfig -Name MyNewConfig -subnetId $mysubnetId -LoadBalancerBackendAddresspoolsId $backendPoolId
Remove-AzVmssNetworkInterfaceConfiguration -VirtualMachinescaleSet $myVmss -Name $myVmss.VirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations.Name[1]
Add-AzVmssNetworkInterfaceConfiguration -Name MyNewConfig -Primary $true -VirtualMachinescaleSet $myVmss -IpConfiguration $ipConfig
$myVmss | Update-AzVmss
这里是错误-
Update-AzVmss: Primary network interface configuration of VM scale set /subscriptions/xxxxxxxxxxxx/resourceGroups/xxxxxx-RG/providers/Microsoft.Compute/virtualMachinescaleSets/xxxxxxx cannot be changed. Original Primary network interface configuration: xxxxxx-vnet-v2-nic01,Requested: MyNewConfig.
解决方法
您需要传递NetworkInterfaceConfiguration
的名称,而不是IPConfiguration
,并且您需要注意myVmss.VirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations.Name
是一个数组,因此您需要给出具体的。
在运行 Remove-AzVmssNetworkInterfaceConfiguration
之前,您可能需要检查 $myVmss.VirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations.Name
以确认您要删除的 NetworkInterfaceConfiguration
。
比如要去掉Test
,那么命令应该是:
Remove-AzVmssNetworkInterfaceConfiguration -VirtualMachineScaleSet $myVmss -Name $myVmss.VirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations.Name[1]
提示:
要使其生效,您需要停止VMSS,然后在Update-AzVmss
后使用Remove-AzVmssNetworkInterfaceConfiguration
。
$myVmss = Get-AzVmss -ResourceGroupName testvmss -VMScaleSetName myvmss
Remove-AzVmssNetworkInterfaceConfiguration -VirtualMachineScaleSet $myVmss -Name $myVmss.VirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations.Name[1]
$myvmss | Update-AzVmss