在 az cli 中,我有一个 cmd 来查找正在运行的所有虚拟机,并将所有信息作为 JSON 文件返回,其中包含我定义的键。
我的问题是如何使用 Python SDK 执行此操作?我想要 JSON 格式的相同键/值。我正在用 Python 进行一些后期处理,所以我更喜欢从头到尾使用 Python 来生成信息。
工作代码如下:
az vm list -d -o json --query `
"[?powerState=='VM running'].{Name:name, admin:osProfile.adminUsername, STATUS:powerState RG:resourceGroup TAGS:tags}"
返回
[
{
"Name": "boston",
"RG": "r_group",
"STATUS": "VM running",
"TAGS": {
"tag_1": "tag_value_1",
"tag_2": "tag_value_2"
},
"admin": "waldo"
}
]
最佳答案
您可以使用以下代码列出VMS,
import azure.mgmt.compute as Compute
from azure.common.client_factory import get_client_from_cli_profile
import retry
import sys
import logging
@retry.retry(RuntimeError, tries=2)
def listVMs(resourceGroup):
VM = get_client_from_cli_profile(Compute.ComputeManagementClient)
try:
VMs = VM.virtual_machines.list(resourceGroup)
for vm in VMs:
print(vm)
except Exception as e:
logging.error(e)
resourceGroup = sys.argv[1]
if __name__ == '__main__':
listVMs(resourceGroup)
else:
print('Running as imported module')
listVMs(resourceGroup)
关于python - Azure Python SDK - 列出 VM 并生成自定义 JSON 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59827783/