Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Dotazovací jazyk pro Azure Resource Graph podporuje mnoho operátorů a funkcí. Každá práce a funguje na základě dotazovací jazyk Kusto (KQL). Pokud chcete získat další informace o dotazovacím jazyce, který používá Resource Graph, začněte kurzem, který je věnovaný KQL.
Tento článek se zabývá komponentami jazyka podporovanými službou Resource Graph:
Tabulky Resource Graphu
Resource Graph poskytuje několik tabulek pro data uložená o typech prostředků Azure Resource Manageru a jejich vlastnostech. Tabulky Resource Graphu je možné použít s operátorem join k získání vlastností ze souvisejících typů prostředků.
Tabulky Resource Graphu join podporují varianty:
| Tabulka Resource Graph | Můžou join jiné tabulky? |
Description |
|---|---|---|
| AdvisorResources | Yes | Zahrnuje zdroje související s .Microsoft.Advisor |
| AlertsManagementResources | Yes | Zahrnuje zdroje související s .Microsoft.AlertsManagement |
| AppServiceResources | Yes | Zahrnuje zdroje související s .Microsoft.Web |
| AuthorizationResources | Yes | Zahrnuje zdroje související s .Microsoft.Authorization |
| AWSResources | Yes | Zahrnuje zdroje související s .Microsoft.AwsConnector |
| AzureBusinessContinuityResources | Yes | Zahrnuje zdroje související s .Microsoft.AzureBusinessContinuity |
| ChaosResources | Yes | Zahrnuje zdroje související s .Microsoft.Chaos |
| CommunityGalleryResources | Yes | Zahrnuje zdroje související s .Microsoft.Compute |
| ComputeResources | Yes | Zahrnuje prostředky související se škálovacími sadami Microsoft.Compute virtuálních počítačů. |
| DesktopVirtualizationResources | Yes | Zahrnuje zdroje související s .Microsoft.DesktopVirtualization |
| DnsResources | Yes | Zahrnuje zdroje související s .Microsoft.Network |
| EdgeOrderResources | Yes | Zahrnuje zdroje související s .Microsoft.EdgeOrder |
| ElasticsanResources | Yes | Zahrnuje zdroje související s .Microsoft.ElasticSan |
| ExtendedLocationResources | Yes | Zahrnuje zdroje související s .Microsoft.ExtendedLocation |
| FeatureResources | Yes | Zahrnuje zdroje související s .Microsoft.Features |
| GuestConfigurationResources | Yes | Zahrnuje zdroje související s .Microsoft.GuestConfiguration |
| HealthResourceChanges | Yes | Zahrnuje zdroje související s .Microsoft.Resources |
| HealthResources | Yes | Zahrnuje zdroje související s .Microsoft.ResourceHealth |
| InsightsResources | Yes | Zahrnuje zdroje související s .Microsoft.Insights |
| IoTSecurityResources | Yes | Zahrnuje zdroje související s Microsoft.IoTSecurity a Microsoft.IoTFirmwareDefense. |
| KubernetesConfigurationResources | Yes | Zahrnuje zdroje související s .Microsoft.KubernetesConfiguration |
| KustoResources | Yes | Zahrnuje zdroje související s .Microsoft.Kusto |
| MaintenanceResources | Yes | Zahrnuje zdroje související s .Microsoft.Maintenance |
| ManagedServicesResources | Yes | Zahrnuje zdroje související s .Microsoft.ManagedServices |
| MigrateResources | Yes | Zahrnuje zdroje související s .Microsoft.OffAzure |
| NetworkResources | Yes | Zahrnuje zdroje související s .Microsoft.Network |
| PatchAssessmentResources | Yes | Zahrnuje zdroje související s hodnocením Microsoft.Compute záplat Azure Virtual Machines a Microsoft.HybridCompute. |
| PatchInstallationResources | Yes | Zahrnuje zdroje související s instalací Microsoft.Compute záplat Azure Virtual Machines a Microsoft.HybridCompute. |
| PolicyResources | Yes | Zahrnuje zdroje související s .Microsoft.PolicyInsights |
| RecoveryServicesResources | Yes | Zahrnuje zdroje související s Microsoft.DataProtection a Microsoft.RecoveryServices. |
| ResourceChanges | Yes | Zahrnuje zdroje související s .Microsoft.Resources |
| ResourceContainerChanges | Yes | Zahrnuje zdroje související s .Microsoft.Resources |
| ResourceContainers | Yes | Zahrnuje typy prostředků a data skupiny pro správu (Microsoft.Management/managementGroups), předplatné (Microsoft.Resources/subscriptions) a skupiny prostředků (Microsoft.Resources/subscriptions/resourcegroups). |
| Resources | Yes | Výchozí tabulka, pokud není v dotazu definovaná tabulka. Tady je většina typů prostředků a vlastností Resource Manageru. |
| SecurityResources | Yes | Zahrnuje zdroje související s .Microsoft.Security |
| ServiceFabricResources | Yes | Zahrnuje zdroje související s .Microsoft.ServiceFabric |
| ServiceHealthResources | Yes | Zahrnuje zdroje související s .Microsoft.ResourceHealth/events |
| SpotResources | Yes | Zahrnuje zdroje související s .Microsoft.Compute |
| SupportResources | Yes | Zahrnuje zdroje související s .Microsoft.Support |
| TagsResources | Yes | Zahrnuje zdroje související s .Microsoft.Resources/tagnamespaces |
Seznam tabulek, které obsahují typy prostředků, najdete v tabulce Azure Resource Graphu a odkazu na typ prostředku.
Note
Resources je výchozí tabulka. Při dotazování tabulky Resources není nutné zadávat název tabulky, pokud join se nepoužívá ani union nepoužívá. Doporučeným postupem je ale vždy zahrnout do dotazu počáteční tabulku.
Pokud chcete zjistit, které typy prostředků jsou dostupné v každé tabulce, použijte Průzkumníka služby Resource Graph na portálu. Jako alternativu použijte dotaz, například <tableName> | distinct type k získání seznamu typů prostředků, které daná tabulka Resource Graph podporuje, které ve vašem prostředí existují.
Následující dotaz ukazuje jednoduchý join. Výsledek dotazu spojí sloupce dohromady a jakékoliv duplicitní názvy sloupců z spojené tabulky, v tomto příkladu ResourceContainers , jsou připojeny jednotkou 1. Protože tabulka ResourceContainers obsahuje typy jak pro odběry, tak pro skupiny zdrojů, může být použit jakýkoli typ pro připojení ke zdroji z Resources tabulky.
Resources
| join ResourceContainers on subscriptionId
| limit 1
Následující dotaz ukazuje složitější použití join. Nejprve dotaz použije project k získání polí Resources pro typ prostředku trezorů služby Azure Key Vault. Další krok využívá join sloučení výsledků s ResourceContainers , kde typ je předplatné na vlastnosti, která je jak v první tabulce, project tak v spojené tabulce project. Přejmenování pole se vynechá join přidání jako název1, protože vlastnost je již promítnuta z Resources. Výsledkem dotazu je jeden trezor klíčů zobrazující typ, název, umístění a skupinu prostředků trezoru klíčů spolu s názvem předplatného, ve kterém se nachází.
Resources
| where type == 'microsoft.keyvault/vaults'
| project name, type, location, subscriptionId, resourceGroup
| join (ResourceContainers | where type=='microsoft.resources/subscriptions' | project SubName=name, subscriptionId) on subscriptionId
| project type, name, location, resourceGroup, SubName
| limit 1
Note
Při omezení join výsledků na project, musí být vlastnost použitá join k propojení dvou tabulek, subscriptionId v uvedeném příkladu, zahrnuta do .project
Rozšířené vlastnosti
Jako ukázková funkce mají některé typy zdrojů v Resource Graph k dispozici více typů souvisejících vlastností k dotazování nad rámec vlastností poskytovaných Azure Resource Managerem. Tato množina hodnot, známá jako rozšířené vlastnosti, existuje na podporovaném typu zdroje v properties.extended. Pro zobrazení typů zdrojů s rozšířenými vlastnostmi použijte následující dotaz:
Resources
| where isnotnull(properties.extended)
| distinct type
| order by type asc
Příklad: Získání počtu virtuálních počítačů podle instanceView.powerState.code:
Resources
| where type == 'microsoft.compute/virtualmachines'
| summarize count() by tostring(properties.extended.instanceView.powerState.code)
Elementy vlastního jazyka Resource Graphu
Syntaxe sdíleného dotazu (Preview)
Jako náhledová funkce lze sdílený dotaz přímo otevřít v dotazu Resource Graph. Tento scénář umožňuje vytvářet standardní dotazy jako sdílené dotazy a opakovaně je používat. Pokud chcete volat sdílený dotaz v dotazu Resource Graphu, použijte {{shared-query-uri}} syntaxi. URI sdíleného dotazu je Resource ID sdíleného dotazu na stránce Nastavení pro tento dotaz. V tomto příkladu je /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SharedQueries/providers/Microsoft.ResourceGraph/queries/Count VMs by OSidentifikátor URI sdíleného dotazu .
Tento identifikátor URI odkazuje na předplatné, skupinu prostředků a úplný název sdíleného dotazu, na který chceme odkazovat v jiném dotazu. Tento dotaz je stejný jako dotaz vytvořený v kurzu: Vytvoření a sdílení dotazu.
Note
Dotaz, který odkazuje na sdílený dotaz jako sdílený dotaz, nelze uložit.
Příklad 1: Použijte pouze sdílený dotaz:
Výsledky tohoto dotazu Resource Graphu jsou stejné jako dotaz uložený ve sdíleném dotazu.
{{/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SharedQueries/providers/Microsoft.ResourceGraph/queries/Count VMs by OS}}
Příklad 2: Zahrňte sdílený dotaz jako součást většího dotazu:
Tento dotaz nejprve použije sdílený dotaz a pak použije limit k dalšímu omezení výsledků.
{{/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SharedQueries/providers/Microsoft.ResourceGraph/queries/Count VMs by OS}}
| where properties_storageProfile_osDisk_osType =~ 'Windows'
Podporované elementy jazyka KQL
Resource Graph podporuje podmnožinu datových typů KQL, skalárních funkcí, skalárních operátorů a agregačních funkcí. Specifické tabulkové operátory jsou podporovány Resource Graphem, z nichž některé mají odlišné chování.
Podporované operátory tabulkové nebo nejvyšší úrovně
Tady je seznam tabulkových operátorů KQL podporovaných službou Resource Graph s konkrétními ukázkami:
| KQL | Ukázkový dotaz Resource Graphu | Notes |
|---|---|---|
| count | Počet trezorů klíčů | |
| distinct | Zobrazení prostředků, které obsahují úložiště | |
| extend | Počet virtuálních počítačů podle typu operačního systému | |
| join | Trezor klíčů s názvem předplatného | Připojte se k podporovaným variantám: innerunique, inner, leftouter a fullouter. Limit tří join nebo union operací (nebo kombinace těchto dvou) v jednom dotazu. Tyto operace se počítají dohromady a jedna z nich může být křížové spojení tabulek. Pokud je veškeré použití mezi Resource join a ResourceContainers veškeré mezi Resource a ResourceContainers, jsou povoleny tři cross-table join . Vlastní strategie připojení, jako je například připojení k vysílání, nejsou povoleny. Pro které tabulky lze použít join, přejděte do tabulek Resource Graphu. |
| limit | Seznam všech veřejných IP adres | Synonymum pro take. Nefunguje to se Skipem. |
| mvexpand | Starší operátor použijte mv-expand místo toho.
Limit řádku maximálně 2 000. Výchozí hodnota je 128. |
|
| mv-expand | Výpis služby Azure Cosmos DB s konkrétními umístěními zápisu |
Limit řádku maximálně 2 000. Výchozí hodnota je 128. Limit 3 mv-expand v jednom dotazu |
| order | Výpis prostředků seřazených podle názvu | Synonymum pro sort |
| parse | Získání virtuálních sítí a podsítí síťových rozhraní | Je optimální přistupovat k vlastnostem přímo, pokud existují místo použití parse. |
| project | Výpis prostředků seřazených podle názvu | |
| project-away | Odebrání sloupců z výsledků | |
| sort | Výpis prostředků seřazených podle názvu | Synonymum pro order |
| summarize | Počet prostředků Azure | Zjednodušená pouze první stránka |
| take | Seznam všech veřejných IP adres | Synonymum pro limit. Nefunguje to se Skipem. |
| top | Zobrazení prvních pěti virtuálních počítačů podle názvu a jejich typu operačního systému | |
| union | Sloučení výsledků ze dvou dotazů do jednoho výsledku | Povolená jedna tabulka: | union [kind= inner|outer] [withsource=ColumnName] Table. Omezení tří union nohou v jednom dotazu Přibližné rozlišení union tabulek nohou není povoleno. Může být použit v jedné tabulce nebo mezi tabulkami Resources a ResourceContainers . |
| where | Zobrazení prostředků, které obsahují úložiště |
V jednom dotazu sady Resource Graph SDK je výchozí limit tří join a tří mv-expand operátorů. Zvýšení těchto limitů pro vašeho tenanta můžete požádat prostřednictvím nápovědy a podpory.
Pro podporu zážitku s portálem Open Query má Azure Resource Graph Explorer vyšší globální limit než Resource Graph SDK.
Note
Na tabulku nemůžete odkazovat vícekrát jako na správnou tabulku, která překračuje limit 1. Pokud to uděláte, zobrazí se chyba s kódem DisallowedMaxNumberOfRemoteTables.
Rozsah dotazu
Rozsah odběrů nebo skupin správy , ze kterých jsou zdroje vráceny dotazem, je výchozí na seznamu odběrů založených na kontextu oprávněného uživatele. Pokud není definována skupina správy nebo seznam odběrů, rozsah dotazu zahrnuje všechny zdroje a zahrnuje delegované zdroje Azure Lighthouse .
Seznam předplatných nebo skupin pro správu, které se mají dotazovat, je možné ručně definovat, aby se změnil rozsah výsledků. Například vlastnost REST API managementGroups přebírá ID skupiny pro správu, které se liší od názvu skupiny pro správu. Po managementGroups zadání jsou zahrnuty prostředky z prvních 10 000 předplatných v zadané hierarchii skupin pro správu nebo v rámci zadané hierarchie skupin pro správu.
managementGroups nelze použít ve stejnou dobu jako subscriptions.
Příklad: Dotazování všech prostředků v hierarchii skupiny pro správu s názvem My Management Group ID myMG.
Identifikátor URI v REST API
POST https://management.azure.com/providers/Microsoft.ResourceGraph/resources?api-version=2021-03-01Tělo žádosti
{ "query": "Resources | summarize count()", "managementGroups": ["myMG"] }
Tento AuthorizationScopeFilter parametr umožňuje vypsat přiřazení azure Policy a přiřazení rolí na základě role (Azure RBAC) v AuthorizationResources tabulce, která jsou zděděna z horních oborů. Parametr AuthorizationScopeFilter přijímá následující hodnoty pro tabulky PolicyResourcesAuthorizationResources :
- AtScopeAndBelow (výchozí, pokud není specifikováno): Vrací přiřazení pro daný rozsah a všechny podrozsahy.
- AtScopeAndAbove: Vrací přiřazení pro daný rozsah a všechny nadřazené rozsahy, ale ne pro podrozsahy.
- AtScopeAboveAndBelow: Vrací přiřazení pro daný rozsah, všechny nadřazené rozsahy a všechny podřízené rozsahy.
- AtScopeExact: Vrací přiřazení pouze pro daný rozsah; Nejsou zahrnuty žádné rodičovské ani dětské mikroskopy.
Note
Pro použití parametru AuthorizationScopeFilter nezapomeňte použít verzi API 2021-06-01-01 nebo novější ve svých požadavcích.
Příklad: Získejte všechna přiřazení politik do skupiny správy myMG a do rozsahů kořenových (rodičovských domén) tenantů.
Identifikátor URI v REST API
POST https://management.azure.com/providers/Microsoft.ResourceGraph/resources?api-version=2021-06-01-previewUkázka textu požadavku
{ "options": { "authorizationScopeFilter": "AtScopeAndAbove" }, "query": "PolicyResources | where type =~ 'Microsoft.Authorization/PolicyAssignments'", "managementGroups": ["myMG"] }
Příklad: Získejte všechna přiřazení politik v rozsahu předplatného mySubscriptionId , skupiny správy a Tenant Root.
Identifikátor URI v REST API
POST https://management.azure.com/providers/Microsoft.ResourceGraph/resources?api-version=2021-06-01-previewUkázka textu požadavku
{ "options": { "authorizationScopeFilter": "AtScopeAndAbove" }, "query": "PolicyResources | where type =~ 'Microsoft.Authorization/PolicyAssignments'", "subscriptions": ["mySubscriptionId"] }
Escape znaky
Některé názvy vlastností, například názvy, které obsahují nebo které obsahují, .$musí být zabalené nebo uchycené v dotazu nebo název vlastnosti je interpretován nesprávně a neposkytuje očekávané výsledky.
Tečka (
.): Zalamujte název['propertyname.withaperiod']vlastnosti pomocí hranatých závorek.Příklad dotazu, který zahrnuje vlastnost odata.type:
where type=~'Microsoft.Insights/alertRules' | project name, properties.condition.['odata.type']Znak dolaru (
$): Řídicí znak v názvu vlastnosti. Použitý řídicí znak závisí na prostředí, na kterém běží Resource Graph.Bash: Použijte backslash (
\) jako postavu pro únik.Příklad dotazu, který unikne vlastnosti $type v Bash:
where type=~'Microsoft.Insights/alertRules' | project name, properties.condition.\$typeCMD: Neunikejte znaku dolarového znaku ().
$PowerShell: Použijte backtick (
`) jako escape znak.Příklad dotazu, který unikne vlastnosti $type v PowerShellu:
where type=~'Microsoft.Insights/alertRules' | project name, properties.condition.`$type
Další kroky
- Azure Resource Graph dotazovací jazyk Starter dotazy a pokročilé dotazy.
- Přečtěte si další informace o tom , jak prozkoumat prostředky Azure.