Назначение публичного IP-адреса существующему нику в Azure с использованием powershell
Используя Azure CLI, можно создать и назначить общедоступный IP-адрес существующему нику, например
Создать публичный ip в заданной группе ресурсов и регионе
azure network public-ip create -g myresourcegroup -a Dynamic -l westus mypublicipname
Назначьте пункт, созданный в предыдущем шаге, существующему нику
azure network nic set -g myresourcegroup -p mypublicipname mynicname
Однако подобный код в powershell не работает, например
Создать новый пункт (успешно завершен)
$pip = New-AzureRmPublicIpAddress -Name $pipName -ResourceGroupName $rgName -Location $locName -AllocationMethod Dynamic -Force
Назначить существующему нику
$nic = Get-AzureRmNetworkInterface -ResourceGroupName $rgName -Name $nicName
$nic.IpConfigurations[0].PublicIpAddress = $pip.IpAddress
Последняя строка не работает и выдает следующую ошибку:
The property 'Id' cannot be found on this object. Verify that the property exists and can be set.
At line:31 char:9
+ $nic.IpConfigurations[0].PublicIpAddress.Id = $pip.Id
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : PropertyNotFound
Хотя intellisense в PS ISE действительно показывает свойство Id для обоих! Кто-нибудь знает, должно ли это работать?
1 ответ
Спасибо Тиму Виману (MSFT) из AzureCAT за решение! По сути, вам необходимо назначить вновь созданный пункт для свойства nic PublicIPAddress, а затем запустить команду Set-AzureRmNetworkInterface, как показано ниже:
$nic.IpConfigurations[0].PublicIpAddress = $pip
Set-AzureRmNetworkInterface -NetworkInterface $nic