Назначение публичного 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
Другие вопросы по тегам