gpt4 book ai didi

azure - 通过 Python SDK 获取规模集中虚拟机的私有(private) IP 地址(规模集中没有公共(public) IP 地址)

转载 作者:行者123 更新时间:2023-12-03 00:38:37 26 4
gpt4 key购买 nike

我正在尝试获取规模集中所有虚拟机的私有(private) IP 地址列表(没有一个虚拟机故意拥有任何公共(public) 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 中我看到任何与网络相关的内容的唯一位置。但是,我在后续属性中只看到“私有(private) IP 版本”,并且由于没有公共(public) IP,因此该部分属性为空白。

最佳答案

遗憾的是,您恐怕无法获取虚拟机规模集实例的私有(private) IP。虚拟机规模集的网络接口(interface)不是 Azure 中的资源,您无法获取它们。目前,Azure python SDK 不支持通过 python SDK 获取 VMSS 私有(private) IP。

您可以尝试使用REST API来达到目的,并通过CLI命令debug获取REST API,如下所示:

az vmss nic list -g ResourceGroup --vmss-name ScaleSetName --query [].{ip:ipConfigurations[0].privateIpAddress} -o tsv --debug

它将显示进度和 REST API:

enter image description here

关于azure - 通过 Python SDK 获取规模集中虚拟机的私有(private) IP 地址(规模集中没有公共(public) IP 地址),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59613250/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com