Przykładowe zapytania usługi Azure Resource Graph dla usługi Azure Resource Manager

Ta strona jest kolekcją przykładowych zapytań usługi Azure Resource Graph dla usługi Azure Resource Manager. Aby uzyskać pełną listę przykładów usługi Azure Resource Graph, zobacz Przykłady usługi Resource Graph według kategorii i przykładów usługi Resource Graph według tabeli.

Przykładowe zapytania dotyczące tagów

Znajdowanie kont magazynu z określonym tagiem bez uwzględniania wielkości liter w grupie zasobów

Podobnie jak w zapytaniu "Znajdź konta magazynu z określonym tagiem wrażliwym na wielkość liter w grupie zasobów", ale gdy konieczne jest wyszukanie nazwy tagu bez uwzględniania wielkości liter i wartości tagu, należy użyć mv-expand z parametrem bagexpansion . To zapytanie używa większego limitu przydziału niż oryginalne zapytanie, dlatego należy użyć mv-expand tylko w razie potrzeby.

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"

Znajdowanie kont magazynu z określonym tagiem uwzględniającym wielkość liter w grupie zasobów

Poniższe zapytanie używa wewnętrznego join konta magazynu z grupami zasobów, które mają określoną nazwę tagu z uwzględnieniem wielkości liter i wartość tagu.

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"

Wyświetlanie listy wszystkich nazw tagów

To zapytanie rozpoczyna się od tagu i tworzy obiekt JSON zawierający listę wszystkich unikatowych nazw tagów i odpowiadających im typów.

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

Wyświetlanie listy wszystkich tagów i ich wartości

To zapytanie zawiera listę tagów grup zarządzania, subskrypcji i zasobów wraz z ich wartościami. Zapytanie najpierw ogranicza zasoby, w których tagi isnotempty(), ogranicza uwzględnione pola tylko przez uwzględnienie tagów w projectobiekcie i i mvexpandextend pobranie sparowanych danych z torby właściwości. Następnie używa union metody , aby połączyć wyniki z usługi ResourceContainers z tymi samymi wynikami z zasobów, co daje szeroki zakres, do którego są pobierane tagi. Na koniec ogranicza wyniki do distinct sparowanych danych i wyklucza tagi ukryte przez system.

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

Lista zasobów z konkretną wartością tagu

Możemy ograniczyć wyniki za pomocą właściwości innych niż typ zasobu platformy Azure, takich jak tag. W tym przykładzie filtrujemy zasoby platformy Azure za pomocą nazwy tagu Środowisko o wartości Wewnętrzne. Aby uzyskać także nazwy i wartości tagów w zasobie, dodaj właściwość tagi do słowa kluczowego project.

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

Następne kroki