【Azure Developer】通过 API 获取 Azure VM 信息实践指南 Part 2(Azure China)

问题描述

基于 Azure China (21Vianet) 环境,实现对订阅下云服务器(Virtual Machine)的统一资产管理能力。具体要求如下:

  • 通过 RESTful API 获取订阅下所有 VM 信息;
  • 返回标准 JSON 格式数据;
  • 支持自动化集成;
  • 采用只读、安全、可控的访问方式;
    • 能够进一步获取 VM 的操作系统、运行状态、CPU、内存、IP 地址以及删除记录等信息。

本文为第二部分 将包含获取VM运行状态、CPU、内存、IP 地址以及删除记录信息

第一部分文章链接:【Azure Developer】通过 API 获取 Azure VM 信息实践指南 Part 1(Azure China)

问题解答

场景五:获取 VM 运行状态

调用:

GET https://management.chinacloudapi.cn/subscriptions/{subId}/resourceGroups/{rg}/providers/Microsoft.Compute/virtualMachines/{vmName}/instanceView?api-version=2023-09-01

返回:

{

"statuses":[

{

"code":"ProvisioningState/succeeded"

},

{

"code":"PowerState/running"

}

]

}

常见状态:

|------------------------|-----|
| 状态码 | 含义 |
| PowerState/running | 运行中 |
| PowerState/stopped | 已停止 |
| PowerState/deallocated | 已释放 |
| PowerState/starting | 启动中 |
| PowerState/stopping | 停止中 |

通过此接口可实现实时监控 VM 运行状态。

场景六:获取 VM CPU 与内存信息

方法一:

GET https://management.chinacloudapi.cn/subscriptions/{subId}/providers/Microsoft.Compute/vmSizes?location=chinaeast\&api-version=2023-07-01

返回:

{

"name":"Standard_DS2_v2",

"numberOfCores":2,

"memoryInMB":7168

}

可直接获取:

  • CPU 核数
  • 内存大小

等规格信息。

方法二:

GET https://management.chinacloudapi.cn/subscriptions/{subId}/providers/Microsoft.Compute/skus?api-version=2023-07-01

根据:

name = VM Size

location = VM Region

进行过滤。

相比 vmSizes API,该接口返回的信息更全面,适用于大型 CMDB 或资源盘点系统。

场景七:如何判断 VM 是否被删除

方法一:

直接查询目标 VM:

GET https://management.chinacloudapi.cn/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}?api-version=2024-03-01

返回:

200 = VM 存在

404 = VM 不存在或已被删除

适用于单个 VM 的状态检查。

场景八:获取 VM 删除操作记录

若需要审计删除行为,则应查询 Activity Log。

GET https://management.chinacloudapi.cn/subscriptions/{subscriptionId}/providers/Microsoft.Insights/eventtypes/management/values?api-version=2015-04-01

过滤条件:

resourceType eq 'Microsoft.Compute/virtualMachines'

返回日志示例:

{

"operationName":{

"value":"Microsoft.Compute/virtualMachines/delete"

},

"caller":"user@contoso.partner.onmschina.cn",

"status":{

"value":"Succeeded"

},

"eventTimestamp":"2026-05-29T06:30:00Z"

}

可获取:

  • 删除操作时间
  • 操作用户
  • 删除对象
  • 执行状态

从而实现 VM 生命周期审计追踪。

总结

通过 Azure China ARM REST API,可以构建完整的 VM 资产管理平台,实现:

  • 获取订阅下全部 VM 信息
  • 获取公网/私网 IP
  • 获取操作系统及镜像版本
  • 获取实时运行状态
  • 获取 CPU 与内存配置
  • 判断 VM 是否已删除
  • 查询删除审计日志

整个方案基于 Service Principal + Reader 权限实现,满足企业级"只读、安全、可控"的自动化资源管理需求,可直接应用于 CMDB、资产盘点平台、运维监控平台以及云资源治理场景。

参考资料

在 Microsoft Entra ID 中注册应用程序 : 如何在 Microsoft Entra ID 中注册应用" | Azure Docs


当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!

相关推荐
典典分享指南7 分钟前
用飞书 Wiki 搭内容作战室:从零搭建团队内容协作中枢
django·flask·numpy·pyqt
Patrick在香港2 小时前
Claude Prompt 香港场景:公文里「今日」落在 6 个日历日上,「翌日」锚错了 5 天
python·自然语言处理·正则表达式·claude·数据清洗
YsyaaabB3 小时前
Python 数值分析
python
阿洛学长3 小时前
计算机二级 Python 基本操作题(15 分)真题笔记(0101 ~ 1903 全套)
python·pycharm
weixin199701080163 小时前
[特殊字符]️《二手ERP对接电商平台的总体方案:统一数据模型 + 事件驱动 + 灰度上线6原则》(附Python源码)
大数据·python
滚雪球~4 小时前
量化交易 防止Windows电脑自动更新并重启
python·量化
L@ncor5 小时前
第二章可能出现的问题
人工智能·python
y = xⁿ5 小时前
大模型基础概念
python
ctlover5 小时前
排序与查找算法详解
开发语言·python
用户8356290780516 小时前
如何使用 Python 给 Word 文档添加水印
后端·python