Я пытаюсь получить список частных IP-адресов для всех виртуальных машин в наборе масштабов (ни одна из виртуальных машин сознательно не имеет общедоступных c IP-адресов). Я нашел, как получить это из az cli
следующим образом:
az vmss nic list -g ResourceGroup --vmss-name ScaleSetName --query [].{ip:ipConfigurations[0].privateIpAddress} -o tsv
Однако я не могу получить тот же вывод, используя Python SDK. Я использую следующий базовый c код:
from azure.common.credentials import ServicePrincipalCredentials
from azure.mgmt.compute import ComputeManagementClient
credentials = ServicePrincipalCredentials(client_id = CLIENT, secret = KEY, tenant = TENANT)
compute_client = ComputeManagementClient(credentials, SUBSCRIPTION)
vmss = compute_client.virtual_machine_scale_sets.get(RG, SC)
print(vmss.virtual_machine_profile.network_profile.network_interface_configurations[0].ip_configurations[0])
Это правильное место в объектной модели SDK для их поиска? Насколько я понимаю, сетевые свойства должны быть на уровне Scale Set, и это единственное место в API, где я вижу что-то связанное с сетью. Однако в последующих свойствах я вижу только «частную IP-версию», и, поскольку не существует общедоступных c IP-адресов, эта часть свойств пуста.