无法使用 Azure CLI 创建 NIC(BadRequestError)

无法使用 Azure CLI 创建 NIC(BadRequestError)

请考虑以下情形:

  • 一个名为的资源组rg-foo,在以下位置创建switzerlandnorth
  • 一个虚拟网络称为vnet-switzerland-north持有,一个子网default也称为位置switzerlandnorth
  • 提到的 vnet 是另一个资源组的一部分,rg-vnets名为westeurope

现在我想创建一个 NIC 并将其连接到子网default。所以我做了以下事情:

az network nic create --name nicfoo --subnet default --vnet-name vnet-switzerland-north --resource-group rg-foo

但其结果是……

BadRequestError:资源 /subscriptions/subscription-guid/resourceGroups/rg-foo/providers/Microsoft。资源 /subscriptions/subscription-guid/resourceGroups/rg-foo/providers/Microsoft.Network/networkInterfaces/nicfoo 引用的 Network/virtualNetworks/vnet-switzerland-north/subnets/default 未找到。请确保引用的资源存在,并且两个资源都位于同一区域。

我就是搞不懂这个错误信息。当然,虚拟网络和子网是存在的,我还要再三检查它们的位置。即使我添加了参数--location并明确说明我希望网卡位于同一区域,也会出现同样的错误。

提供这样的 id 也不会带来任何改变。

subnetid=$(az network vnet subnet show --vnet-name vnet-switzerland-north --name default --resource-group rg-vnets --output tsv --query [id])
az network nic create --name nicfoo --subnet $subnetid

我在这里做错了什么?


编辑

  • 更新到最新的 Azure CLI 版本 (2.13.0) 未带来任何变化
  • 我能够通过 Azure 门户创建网卡,没有任何问题

如果我创建另一个 test-vnet (@ switzerlandnorth) 并将其放入 rg-foo (@ switzerlandnorth),那么我就能够使用前面提到的参数在该 rg 中创建一个 nic。看来 Azure CLI 不喜欢rg-vnets中的事实westeurope


编辑

同样有趣的是它可以与 Azure PowerShell 兼容。

$vnet = Get-AzVirtualNetwork -Name vnet-switzerland-north
$subnet = Get-AzVirtualNetworkSubnetConfig -Name default -VirtualNetwork $vnet
$nic = New-AzNetworkInterface -Name nicfoo -ResourceGroupName rg-foo -Subnet $subnet -Location switzerlandnorth

答案1

您无法在与要连接的 vNet/Subnet 不同的区域中创建网卡,它们必须位于同一区域。由于您未在 Azure CLI 命令中指定位置,因此它采用资源组西欧的位置,从而导致此问题。

相关内容