Подключите диски к остановленным экземплярам с помощью Python SDK - PullRequest
0 голосов
/ 01 февраля 2019

Я работаю на Azure Python SDK, я пытаюсь подключить диски к экземплярам в остановленном состоянии, например, диски, подключенные к виртуальной машине в остановленном состоянии, я знаю, что свойство managedby даст мне диски без подключенных экземпляров, но я нев состоянии получить любой API или свойство, чтобы проверить, используются ли диски в данный момент или нет.

Существует ли какой-либо способ подключения дисков к остановленным экземплярам, ​​таким как виртуальные машины?

Ответы [ 3 ]

0 голосов
/ 01 февраля 2019

Прямой функции для вывода списка дисков, подключенных к ВМ, в Python SDK нет, вы можете просто перечислить управляемые диски по группам или по подписке.Но вы можете подключить диски к виртуальной машине в свойстве VM.

Например, вы можете перечислить диски с данными следующим образом:

from azure.common.credentials import ServicePrincipalCredentials
from azure.mgmt.compute import ComputeManagementClient
from azure.mgmt.resource import ResourceManagementClient, SubscriptionClient

TENANT_ID = "xxxxx"
CLIENT_ID = "xxxxx"
KEY = "secret"

cred = ServicePrincipalCredentials(client_id = CLIENT_ID,
        secret = KEY,
        tenant = TENANT_ID)

subscription_id = "xxxxx"

compute_client = ComputeManagementClient(cred, subscription_id)

rg = "resourceGroupName"
vm_name = "vmName"

vm_info = compute_client.virtual_machines.get(rg, vm_name)

for disk in vm_info.storage_profile.data_disks:
    print disk.managed_disk.id
0 голосов
/ 05 февраля 2019

Я проверял все поля объекта disk и обнаружил, что имя связанной виртуальной машины можно извлечь из поля name.например, я нашел имя TestVM2_OsDisk_1_834968b1cdc341c78bfbc227c9ccacda здесь TestVM2 - это имя виртуальной машины, к которой подключен диск.

Итак, я беру имя виртуальной машины из поля name с помощью регулярного выражения re.split('_OsDisk', disk.name) и проверяюВиртуальное состояние с использованием Azure Apis для виртуальных машин, если оно дает мне VM deallocated, то оно находится в остановленном состоянии или даст мне VM running.

Это может быть не очень хорошим способом, но пока это работает.

0 голосов
/ 01 февраля 2019

Вы можете сделать что-то вроде этого:

compute_client = ComputeManagementClient(credentials, subscription_id)
# you can also list by subscription
# https://docs.microsoft.com/en-us/python/api/azure-mgmt-compute/azure.mgmt.compute.v2017_03_30.operations.disks_operations.disksoperations?view=azure-python#list-custom-headers-none--raw-false----operation-config-
disks = compute_client.disks.list_by_resource_group('resourcegroupname')
for disk in disks:
    print disk

это даст вам все диски в группе ресурсов.нет возможности достать все "бесхозные" диски.Я думаю, что вам лучше всего взять все диски и посмотреть, не подключены ли они к чему-либо

Дополнительные примеры: https://github.com/Azure/azure-sdk-for-python/wiki/Managed-Disk

...