Поделиться через


Примеры запросов Azure Resource Graph для Azure Resource Manager

Эта страница содержит коллекцию примеров запросов Azure Resource Graph для Azure Resource Manager.

Примеры запросов для тегов

Поиск учетных записей хранения по указанному тегу без учета регистра в группе ресурсов

Аналогично запросу "Поиск учетных записей хранения с определенным тегом с учетом регистра в группе ресурсов", но при необходимости искать имя нечувствительного тега регистра и значение тега, используйте mv-expand с параметром bagexpansion . Этот запрос использует больше квот, чем исходный запрос, поэтому используйте mv-expand только при необходимости.

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"

Поиск учетных записей хранения по указанному тегу с учетом регистра в группе ресурсов

В приведенном ниже запросе используется innerjoin для подключения учетных записей хранения к группам ресурсов с указанными именем с учетом регистра и значением тега.

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"

Вывод списка всех названий тегов

Этот запрос начинается с тега и строит объект JSON, перечисляющий все уникальные имена тегов и их соответствующие типы.

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

Вывод всех тегов и их значений

В этом запросе приведены теги для групп управления, подписок и ресурсов, а также их значения. Сначала запрос ограничивается ресурсами с тегами isnotempty(), затем ограничивается включаемыми полями, в том числе тегами в project, а затем — mvexpand и extend для получения связанных данных из контейнера свойств. Затем он использует union для объединения результатов из контейнеров ресурсов, чтобы получить результаты из ресурсов, предоставляя полные сведения о том, какие теги получены. Наконец, он ограничивается результатами для сопоставленных данных distinct и исключает скрытые системой теги.

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-""

Вывод списка ресурсов с определенным значением тега

Мы можем ограничить результаты не только по типу ресурса Azure, а, например, по тегу. В этом примере мы применяем фильтр для получения ресурсов Azure с тегом Environment со значением Internal. Чтобы указать теги ресурсов и их значения, добавьте свойство tags для ключевого слова project.

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

Следующие шаги