【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


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

相关推荐
飞Link5 小时前
什么是 AirSim?一文读懂无人机仿真平台
python·算法·无人机
曲径海盗6 小时前
【Python 学习第 38 天】for 循环
python·学习笔记·编程入门
在世修行6 小时前
智学文枢:变式题生成引擎
python·ai·pyside·题目生成
On The Road :8 小时前
Java 多线程详解:从入门到线程安全
java·python·安全
岁月宁静8 小时前
如何设计支持 Skills 的 Agent?一套可扩展的四层架构
python·agent
岁月宁静8 小时前
CrewAI 快速上手:10 分钟搭建你的第一个 Agent 团队
python·agent
曲径海盗8 小时前
【Python 学习第 40 天】for 循环
python·学习笔记·编程入门
专注仿真9 小时前
知识问答大模型-rag算法详解
人工智能·python·控制算法
染指11109 小时前
158.Agent-LangGraph-子图(共享状态和不共享状态模式)
开发语言·人工智能·python·ui·agent·agents
云和数据.ChenGuang11 小时前
Python 常见特殊方法详解:__new__、__init__、__del__、__str__、__repr__ 与 __getattribute__
开发语言·人工智能·python·1024程序员节