如何从用于 vm 的 Azure Python SDK 获取 OS 磁盘相关的详细信息
Posted
技术标签:
【中文标题】如何从用于 vm 的 Azure Python SDK 获取 OS 磁盘相关的详细信息【英文标题】:How to get OS disk related details from Azure Python SDK for a vm 【发布时间】:2020-11-08 15:57:56 【问题描述】:我正在尝试通过 python sdk 获取有关 Azure VM 操作系统磁盘的信息
我试图通过
获取信息 disk_account_type = vm.managed_disk.storage_account_type
但出现以下错误:
AttributeError: 'VirtualMachine' object has no attribute 'managed_disk'
我在哪里可以获取此操作系统磁盘的操作系统磁盘名称、大小和加密值以及存储帐户类型。 编辑:截图
【问题讨论】:
【参考方案1】:您可以使用下面的代码来获取它们。
vm = compute_client.virtual_machines.get("groupname", "joyvm1")
name = vm.storage_profile.os_disk.name
disk_size_gb = vm.storage_profile.os_disk.disk_size_gb
encryption_settings = vm.storage_profile.os_disk.encryption_settings
storage_account_type = vm.storage_profile.os_disk.managed_disk.storage_account_type
print(name, disk_size_gb, encryption_settings, storage_account_type)
更新:
如果你说的Encryption value
是disk_encryption_set
,可以使用下面的代码,返回磁盘加密集资源id。
disk_encryption_set = vm.storage_profile.os_disk.managed_disk.disk_encryption_set
print(disk_encryption_set)
更新2:
disk_encryption_set = vm.storage_profile.os_disk.managed_disk.disk_encryption_set
if disk_encryption_set is None:
encryption = "SSE with PMK"
else:
encryption = "SSE with CMK"
print(encryption)
【讨论】:
嗨,我正在查看的加密值类似于 azure 门户上显示的“SSE with PMK” @asp 你能在你的问题中显示截图吗? @asp 无法通过sdk直接获取,默认加密为SSE with PMK
,则disk_encryption_set
为None
,如果为SSE with CMK
则返回我在回复中的更新中提到的磁盘加密集的资源 ID。所以你的选择是使用判断,如果vm.storage_profile.os_disk.managed_disk.disk_encryption_set
是None
,encryption type
是SSE with PMK
。
我看到 python 和其他一些 SDK 仅在 VM 运行时显示大小。有没有办法让停止的虚拟机克服它?以上是关于如何从用于 vm 的 Azure Python SDK 获取 OS 磁盘相关的详细信息的主要内容,如果未能解决你的问题,请参考以下文章
Azure VM 上的 s-s-rS 2016 横向扩展不起作用