Как получить подробную информацию о размере виртуальной машины

Я хотел бы использовать Python Azure SDK, чтобы найти размеры виртуальных машин, которые поддерживают расширенную сеть, а также AVX-512. Метод, который я видел до сих пор для запроса информации о размерах виртуальных машин, — это ComputeManagementClient.virtual_machine_sizes.list(region). Но возвращаемая информация не включает информацию о том, поддерживается ли расширенная сеть для каждого типа виртуальной машины или поддерживается ли AVX-512.

Это пример того, что обеспечивает одна запись virtual_machine_sizes.list:

{'name': 'Standard_M208ms_v2', 'numberOfCores': 208, 'osDiskSizeInMB': 1047552, 'resourceDiskSizeInMB': 4194304, 'memoryInMB': 5836800, 'maxDataDiskCount': 64}

Я нашел на https://docs.microsoft.com/en-us/rest/api/compute/resourceskus/list, что, возможно, список SKUS ресурсов предоставит информацию, которую я ищу. Но я не вижу способа использовать эту функцию списка SKUS ресурсов в Python SDK.

Я использую версию 4.0.0 лазурной библиотеки Python. Установил через:

pip3 install -Iv azure==4.0.0

Заранее благодарим вас за любую помощь, которую вы можете предоставить!


person Scott    schedule 09.08.2020    source источник
comment
Есть ли у вас другие заботы?   -  person Jim Xu    schedule 11.08.2020


Ответы (1)


Если вы хотите перечислить SKU ресурса azure vm с помощью python, выполните следующие действия.

  1. Создайте субъект-службу и назначьте роль участника sp
az login
#create sp and assign Contributor role at subscription level
az ad sp create-for-rbac -n "your service principal name"

введите здесь описание изображения

  1. код
from azure.mgmt.compute import ComputeManagementClient
from azure.common.credentials import ServicePrincipalCredentials

client_id = "sp appId"
secret = "sp password"
tenant = "sp tenant"
credentials = ServicePrincipalCredentials(
        client_id = client_id,
        secret = secret,
        tenant = tenant
)

Subscription_Id = ''
compute_client =ComputeManagementClient(credentials,Subscription_Id)
resource_group_name='Networking-WebApp-AppGW-V1-E2ESSL'
virtual_machine_scale_set_name='VMSS'
results = compute_client.resource_skus.list(raw=True)
resourceSkusList = [result.as_dict() for result in results]
r=json.dumps(resourceSkusList)
print(r)

введите здесь описание изображения

Дополнительные сведения см. на странице здесь.

person Jim Xu    schedule 10.08.2020
comment
если это полезно для вас, не могли бы вы принять это как ответ? - person Jim Xu; 10.08.2020
comment
Это было полезно для понимания того, как использовать API SKU ресурса через Python SDK, а также было полезно для проверки данных, возвращаемых API SKU ресурса. Благодарю вас! Но это не соответствовало цели, которую я поставил в этом посте, — программной возможности запрашивать Azure API через Python Azure SDK, чтобы определить, какие типы виртуальных машин поддерживают расширенную сеть или AVX-512. - person Scott; 11.08.2020
comment
@Scott API SKU ресурсов теперь поддерживает только фильтрацию по региону. И если вы хотите его использовать, нам нужно установить версию API выше 2019-04-01. Поэтому, если вы проверяете некоторую информацию, вам нужно реализовать ее самостоятельно после получения результата. Например, что касается того, как проверить, поддерживает ли виртуальная машина расширенную сеть, мы можем использовать значение AcceleratedNetworkingEnabled в capabilities. - person Jim Xu; 12.08.2020
comment
@Scott Но у нас нет возможности проверить, поддерживает ли виртуальная машина AVX-512 с API. API просто возвращает некоторую информацию о количестве виртуальных ЦП, дисков данных и сетевых адаптеров, пропускной способности хранилища и пропускной способности сети. - person Jim Xu; 12.08.2020