Azure link VNET 到使用 Azure CLI 的专用 DNS

Azure link VNET to Private DNS with Azure CLI

我正在使用 Azure CLI 脚本在我们的云基础设施中自动创建 vnet。此脚本中的一个部分是将 VNET 链接到 Azure 专用 DNS。这应该很容易,但显然困难在于 VNET 和私有 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

这给了我以下错误;

部署失败。关联 ID:(SomeGuid)。找不到'/subscriptions//resourceGroups/my-privatedns-resourcegroup/providers/Microsoft.Network/virtualNetworks/my-own-vnet'

的虚拟网络资源

我现在完全不知道如何解决这个问题。其他人 运行 以前参与过这个吗?我乐于接受建议!

如果虚拟网络位于不同于您的 DNS 区域资源组的另一个资源组中,您可以将虚拟网络 ID 传递给私有 DNS link vNet 创建。

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