从“ VirtualNetworkPeering对象

时间:2018-11-15 02:45:09

标签: azure-sdk-python

如何提取从对等虚拟网络列表中返回的属性值。 我执行了此命令,并且需要提取网络ID

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

对于list_all中的对等方:

打印(对等)

我从上面的打印中得到了这个值:

{'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 :(得分:0)

“远程虚拟网络”:, 'remote_address_space':

我将尝试一下并返回:

此命令类似于Azure PowerShell上的“ get-azurermvirtualnetworkpeering -ResourceGroupName -VirtualNetworkName -Name”。

您没有一个远程虚拟网络。仅当启用了远程网关并且对等方将了解您尝试连接的远程(本地站点)的IP地址时,您才能获得此信息。

要获得此值,请在Vnet中部署网关,然后将其连接到“ Vnet-S2S-test”并在其中也部署网关。

一旦Vnet之间的站点到站点启动。您可以执行该命令,并且应该看到填充了本地网络网关详细信息的那些字段。

答案 1 :(得分:0)

我的感觉是,您的问题实际上更多是Python问题而不是Azure问题。假设在您的应用程序中此字段设置了值,那么remote_virtual_networkSubResource,意味着它只有一个属性: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要求提供RG名称和VNet名称,您可以为此使用ARM ID解析器:

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