You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure资源图中动态获取JSON数组的所有嵌套属性(如VM数据磁盘)

Azure资源图查询虚拟机全部数据磁盘的方法

要动态获取虚拟机挂载的所有数据磁盘,核心是利用Azure资源图的mv-expand操作符展开dataDisks数组,以下是两种常用的查询方式:

方式1:逐条展示每个数据磁盘(关联VM信息)

这种方式会将每个数据磁盘作为单独的记录返回,方便查看单条磁盘的详细属性:

Resources
| where type == 'microsoft.compute/virtualmachines'
| mv-expand dataDisk = properties.storageProfile.dataDisks
| project 
    vmName = name,
    resourceGroup,
    diskName = dataDisk.name,
    diskSizeGB = dataDisk.diskSizeGB,
    lun = dataDisk.lun,
    diskState = dataDisk.diskState,
    managedDiskId = dataDisk.managedDisk.id
  • mv-expand:将虚拟机的dataDisks数组展开,每个磁盘元素生成一条独立记录,同时保留对应的VM基本信息。
  • 可根据需求添加更多磁盘属性,比如缓存类型dataDisk.caching、创建方式dataDisk.createOption等。

方式2:按虚拟机汇总所有数据磁盘信息

如果需要将同一台虚拟机的所有磁盘信息聚合在一行,可使用数组处理函数实现:

Resources
| where type == 'microsoft.compute/virtualmachines'
| project 
    vmName = name,
    resourceGroup,
    dataDisks = properties.storageProfile.dataDisks
| extend dataDiskDetails = array_to_string(
    array_map(
        dataDisks, 
        d => strcat("磁盘名: ", d.name, ", 大小(GB): ", d.diskSizeGB, ", LUN: ", d.lun)
    ),
    " | "
)
| project vmName, resourceGroup, dataDiskDetails
  • array_map遍历每个磁盘元素,拼接成包含关键属性的字符串;
  • array_to_string将拼接后的字符串数组转为用指定分隔符(这里是|)连接的单行文本,便于查看汇总信息。

内容的提问来源于stack exchange,提问作者Veera

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 20:55:58