我按照 Microsoft 的示例获取虚拟机列表:https://github.com/Azure-Samples/virtual-machines-python-manage/blob/master/example.py
我的代码:
from azure.mgmt.compute import ComputeManagementClient
from azure.common.credentials import ServicePrincipalCredentials
def get_credentials():
subscription_id = AZURE_SUBSCRIPTION_ID
credentials = ServicePrincipalCredentials(
client_id=AZURE_CLIENT_ID,
secret=AZURE_CLIENT_SECRET,
tenant=AZURE_TENANT_ID
)
return credentials, subscription_id
credentials, subscription_id = get_credentials()
compute_client = ComputeManagementClient(credentials, subscription_id)
for vm in compute_client.virtual_machines.list_all():
print(vm)
这工作正常并返回如下内容:
{'additional_properties': {}, 'id': '/subscriptions/17bf586e-6072-4e5f-900d-90467e227f73/resourceGroups/VPN-2-IKSI/providers/Microsoft.Compute/virtualMachines/vpntest02', 'name': 'vpntest02', 'type': 'Microsoft.Compute/virtualMachines', 'location': 'southcentralus', 'tags': None, 'plan': None, 'hardware_profile': , 'storage_profile': , 'additional_capabilities': None, 'os_profile': , 'network_profile': , 'diagnostics_profile': , 'availability_set': None, 'provisioning_state': 'Succeeded', 'instance_view': None, 'license_type': None, 'vm_id': '8c246fff-22ab-4bd7-9f00-708f3b6e60b3', 'resources': None, 'identity': None, 'zones': None}
但是我需要操作系统名称(如 ubuntu 或 centos 等)、总磁盘、总内存、CPU 使用情况,我在 azure sdk 文档中找到,但非常复杂(文档很糟糕),有人做了什么吗相似的?他们是怎么做到的?一些带有示例或不错的文档的链接
最佳答案
对于您的问题,您可以从镜像引用中获取虚拟机操作系统名称,它将显示它已使用的镜像。对于总磁盘,您只需获取磁盘名称,然后可以使用磁盘 SDK 获取全部详细信息。对于总 RAM,您只需获取 VM 大小并在 VM size 中找到详细信息。 。而CPU的使用率,你也无法从VM信息中获取。要获取它,您需要使用 Azure Monitor SDK。
您可以从 SDK 获取有关 VM 的信息,全部显示在 VirtualMachine class 中。有关与VM相关的更多详细信息,例如磁盘,您需要使用其他SDK,就像Managed Disk .
关于python - Azure python sdk从虚拟机获取属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56451789/