【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


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

相关推荐
code_whiter8 小时前
7.自动化测试常用函数
python·功能测试
小园子的小菜9 小时前
Python协程深度解析:从原理演进到实战避坑
后端·python
砚底藏山河9 小时前
量化实战:截面因子有效性检验(IC 分析与分层回测)
java·python·金融·maven
GitFun9 小时前
给策略加了条-8%止损线,11年只触发1次
python·股票·量化交易
马六六i10 小时前
市面上正规的IP驱动产业新场景新工具有哪些
大数据·网络·python·tcp/ip
I Am a robert girl11 小时前
稀有事件估计的迭代去对齐:从源码视角拆解重要性采样新范式
开发语言·python·机器学习·重要性采样·蒙特卡洛方法·稀有事件估计
天若有情67311 小时前
开源|Comfort Lang v1.0.1,一款主打清爽交互的新型命令式编程语言
python·开源·交互·编程语言·项目分享·repl·comfort lang
打工仔折腾 AI12 小时前
System Prompt 替代 Few-shot:用规则约束大模型输出的省钱实践
java·人工智能·python·spring·langchain·prompt·ai agent 实战
打工仔折腾 AI12 小时前
从零写一个CAD 05:以鼠标为中心的滚轮缩放,招法能复用但顺序不能反
开发语言·后端·python·性能优化·计算机外设·swift·ai agent 实战
for_ever_love__12 小时前
控制流——if、for、while 与可迭代对象
python·大模型开发·循环·控制流