根据类型或类别列出Microsoft Azure Compute中的VM大小

时间:2018-02-20 13:46:12

标签: python-2.7 azure adal azure-resource-manager azure-resource-group

我们正尝试使用API​​" GET https://management.azure.com/subscriptions/ {subscriptionId} / resourceGroups / {resourceGroupName} /providers/Microsoft.Compute/virtualMachines/ {vmName} / vmSizes列出特定位置的所有可用尺寸?API-版本= 2017年12月1日&#34 ;.它返回近22400个尺寸。在某些地区真的包含这么多尺码吗?是否有任何优雅的方式来获取基于类型的VM大小。

For Example:
    1. Get VM sizes based on General purpose, Memory optimized, Storage optimized etc.
    2. Get VM Sizes  based on RAM size, CPU count etc.

1 个答案:

答案 0 :(得分:1)

我使用了Laurent发布的示例(下面的链接),它返回了该区域中所有可用的VM大小的名称,核心,磁盘,内存等(使用parm location = region)。如果在其中加上一些代码,您应该可以执行示例2。

Get Virtual Machine sizes list in json format using azure-sdk-for-python

def list_available_vm_sizes(compute_client, region = 'EastUS2', minimum_cores = 1, minimum_memory_MB = 768):
    vm_sizes_list = compute_client.virtual_machine_sizes.list(location=region)
    for vm_size in vm_sizes_list:
        if vm_size.number_of_cores >= int(minimum_cores) and vm_size.memory_in_mb >= int(minimum_memory_MB): 
            print('Name:{0}, Cores:{1}, OSDiskMB:{2}, RSDiskMB:{3}, MemoryMB:{4}, MaxDataDisk:{5}'.format(
                vm_size.name,
                vm_size.number_of_cores,
                vm_size.os_disk_size_in_mb,
                vm_size.resource_disk_size_in_mb,
                vm_size.memory_in_mb,
                vm_size.max_data_disk_count
            ))

list_available_vm_sizes(compute_client, region = 'EastUS', minimum_cores = 2, minimum_memory_MB = 8192)