Partager via


Exemples de requêtes Azure Resource Graph pour Azure Resource Manager

Cette page est une collection d’exemples de requêtes Azure Resource Graph pour Azure Resource Manager.

Exemples de requêtes pour les balises

Rechercher les comptes de stockage avec une étiquette spécifique qui ne respecte pas la casse sur le groupe de ressources

Semblable à la requête « Rechercher les comptes de stockage avec une étiquette spécifique qui respecte la casse sur le groupe de ressources », mais si vous devez rechercher un nom et une valeur d’étiquette qui ne respectent pas la casse, utilisez mv-expand avec le paramètre bagexpansion. Dans la mesure où cette requête utilise plus de quota que la requête originale, utilisez mv-expand uniquement en cas de nécessité.

Resources
| where type =~ 'microsoft.storage/storageaccounts'
| join kind=inner (
  ResourceContainers
  | where type =~ 'microsoft.resources/subscriptions/resourcegroups'
  | mv-expand bagexpansion=array tags
  | where isnotempty(tags)
  | where tags[0] =~ 'key1' and tags[1] =~ 'value1'
  | project subscriptionId, resourceGroup)
on subscriptionId, resourceGroup
| project-away subscriptionId1, resourceGroup1
az graph query -q "Resources | where type =~ 'microsoft.storage/storageaccounts' | join kind=inner ( ResourceContainers | where type =~ 'microsoft.resources/subscriptions/resourcegroups' | mv-expand bagexpansion=array tags | where isnotempty(tags) | where tags[0] =~ 'key1' and tags[1] =~ 'value1' | project subscriptionId, resourceGroup) on subscriptionId, resourceGroup | project-away subscriptionId1, resourceGroup1"

Rechercher les comptes de stockage avec une étiquette spécifique qui respecte la casse sur le groupe de ressources

La requête suivante utilise innerjoin pour connecter des comptes de stockage à des groupes de ressources ayant un nom et une valeur d’étiquette spécifiques qui respectent la casse.

Resources
| where type =~ 'microsoft.storage/storageaccounts'
| join kind=inner (
  ResourceContainers
  | where type =~ 'microsoft.resources/subscriptions/resourcegroups'
  | where tags['Key1'] =~ 'Value1'
  | project subscriptionId, resourceGroup)
on subscriptionId, resourceGroup
| project-away subscriptionId1, resourceGroup1
az graph query -q "Resources | where type =~ 'microsoft.storage/storageaccounts' | join kind=inner ( ResourceContainers | where type =~ 'microsoft.resources/subscriptions/resourcegroups' | where tags['Key1'] =~ 'Value1' | project subscriptionId, resourceGroup) on subscriptionId, resourceGroup | project-away subscriptionId1, resourceGroup1"

Lister tous les noms d’étiquette

Cette requête commence par l’étiquette et génère un objet JSON listant tous les noms d’étiquette uniques et leurs types correspondants.

Resources
| project tags
| summarize buildschema(tags)
az graph query -q "Resources | project tags | summarize buildschema(tags)"

Lister toutes les étiquettes et leurs valeurs

Cette requête liste les étiquettes sur les groupes d’administration, les abonnements et les ressources ainsi que leurs valeurs. La requête limite d’abord les résultats aux ressources où les étiquettes sont non vides (isnotempty()), puis limite les champs inclus en incluant uniquement tags dans project, mvexpand et extend pour obtenir les données associées à partir du jeu de propriétés. Elle utilise ensuite union pour combiner les résultats de ResourceContainers aux mêmes résultats de Resources, couvrant largement les étiquettes effectivement extraites. Enfin, elle limite les résultats aux données associées distinct et exclut les étiquettes cachées par le système.

ResourceContainers
| where isnotempty(tags)
| project tags
| mvexpand tags
| extend tagKey = tostring(bag_keys(tags)[0])
| extend tagValue = tostring(tags[tagKey])
| union (
  resources
  | where isnotempty(tags)
  | project tags
  | mvexpand tags
  | extend tagKey = tostring(bag_keys(tags)[0])
  | extend tagValue = tostring(tags[tagKey])
)
| distinct tagKey, tagValue
| where tagKey !startswith "hidden-"
az graph query -q "ResourceContainers | where isnotempty(tags) | project tags | mvexpand tags | extend tagKey = tostring(bag_keys(tags)[0]) | extend tagValue = tostring(tags[tagKey]) | union ( resources | where isnotempty(tags) | project tags | mvexpand tags | extend tagKey = tostring(bag_keys(tags)[0]) | extend tagValue = tostring(tags[tagKey]) ) | distinct tagKey, tagValue | where tagKey !startswith "hidden-""

Lister les ressources avec une valeur d’étiquette spécifique

Nous pouvons limiter les résultats en fonction d’autres propriétés que le type de ressource Azure, notamment une étiquette. Dans cet exemple, nous filtrons les ressources Azure ayant une étiquette nommée environment avec pour valeur internal. Pour savoir également les étiquettes dont dispose la ressource et leurs valeurs, ajoutez la propriété étiquettes au mot-clé project.

Resources
| where tags.environment=~'internal'
| project name, tags
az graph query -q "Resources | where tags.environment=~'internal' | project name, tags"

Étapes suivantes