Что такое custom_headers в методах Azure Python SDK? - PullRequest
0 голосов
/ 11 июля 2019

Я пытаюсь найти общедоступный IP-адрес, подключенный к работающей виртуальной машине Azure.

Я пробовал оба ответа согласно Получить IP-адрес от объекта VM, используя Azure SDK в Python , но я не получаю требуемый вывод.Получение публичного IP: Нет

    ...:     for interface in vm.network_profile.network_interfaces:
    ...:         name=" ".join(interface.id.split('/')[-1:])
    ...:         print (name)
    ...:         sub="".join(interface.id.split('/')[4])
    ...:         print (sub)
    ...:         thing = network_client.network_interfaces.get(sub, name).ip_configurations
    ...:         for x in thing:
    ...:             print (x.public_ip_address)
    ...:
xxx
xxx
{'additional_properties': {}, 'id': '/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.Network/publicIPAddresses/Test-ip', 'name': None, 'type': None, 'location': None, 'tags': None, 'sku': None, 'public_ip_allocation_method': None, 'public_ip_address_version': None, 'ip_configuration': None, 'dns_settings': None, 'ddos_settings': None, 'ip_tags': None, 'ip_address': None, 'public_ip_prefix': None, 'idle_timeout_in_minutes': None, 'resource_guid': None, 'provisioning_state': None, 'etag': None, 'zones': None}

, тогда как с помощью network_client я получаю вывод

In [6]: from azure.mgmt.network import NetworkManagementClient
In [21]: for i in network_client.public_ip_addresses.list("xxx"):
    ...:     print (i)

Но здесь я получаю вывод для всех подписок, всех групп ресурсов, которые в основном я хочуфильтр.Поэтому я думаю, что используя custom_headers, мы можем фильтровать, но я не понимаю, какое будет точное соглашение о присвоении имен dict, которое я создал бы для custom_headers.

  • Как я могу получить полный список доступных custom_headers?
  • Также, может, кто-нибудь поделится примером перечисления и получения всех подробностей о запущенной / остановленной ВМ?

1 Ответ

1 голос
/ 12 июля 2019

Краткая версия: Ваш вопрос уже был адресован на Github: https://github.com/Azure/azure-sdk-for-python/issues/897

Несколько комментариев:

  • custom_headers - это определение заголовков HTTP, которые выиграли 't справка для вашего сценария:
  • По своему замыслу, когда вы создаете NetworkManagementClient, вы уже фильтруете по подписке, поскольку подписка является его параметром.
  • Параметр public_ip_addresses.list являетсяимя группы ресурсов, поэтому вы уже фильтруете по имени группы ресурсов: См. https://docs.microsoft.com/en-us/python/api/azure-mgmt-network/azure.mgmt.network.v2019_04_01.operations.publicipaddressesoperations?view=azure-python#list-resource-group-name--custom-headers-none--raw-false----operation-config-
  • Ваш первый код в порядке, но вам необходимо повторно ввести общедоступный IP-идентификатор в public_ip_addresses.get.NIC не расширяется до фактического значения Public IP по вычислительной причине.

(я работаю в MS в команде Python SDK)

...