Как получить вывод из контейнера подкачки в переменную | Получение единой виртуальной сети из группы ресурсов - PullRequest
0 голосов
/ 08 мая 2019

Заранее спасибо, у меня есть переменная вверху моего кода, LOCATION, VNET_NAME, SUBNET, SUBNETRANGE.Я хочу заполнить эту информацию из вывода функции List_VNET.Используя эту функцию, я получаю виртуальную сеть из группы ресурсов на Azure (у меня только одна виртуальная сеть на группу ресурсов).И затем хотел заполнить его в переменную, но он дает вывод в виде контейнера подкачки.В основном я работаю над PowerShell, поэтому я знаю о массивах, и мы можем получить экземпляр, используя массив [0].

from azure.common.credentials import ServicePrincipalCredentials
from azure.mgmt.resource import ResourceManagementClient
from azure.mgmt.compute import ComputeManagementClient
from azure.mgmt.network import NetworkManagementClient
from azure.mgmt.compute.models import DiskCreateOption
from azure.mgmt.network.v2017_03_01.models import NetworkSecurityGroup
from azure.mgmt.network.v2017_03_01.models import SecurityRule
import azure.mgmt.network.models


SUBSCRIPTION_ID = 'xxx'
GROUP_NAME = 'AQRG'
LOCATION = ''
VM_NAME = 'myVM'
VNET_NAME = ''
SUBNET_NAME = ''
SUBNETRANGE = ''


def List_VNET(network_client):
    result_create = network_client.virtual_networks.list(
            GROUP_NAME,
        )
    SUBNET_NAME = result_create


    return SUBNET_NAME

def get_credentials():
    credentials = ServicePrincipalCredentials(
        client_id = 'xxxx',
        secret = 'xxxx',
        tenant = 'xxxx'
    )

    return credentials


if __name__ == "__main__":
    credentials = get_credentials()

resource_group_client = ResourceManagementClient(
    credentials, 
    SUBSCRIPTION_ID
)
network_client = NetworkManagementClient(
    credentials, 
    SUBSCRIPTION_ID
)

creation_result = List_VNET(network_client)
print("------------------------------------------------------")
print(creation_result)
input('Press enter to continue...')

Получение вывода, как показано ниже

<azure.mgmt.network.v2018_12_01.models.virtual_network_paged.VirtualNetworkPaged object at 0x0000023776C13908>

1 Ответ

1 голос
/ 08 мая 2019

Обновление: Определите VNET_NAME как глобальное в функции List_VNET:

   SUBSCRIPTION_ID = 'xxx'
   GROUP_NAME = 'AQRG'
   LOCATION = ''
   VM_NAME = 'myVM'
   VNET_NAME = ''
   SUBNET_NAME = ''
   SUBNETRANGE = ''


def List_VNET(network_client):
    result_create = network_client.virtual_networks.list(
            GROUP_NAME
        )
    global VNET_NAME
    for re in result_create:
        VNET_NAME=re.name

    return VNET_NAME

После кода: creation_result = List_VNET(network_client)

добавьтеследующий код:

for re in creation_result:
    print(re.name)

Тогда вы можете получить имя всех виртуальных сетей.

enter image description here

...