Извлечь возвращенные значения из объекта VirtualNetworkPeering - PullRequest
0 голосов
/ 15 ноября 2018

Как можно извлечь значения атрибутов, возвращенные из списка виртуальных сетей в одноранговой сети.Я выполнил эту команду, и мне нужно извлечь идентификатор сети

list_all = network_client.virtual_network_peerings.list(
    GROUP_NAME,
    VNET_NAME
)

для однорангового узла в list_all:

print (peer)

, и я получаю это значение изнапечатайте выше:

{'additional_properties': {'type': 'Microsoft.Network/virtualNetworks/virtualNetworkPeerings'}, 
'id': '/subscriptions/c70b9b-efd6-497d-98d8-e1e1d497425/resourceGroups/azure-sample-group-virtual-machines/providers/Microsoft.Network/virtualNetworks/azure-sample-vnet/virtualNetworkPeerings/sample-vnetpeer', 
'allow_virtual_network_access': True, 
'allow_forwarded_traffic': True, 
'allow_gateway_transit': False, 
'use_remote_gateways': False, 
'remote_virtual_network': <azure.mgmt.network.v2018_08_01.models.sub_resource_py3.SubResource object at 0x048D6950>, 
'remote_address_space': <azure.mgmt.network.v2018_08_01.models.address_space_py3.AddressSpace object at 0x048D68D0>,
 'peering_state': 'Initiated', 
'provisioning_state': 'Succeeded',
 'name': 'sample-vnetpeer',
 'etag': 'W/"653f7f94-3c4e-4275-bfdf-0bbbd9beb6e4"'}

Как я могу получить это значение "remote_virtual_network"?

Ответы [ 2 ]

0 голосов
/ 16 ноября 2018

Мне кажется, что ваш вопрос на самом деле является скорее вопросом Python, чем вопросом Azure. Если в вашем приложении это поле установлено со значениями, то remote_virtual_network является SubResource, то есть имеет только один атрибут: id

for peer in list_all:
    remote_virtual_network_id = peer.remote_virtual_network.id

Этот парень - настоящая виртуальная сеть, поэтому, если вам нужны подробности об этом, вам нужно получить его с помощью network_client.virtual_networks.get: https://docs.microsoft.com/en-us/python/api/azure-mgmt-network/azure.mgmt.network.v2018_08_01.operations.virtualnetworksoperations?view=azure-python#get

Сложность в том, что вы получаете ID, но VNet get запрашивает имя RG и имя VNet, для этого можно использовать анализатор ARM ID:

https://docs.microsoft.com/en-us/python/api/msrestazure/msrestazure.tools?view=azure-python#parse-resource-id

0 голосов
/ 15 ноября 2018

'remote_virtual_network':, 'remote_address_space':

Я попробую это и вернусь:

Эта команда аналогична "get-azurermvirtualnetworkpeering -ResourceGroupName -VirtualNetworkName -Name" вAzure PowerShell.

remote_virtual_network у вас его нет.Вы получите это только в том случае, если у вас включен Удаленный шлюз, и узел узнает IP-адрес удаленного (локального сайта), который вы пытаетесь подключить.

Чтобы получить это значение, разверните шлюз вVnet и подключите его к Say «Vnet-S2S-test» с развернутым там же шлюзом.

После того, как соединение между Vnets установлено.Вы можете выполнить команду, и вы должны увидеть эти поля, заполненные данными шлюза локальной сети.

...