Подключение виртуальной сети Azure к частному DNS с помощью Azure CLI

Я работаю над сценарием Azure CLI для автоматизации создания виртуальной сети в нашей облачной инфраструктуре. Одна из частей этого сценария связывает виртуальную сеть с частной DNS Azure. Это должно быть легко, но, похоже, трудность заключается в том, что виртуальная сеть и частный DNS находятся в разных группах ресурсов.

Это мой сценарий;

   az network private-dns link vnet create --name MyLink \
     --registration-enabled true \
     --resource-group my-vnet-resourcegroup\
     --subscription 'My Subscription' \
     --tags Domain=MyDomain \
     --virtual-network my-own-vnet \
     --zone-name myzone.nu

Теперь при выходе я получаю следующую ошибку:

Невозможно выполнить запрошенную операцию над вложенным ресурсом. Родительский ресурс myzone.nu не найден.

Поэтому я обновил сценарий, чтобы посмотреть на группу ресурсов для частного DNS;

   az network private-dns link vnet create --name MyLink \
     --registration-enabled true \
     --resource-group my-privatedns-resourcegroup \
     --subscription 'My Subscription' \
     --tags Domain=MyDomain \
     --virtual-network my-own-vnet \
     --zone-name myzone.nu

Это дает мне следующую ошибку:

Ошибка развертывания. Идентификатор корреляции: (SomeGuid). Ресурс виртуальной сети не найден для '/subscriptions//resourceGroups/my-privatedns-resourcegroup/providers/Microsoft.Network/virtualNetworks/my-own-vnet'

На данный момент я застрял в том, как это исправить. Кто-нибудь еще сталкивался с этим раньше? Я открыт для предложений!


person Rob    schedule 17.12.2019    source источник


Ответы (1)


Вы можете передать идентификатор виртуальной сети для создания частной DNS-ссылки vNet, если виртуальная сеть находится в другой группе ресурсов, которая отличается от группы ресурсов вашей зоны DNS.

VnetID=$(az network vnet show -g vnet-rg -n my-vnet --query 'id' -o tsv)
az network private-dns link vnet create -n mylink -e true -g dns-rg -z myzone.nu -v $VnetID

введите здесь описание изображения

или вы можете использовать Azure Powershell.

$vnet = Get-AzVirtualNetwork -name my-own-vnet -ResourceGroupName my-vnet-resourcegroup

New-AzPrivateDnsVirtualNetworkLink -ZoneName private.contoso.com `
  -ResourceGroupName MyAzureResourceGroup -Name "mylink" `
  -VirtualNetworkId $vnet.id -EnableRegistration
person Nancy Xiong    schedule 18.12.2019
comment
превосходно, это был путь. Большое спасибо! - person Rob; 20.12.2019