0

我在我的代码中使用以下 azurerm 函数:

public_ips = azurerm.get_vmss_public_ips(access_token, SUBSCRIPTION_ID, 
GROUP_NAME, CUScaleSet)

print(public_ips)

我得到以下输出:

{u'error': {u'message': u"没有为位置 'eastus' 和 API 版本 '2019-03-01' 找到类型 'virtualMachineScaleSets/publicIPAddresses' 的注册资源提供程序。支持的 api 版本是 '2017 -03-30, 2017-12-01, 2018-04-01, 2018-06-01, 2018-10-01'. 支持的位置是 'eastus, eastus2, westus, centralus, northcentralus, southcentralus, northeurope, westeurope , 东亚, 东南亚, japaneast, japanwest, australiaeast, australiasoutheast, australiacentral, brazilsouth, southindia, centralindia, westindia, canadacentral, canadaeast, westus2, westcentralus, uksouth, ukwest, koreacentral, koreasouth, francecentral, southafricanorth, uaenorth'.", u'代码': u'NoRegisteredProviderFound'}}

注意:几天前正在运行同一段代码。

4

1 回答 1

1

如果需要获取 VMSS 实例中所有 VM 的 IP,可以使用官方的Azure SDK for Python,如下所示:

# Imports
from azure.common.credentials import ServicePrincipalCredentials
from azure.mgmt.network import NetworkManagementClient

# Set subscription ID
SUBSCRIPTION_ID = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'


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

    return credentials


# Get credentials
credentials = get_credentials()


# Initialize management client
network_client = NetworkManagementClient(
    credentials,
    SUBSCRIPTION_ID
)


def get_vmss_vm_ips():

    # List all network interfaces of the VMSS instance
    vmss_nics = network_client.network_interfaces.list_virtual_machine_scale_set_network_interfaces(
        "<VMSS Resource group name>", "<VMSS instance name>")

    niclist = [nic.serialize() for nic in vmss_nics]

    print "IP addresses in the given VM Scale Set:"

    for nic in niclist:
        ipconf = nic['properties']['ipConfigurations']

        for ip in ipconf:
            print ip['properties']['privateIPAddress']


# Get all IPs of VMs in VMSS
get_vmss_vm_ips()

参考:

希望这可以帮助!

于 2019-09-13T12:13:01.953 回答