文章“【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. Redis极简教程

    简介 Redis 是用C语言开发完全开源免费的,遵守BSD协议的,一个高性能的,key-value型的,NOSQL数据库. 特点 可以将内存中的数据持久化到硬盘中,重启的时候可以从硬盘中再次加载 拥有 ...

  2. 火狐谷歌浏览器去掉input type=number时控件的方法

    html 默认:<input type="number" /></br> 处理:<input type="number" clas ...

  3. 【一个构想】pull方式获取expoter上的数据,如何更加精简?

    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu 公众号:一本正经的瞎扯 背景 已知:在prometheus中,每个业务节点通过prometheu ...

  4. SqlSugar实体

    1.实体使用自带特性 1.1 使用用例 对于 CRUD来说只需要配置主键和自增列就行了 ,如果类的名称和数据库不一样可以设置数据库中的名称 主键自增 [SugarTable("dbstude ...

  5. 深度学习应用篇-元学习[15]:基于度量的元学习:SNAIL、RN、PN、MN

    深度学习应用篇-元学习[15]:基于度量的元学习:SNAIL.RN.PN.MN 1.Simple Neural Attentive Learner(SNAIL) 元学习可以被定义为一种序列到序列的问题 ...

  6. python:spacy、gensim库的安装遇到问题及bug处理

    1.spacy SpaCy最新版V3.0.6版,在CMD 模式下可以通过 pip install spacy -U 进行安装 注意这个过程进行前可以先卸载之前的旧版本 pip uninstall sp ...

  7. SpringBoot基于Spring Security的HTTP跳转HTTPS

    简单说说 之所以采用Spring Security来做这件事,一是Spring Security可以根据不同的URL来进行判断是否需要跳转(不推荐), 二是不需要新建一个TomcatServletWe ...

  8. DbgridEh表格框的【可连续点击两次编辑设置,和不允许点击两次编辑的设置】

  9. DHCP的安装与配置

    一:前期准备 1.打开windows虚拟机,使用仅主机模式 (虚拟机(M)→设置(S)→网络适配器) 2.修改Windows ip可选范围为192.168.1.204到192.168.1.207 对应 ...

  10. Redis+Lua实现简易的秒杀抢购

    1  商品抢购 主要逻辑是:减库存,记录抢购成功的用户 @RestController public class DemoController { @Resource private StringRe ...