1

我们正在尝试使用 API“GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/”列出特定位置的所有可用大小vmSizes?api-version=2017-12-01"。它返回近 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.
4

1 回答 1

2

我使用了 Laurent 发布的示例(下面的链接),它返回了该区域中所有可用的 VM 大小的名称、内核、磁盘、内存等(使用 parm location=region)。如果你在它周围放置一些代码,你应该能够执行示例 2。

使用 azure-sdk-for-python 以 json 格式获取虚拟机大小列表

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)
于 2019-01-29T17:34:50.330 回答