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

简介: 本文介绍如何基于 Azure China(21Vianet)环境,通过 ARM REST API 实现 VM 统一资产管理:支持获取全量 VM 列表、运行状态(如 PowerState/running)、CPU/内存规格、公网/私网 IP、OS 类型,并可判断删除状态(404)及审计删除操作日志,满足只读、安全、可控的自动化集成需求。(239字)

问题描述

基于 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 中注册应用程序 : https://docs.azure.cn/zh-cn/entra/identity-platform/quickstart-register-app

 

 


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

相关文章
|
1月前
|
安全 数据安全/隐私保护 Windows
一文搞懂企业加密软件:透明加密的技术原理与落地
本文深入解析企业数据防泄漏中的加密实践,强调加密非“一键开关”,而是涵盖密钥管理、分层加密(文件级/磁盘级)、透明拦截(minifilter)、信封加密、USB管控、外发策略与密文溯源的系统工程,并提出选型需聚焦加密模式、密钥管控、落地形态三大维度。
204 1
|
2月前
|
人工智能 Java Apache
Apache Jena 详解:Java 开发者如何真正搭起一套知识图谱与语义服务
Apache Jena 是 Java 生态中成熟的语义网开源框架,提供 RDF 存储、SPARQL 查询、TDB2 图数据库、Fuseki 服务端、本体建模、逻辑推理与 SHACL 验证等全栈能力,是构建企业级知识图谱与 AI 语义后端的理想基础设施。(239字)
472 1
Apache Jena 详解:Java 开发者如何真正搭起一套知识图谱与语义服务
|
2月前
|
人工智能 缓存 自然语言处理
阿里云百炼节省计划、资源包、Token Plan订阅计划怎么选?区别与选择指南参考
本文介绍了阿里云百炼平台三类主流大模型成本优化方案的核心差异,分别是AI通用型节省计划、资源包与Token Plan订阅计划。文中从计费逻辑、模型覆盖范围、折扣力度、适用场景等多个维度完成横向对比,给出官方推荐的选型决策路径:长期稳定多模型调用优先选最高5.3折的AI通用型节省计划,短期单一模型试用选资源包,多人协作共享额度选Token Plan,同时补充了新客4.5折入门套餐、个人/团队版Token Plan最新权益与下单领券抵扣技巧,帮助不同规模的用户快速匹配适配自身业务的最优成本方案。
阿里云百炼节省计划、资源包、Token Plan订阅计划怎么选?区别与选择指南参考
|
2月前
|
存储 Web App开发 人工智能
【AI】Agent 全栈进阶|Agent 记忆机制
本文讲解 Agent 记忆系统,区分会话内短期记忆与跨会话长期记忆。短期记忆借助滑动窗口、摘要压缩管理上下文;长期记忆筛选有效事实外部存储,按需召回,附带完整实操代码
278 0
|
2月前
|
人工智能 前端开发 Java
AGENTS.md跨工具标准实战:终结AI编码配置碎片化,Cursor/Claude/Codex全兼容落地手册
随着AI编程助手大规模进入研发工作流,Cursor、Claude Code、Codex、Gemini CLI等工具被团队同时使用的场景越来越普遍。不同工具各自定义专属规则配置文件,Cursor依赖`.cursorrules`,Claude Code使用`CLAUDE.md`,Codex早期使用`AGENT.md`。同一套编码约束、架构规则、项目构建命令,团队需要维护多份内容高度重合的文档。修改一条编码规范,就要同步更新全部配置,极易出现内容不一致,导致AI获取到的项目信息出现偏差,生成的代码质量参差不齐,大量时间耗费在人工修改AI产出的不合规代码上。
346 0
|
1月前
|
存储 人工智能 弹性计算
阿里云服务器多少钱一年?2026年最新优惠服务器配置排行榜,共15台!
2026年阿里云服务器价格全面优化,覆盖38元/年入门款至万元级AI算力。本文整理15款高性价比配置,分三梯队:个人开发(No.1–5)、中小企业(No.6–10)、高性能/AI(No.11–15),含价格、配置、适用场景及避坑指南,助您精准选型。
425 0
|
Java 开发工具
【Azure Storage Account】Java Code访问Storage Account File Share的上传和下载代码示例
本文介绍如何使用Java通过azure-storage-file-share SDK实现Azure文件共享的上传下载。包含依赖引入、客户端创建及完整示例代码,助你快速集成Azure File Share功能。
768 6
|
6月前
|
NoSQL 网络协议 Cloud Native
【Azure Redis】云原生环境下的 Redis 超时之谜:为什么 15 分钟后应用才恢复?
云原生中Redis短暂不可用后应用持续超时15分钟?问题不在Redis,而在Linux TCP默认重传机制(tcp_retries2=15)与长连接模型的错位。需三管齐下:调低内核重传次数、客户端显式配置超时与自动重连、应用层引入断路器与弹性重试。
378 20
|
6月前
|
网络协议 虚拟化 Docker
【Azure Developer】.NET Aspire 启动报错:listen tcp bind: An attempt was made to access a socket in a way forbidden by its access permissions
.NET Aspire在Windows启动时因Hyper-V端口保留机制,导致DCP代理无法绑定53209等端口(报错“访问被拒绝”)。虽端口未被占用,但已被系统保留。推荐方案:修改launchSettings.json,将服务端口改为7xxx等安全范围;或临时重启winnat服务、永久排除指定端口。
760 21
|
6月前
|
人工智能 监控 网络协议
【App Service】常规排查 App Service 启动 Application Insights 无数据的步骤 (.NET版本)
本文详解Application Insights在Azure App Service中无日志数据的三大原因及排查方法:1)网络连通性(验证到AI端点的443端口访问);2)w3wp.exe进程是否成功加载AI模块;3)DLL冲突(检查并移除重复的Microsoft.ApplicationInsights等组件)。
290 10