Список размеров виртуальных машин в Microsoft Azure Compute на основе типа или категории

Мы пытаемся перечислить все доступные размеры для конкретного местоположения с помощью API "GET https://management.azure.com/subscriptions/ {subscriptionId} / resourceGroups / {resourceGroupName} /providers/Microsoft.Compute/virtualMachines/ {vmName} / vmSizes? api-version = 2017-12-01 ". Он возвращает почти 22400 размеров. Неужели он действительно содержит столько размеров в каком-то регионе? Есть ли какой-нибудь элегантный способ получить размеры виртуальных машин в зависимости от типа.

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.

person sangeeth kumar    schedule 20.02.2018    source источник
comment
Вы имеете в виду использование пакета SDK для Azure Python? Я не понимаю, почему этот вопрос связан с тегом python-2.7?   -  person juvchan    schedule 21.02.2018
comment
да. Мне нужен любой способ получить это с помощью Direct AzureRM API или Python SDK.   -  person sangeeth kumar    schedule 21.02.2018
comment
Пример 1: Это невозможно. General purpose, Memory optimized, Storage optimized Вам просто найти подходящую виртуальную машину. У ВМ нет этого параметра.   -  person Shui shengbao    schedule 26.02.2018
comment
Пример 2: Это тоже невозможно.   -  person Shui shengbao    schedule 26.02.2018


Ответы (1)


Я использовал образец, опубликованный Лораном (ссылка ниже), и он вернул имена всех доступных размеров виртуальных машин, ядер, дисков, памяти и т. Д. В регионе (используйте parm location = region). Если вы поместите в него какой-то код, вы сможете выполнить пример 2.

Получите список размеров виртуальных машин в json с использованием 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)
person Mike Yu    schedule 29.01.2019