Для ваших требований все, что вы можете получить из ComputeManagementClient SDK, - это сетевые интерфейсы для виртуальной машины (например, Vnet, su bnet). Это конфигурация сетевых интерфейсов.
Итак, вам нужно получить информацию о сетевом интерфейсе, а затем он покажет вам конфигурацию Ni c, он содержит су bnet который Ni c in.
Я предполагаю, что вы знаете только информацию о ВМ, тогда вы можете получить информацию Vnet следующим образом:
from azure.mgmt.compute import ComputeManagementClient
from azure.common.credentials import ServicePrincipalCredentials
from azure.mgmt.network import NetworkManagementClient
subscription_Id = "xxxxxxxxx"
tenant_Id = "xxxxxxxxx"
client_Id = "xxxxxxxxx"
secret = "xxxxxxxxx"
credential = ServicePrincipalCredentials(
client_id=client_Id,
secret=secret,
tenant=tenant_Id
)
compute_client = ComputeManagementClient(credential, subscription_Id)
group_name = 'xxxxxxxxx'
vm_name = 'xxxxxxxxx'
vm = compute_client.virtual_machines.get(group_name, vm_name)
nic_name = vm.network_profile.network_interfaces[0].id.split('/')[-1]
nic_group = vm.network_profile.network_interfaces[0].id.split('/')[-5]
network_client = NetworkManagementClient(credential, subscription_Id)
nic = network_client.network_interfaces.get(nic_group, nic_name)
vnet_name = nic.ip_configurations[0].subnet.id.split('/')[-3]
vnet_group = nic.ip_configurations[0].subnet.id.split('/')[-7]
vnet = network_client.virtual_networks.get(vnet_group, vnet_name)
Весь код выше Я предполагаю, что у виртуальной машины есть только один Ni c, а у Ni c только одна конфигурация. Если виртуальная машина имеет несколько Nics, и каждый Ni c имеет несколько конфигов. Вы можете получить их один за другим внутри каждого l oop. Наконец, вы получили информацию о Vnet, который вы хотите.