文章“【Azure Developer】在Azure Resource Graph Explorer中查看当前订阅下的所有资源信息列表并导出(如VM的名称,IP地址内网/公网,OS,区域等) ”的另一个示例。

问题描述

使用Azure Resource Graph查询:把这订阅(Subscription ID)下的VM虚拟机和相关磁盘信息拉取一下数据(VM名字,VM的tag,VM的资源ID,硬盘名字,硬盘大小,磁盘的资源ID)

问题答案

根据Azure Resource Graph Explorer中提供的Resources表来查看VM的相关信息。而磁盘相关的信息处于 properties.storageProfile.osDisk 以及 properties.storageProfile.dataDisks中。

示例查询语句为:

resources
| where type =~ 'microsoft.compute/virtualmachines'
| extend osDisk = properties.storageProfile.osDisk, disks = properties.storageProfile.dataDisks
| project name, tags, id, osDisk.name, osDisk.diskSizeGB, osDisk.managedDisk.id,
disks[0].name, disks[0].diskSizeGB,
disks[1].managedDisk.id, disks[1].name, disks[1].diskSizeGB, disks[1].managedDisk.id,
disks[2].name, disks[2].diskSizeGB,disks[2].managedDisk.id

查询结果示例:

附录一:新创建的VM如果时托管类的Disk,则Disk Size信息无法直接在Type == ‘microsoft.compute/virtualmachines’ 中获取到,需要在 type=='microsoft.compute/disks'  资源中关联出来。

参考示例

Resources
| where type == "microsoft.compute/virtualmachines"
| extend os = properties.storageProfile.imageReference.offer
| extend sku = properties.storageProfile.imageReference.sku
| extend hostName = properties.osProfile.computerName
| extend vmSize = properties.hardwareProfile.vmSize
| extend osDiskName = properties.storageProfile.osDisk.name
| extend osDiskSize = properties.storageProfile.osDisk.diskSizeGB
| extend dataDisks = properties.storageProfile.dataDisks
| extend managedDiskId_0= tolower(tostring(dataDisks[0].managedDisk.id))
| extend managedDiskId_1 = tolower(tostring(dataDisks[1].managedDisk.id))
| join kind=leftouter (
Resources
| where type == 'microsoft.compute/disks'
| project managedDiskId_0 = tolower(id),dataDisk_0_Name=name,dataDisk_0_SizeGB=properties.diskSizeGB)
on managedDiskId_0
| join kind=leftouter (
Resources
| where type == 'microsoft.compute/disks'
| project managedDiskId_1 = tolower(id),dataDisk_1_Name=name,dataDisk_1_SizeGB=properties.diskSizeGB)
on managedDiskId_1
| project subscriptionId, vmName = name, resourceGroup, location, hostName, os, sku, osDiskName, osDiskSize, vmSize, dataDisks,
managedDiskId_0, dataDisks[0].name, dataDisk_0_diskSizeGB=iif(isnull(dataDisks[0].diskSizeGB),dataDisk_0_SizeGB,dataDisks[0].diskSizeGB),
managedDiskId_1, dataDisks[1].name, dataDisk_1_diskSizeGB=iif(isnull(dataDisks[1].diskSizeGB),dataDisk_1_SizeGB,dataDisks[1].diskSizeGB),
properties

参考文档:

Azure Virtual Machines : https://docs.microsoft.com/en-us/azure/governance/resource-graph/samples/samples-by-category?tabs=azure-cli#azure-virtual-machines

Query operators : https://docs.microsoft.com/en-us/azure/data-explorer/kusto/query/queries

【Azure Developer】使用Azure Resource Graph的查询语法的示例的更多相关文章

  1. 【Azure Developer】使用Microsoft Graph API 批量创建用户,先后遇见的三个错误及解决办法

    问题描述 在先前的一篇博文中,介绍了如何使用Microsoft Graph API来创建Azure AD用户(博文参考:[Azure Developer]使用Microsoft Graph API 如 ...

  2. 【Azure Developer】使用 Microsoft Graph API 获取 AAD User 操作示例

    问题描述 查看官方文档" Get a user " , 产生了一个操作示例的想法,在中国区Azure环境中,演示如何获取AAD User信息. 问题解答 使用Microsoft G ...

  3. 【Azure Developer】Azure Graph SDK获取用户列表的问题: SDK中GraphServiceClient如何指向中国区的Endpoint:https://microsoftgraph.chinacloudapi.cn/v1.0

    问题描述 想通过Java SDK的方式来获取Azure 门户中所列举的用户.一直报错无法正常调用接口,错误信息与AAD登录认证相关,提示tenant not found. 想要实现的目的,通过代码方式 ...

  4. 【Azure Developer】使用Microsoft Graph API 如何批量创建用户,用户属性中需要包含自定义字段(如:Store_code,Store_name等)

    Microsoft Graph 是 Microsoft 365 中通往数据和智能的网关. 它提供统一的可编程模型,可用于访问 Microsoft 365.Windows 10 和企业移动性 + 安全性 ...

  5. 【Azure Developer】使用Microsoft Graph API创建用户时候遇见“401 : Unauthorized”“403 : Forbidden”

    问题描述 编写Java代码调用Mircrosoft Graph API创建用户时,分别遇见了"401 : Unauthorized"和"403 : Forbidden&q ...

  6. 【Azure Developer】Azure Automation 自动化账号生成的时候怎么生成连接 与证书 (Connection & Certificate)

    Azure Automation :The Azure Automation service provides a highly reliable and scalable workflow exec ...

  7. 【Azure Developer】Azure Logic App 示例: 解析 Request Body 的 JSON 的表达式? triggerBody()?

    问题描述 通过Azure Logic App(逻辑应用)实现无代码的处理JSON数据.但是如何获取Request Body中的一个属性值呢? 例如:如何来获取以下JSON结构中的 ObjectName ...

  8. 【Azure Developer】在Azure Resource Graph Explorer中查看当前订阅下的所有资源信息列表并导出(如VM的名称,IP地址内网/公网,OS,区域等)

    问题描述 通过Azure的Resource Graph Explorer(https://portal.azure.cn/#blade/HubsExtension/ArgQueryBlade),可以查 ...

  9. 【Azure 环境】Azure Resource Graph Explorer 中实现动态数组数据转换成多行记录模式 - mv-expand

    问题描述 想对Azure中全部VM的NSG资源进行收集,如果只是查看一个VM的NSG设定,可以在门户页面中查看表格模式,但是如果想把导出成表格,可以在Azure Resource Graph Expl ...

  10. 【Azure Developer】使用 Microsoft Authentication Libraries (MSAL) 如何来获取Token呢 (通过用户名和密码方式获取Access Token)

    问题描述 在上一篇博文<[Azure Developer]使用 adal4j(Azure Active Directory authentication library for Java)如何来 ...

随机推荐

  1. 冷备份MySQL数据库并且使用Docker直接运行的操作过程

    备份数据库 查看数据库的数据文件的位置 systemctl status mysqld 查看启动进程以及防水 /etc/my.conf 查看datadir 指向Mysql数据库的存储数据路径. 关闭数 ...

  2. 深入浅出RPC服务 | 不同层的网络协议

    导读: 本系列文章从RPC产生的历史背景开始讲解,涉及RPC核心原理.RPC实现.JSF的实现等,通过图文类比的方式剖析它的内部世界,让大家对RPC的设计思想有一个宏观的认识. 作者:王禹展   京东 ...

  3. 携程Java三面面经,已拿 offer!!

    分享一位读者投稿的携程校招 Java 岗位的面经. 下面是正文. 个人背景:双非本,机械专业转码. 携程在正式面试之前,会有一个性格测试(40分钟).性格测试之后,大概过一周进行笔试.笔试之后,会邮件 ...

  4. 从嘉手札<2023-11-01>

    最近心态不好,如同此刻的天气,浓雾扰扰,看不见前途未来,也想不起过去. 一则是研究没有进展,二则是感情纷扰,其实再多的纷扰也都不过是自己内心的那层桎梏,可人不能总能保持理性的: 就像很多快乐的事情是简 ...

  5. 服了,一个ThreadLocal被问出了花

    分享是最有效的学习方式. 博客:https://blog.ktdaddy.com/ 故事 地铁上,小帅无力地倚靠着杆子,脑子里尽是刚才面试官的夺命连环问,"用过TheadLocal么?Thr ...

  6. ch57x/ch58x开启仿真

    本次使用的平台是MounRiver Studio,使用的是WCH的CH582m与WCH-LinkE 仿真之前确保LinkE处在Risc-V模式下  空闲时蓝灯常灭 Step1:首先通过ISP工具开启两 ...

  7. 文心一言 VS 讯飞星火 VS chatgpt (193)-- 算法导论14.3 1题

    一.用go语言,写出作用于区间树的结点且在 〇(1) 时间内更新 max 属性的过程 LEFT-ROTATE 的伪代码. 文心一言: 以下是一个简单的LEFT-ROTATE的伪代码,它对一个二叉搜索树 ...

  8. go Printf 语句的占位符 Format

    func main() { var a uint8 = 12 var b = "wokao" fmt.Printf("查看类型:%T\n", a) //查看类型 ...

  9. FreeSWITCH在session上执行特定dialplan

    操作系统 :CentOS 7.6_x64 FreeSWITCH版本 :1.10.9 日常开发中,会遇到需要在已存在的session上执行特定拨号方案的情况,今天整理下这方面的内容,我将从以下几个方面进 ...

  10. 思维分析逻辑 5 DAY

    目录 如何分析 结构分析 对比分析 时间序列 相关性分析 机器学习 报告撰写 报告撰写三原则 标准化报告的组成 AB测试 AB测试流程 AB测试注意事项 如何分析 结构分析 对比分析 对比分析:所有的 ...