Я пытаюсь получить список частных IP-адресов для всех виртуальных машин в масштабируемом наборе (ни одна из виртуальных машин намеренно не имеет общедоступных IP-адресов). Я нашел, как получить это от az cli
следующим образом:
az vmss nic list -g ResourceGroup --vmss-name ScaleSetName --query [].{ip:ipConfigurations[0].privateIpAddress} -o tsv
Однако я не могу получить тот же результат с помощью Python SDK. Я использую следующий базовый код:
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 для их поиска? Насколько я понимаю, свойства сети должны быть на уровне масштабируемого набора, и это единственное место в API, где я вижу что-либо, связанное с сетью. Однако в последующих свойствах я вижу только «частную IP-версию», и, поскольку общедоступных IP-адресов нет, эта часть свойств пуста.