获取附加到特定订阅中的 VM 的 Azure OS 磁盘列表

Get a list of Azure OS Disks attached to VMs in specific subscription

我正在获取特定订阅的所有资源组中附加到 Azure 中 VM 的 OS 个磁盘的列表。我找到了一个 AZ utility 来获取 json 格式的列表。

使用下面的顺序我可以得到 json 格式的列表,有没有类似的方法可以使用任何 python 模块来实现?

az login
az account set --subscription <subscription>
az disk list

是的,这是可能的。您可以使用方法 list 在您的订阅中获取磁盘。

例如:

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

# Tenant ID for your Azure Subscription
TENANT_ID = ''

# Your Service Principal App ID
CLIENT = ''

# Your Service Principal Password
KEY = ''

credentials = ServicePrincipalCredentials(
    client_id = CLIENT,
    secret = KEY,
    tenant = TENANT_ID
)

subscription_id = ''

compute_client = ComputeManagementClient(credentials, subscription_id)

disks = compute_client.disks.list()
for disk in disks:
    print disk

注意:它将 return 您订阅中的所有磁盘。但有可能某些磁盘不是 OS 磁盘,它们可能是数据磁盘或未附加到 VM 的磁盘。