删除 vmss 网络接口配置时出错

问题描述

删除 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

enter image description here

比如要去掉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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...