почему в лазурных подсетях нет параметра subnet.id - PullRequest
0 голосов
/ 09 июня 2019

У меня есть следующий простой код для генерации 3 подсетей:

$resourceGroupName = "Test1"
$location = "West Europe"
$VNetName = "Test-VM"
$VNetIPRange = "192.168.0.0/21"
$SubnetAName = "SubA"
$SubnetAIPRange = "192.168.0.0/24"
$SubnetBName = "SubB"
$SubnetBIPRange = "192.168.1.0/24"
$SubnetCName = "SubC"
$SubnetCIPRange = "192.168.2.0/24"

New-AzResourceGroup -name $resourceGroupName -Location $location -Verbose

# subnets & vnet
$subnets = New-AzVirtualNetworkSubnetConfig `
    -Name $SubnetAName `
    -AddressPrefix $SubnetAIPRange `
    -Verbose
$vnet = New-AzVirtualNetwork `
    -Name $VNetName `
    -AddressPrefix $VNetIPRange `
    -Subnet $subnets `
    -ResourceGroupName $resourceGroupName `
    -Location $location `
    -Verbose
Add-AzVirtualNetworkSubnetConfig `
    -VirtualNetwork $vnet `
    -Name $SubnetBName `
    -AddressPrefix $SubnetBIPRange `
    -Verbose
Add-AzVirtualNetworkSubnetConfig `
    -VirtualNetwork $vnet `
    -Name $SubnetCName `
    -AddressPrefix $SubnetCIPRange `
    -Verbose
Set-AzVirtualNetwork `
    -VirtualNetwork $vnet `
    -Verbose

Код успешно выполняется и генерирует то, что ожидается, за исключением одной вещи. Только SubA имеет полную информацию. Для подсетей B и C только следующая конфигурация подобна приведенной ниже:

                       {
                         "Name": "SubB",
                         "AddressPrefix": [
                           "192.168.1.0/24"
                         ]
                       }

С этим я не могу ссылаться на идентификатор подсети, как:

  -SubnetId $vnet.Subnets[1].Id `

потому что поле пустое: (

Что-то не так в коде или я должен ссылаться на идентификатор подсети как-то иначе?

Я хочу разместить несколько виртуальных машин в разных подсетях, и только SubA имеет SubnetID после выполнения кода выше.

                     {
                         "Delegations": [],
                         "Name": "SubA",
                         "Etag": "W/\"01baac3e-3fc3-400b-a6f1-64b08f5b45e7\"",
                         "Id": "/subscriptions/XXX/resourceGroups/Test1/providers/Microsoft.Network/virtua
                     lNetworks/Test-VM/subnets/SubA",
                         "AddressPrefix": [
                           "192.168.0.0/24"
                         ],
                         "IpConfigurations": [],
                         "ServiceAssociationLinks": [],
                         "ResourceNavigationLinks": [],
                         "ServiceEndpoints": [],
                         "ServiceEndpointPolicies": [],
                         "InterfaceEndpoints": [],
                         "ProvisioningState": "Succeeded"
                       },

1 Ответ

0 голосов
/ 10 июня 2019

Я проверяю ваш код и могу воспроизвести вашу проблему, просто используйте Get-AzVirtualNetwork после вашего кода, тогда вы сможете получить Id из двух других подсетей.

$vnet = Get-AzVirtualNetwork -ResourceGroupName $resourceGroupName -Name $VNetName
$vnet.Subnets[1].Id
$vnet.Subnets[2].Id

enter image description here

...