python - 如何使用 Python 列出 Azure 虚拟机?
问题描述
我已使用以下代码从我的 Azure 帐户获取访问令牌。
它工作正常,我已经得到了令牌。
但是,如何使用此令牌列出所有在该订阅/资源组中运行的带有 Azure SDK for Python 的 VM?
我猜微软文档有点混乱。
谢谢。
解决方案
您可以使用函数list_all() / list()获取订阅/资源组中的所有 VM,但这些响应不会向您显示 VM 运行状态。所以你还需要函数instance_view()来获取 VM 运行状态。
最后,列出在该订阅/资源组中运行的所有 VM 的示例代码如下:
from azure.mgmt.compute import ComputeManagementClient
from azure.common.credentials import ServicePrincipalCredentials
Subscription_Id = "xxxxx"
Tenant_Id = "xxxxx"
Client_Id = "xxxxx"
Secret = "xxxxx"
credential = ServicePrincipalCredentials(
client_id=Client_Id,
secret=Secret,
tenant=Tenant_Id
)
compute_client = ComputeManagementClient(credential, Subscription_Id)
vm_list = compute_client.virtual_machines.list_all()
# vm_list = compute_client.virtual_machines.list('resource_group_name')
i= 0
for vm in vm_list:
array = vm.id.split("/")
resource_group = array[4]
vm_name = array[-1]
statuses = compute_client.virtual_machines.instance_view(resource_group, vm_name).statuses
status = len(statuses) >= 2 and statuses[1]
if status and status.code == 'PowerState/running':
print(vm_name)
推荐阅读
- cplex - 为什么我的时间断点元组 [m, m+1] 不起作用?
- ios - 允许用户删除文本字段文本但限制最大文本长度
- c++ - 在 Mac 上的 Matlab 中集成 C++ Basler 相机库
- javascript - 使用 fileReader 上传文件后,引导选项卡停止工作
- database - 无法创建与通过隧道创建的数据库的连接
- google-cloud-platform - 如何在 GCP 端点上配置 openapi.json
- java - 如何使用带有 Android Studio(kotlin) 的 OpenCV4 删除未解决的参考错误
- sql-server - Invoke-Sqlcmd:找不到与参数名称“OutputAs”匹配的参数
- c# - 如何“将配置数据传递给您的插件”以及相同的目的是什么?任何实时场景与示例?
- java - 带有rocksdb的Flink增量检查点使用大量内存