python - Azure Python SDK - 列出 VM 并生成自定义 JSON 响应

标签 python json azure virtual-machine azure-cli

在 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/

相关文章:

python - 如何使用 PySimpleGUI 构建带有工作 Python 脚本的 GUI

javascript - 从 JSON 字符串中获取数据

azure - .net core azure部署失败: Project file does not exist

azure - 如何将Azure数据工厂迁移到另一个数据中心

azure - 创建新的 Azure Function App,而不删除资源组中现有的 Azure Functions

python - 在 CentOS 5 上安装 node.js

Python - 正则表达式仅保留带有文本字符的单词

javascript - 通过JavaScript修改Json数据创建新对象

python - Peewee Flask 尝试从 BooleanField 返回数据

php - AJAX 和 JSON 不起作用,没有错误或成功处理程序