Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Med inventerings-API:et kan du köra strukturerade frågor mot Azure Resource Graph med hjälp av en POST-begäran med en frågespecifikation i begärandetexten. API:et översätter din frågespecifikation till Kusto Query Language (KQL) för körning mot Azure Resource Graph. Inventerings-API:et för resurser är en del av referensdokumentationen för Power Platform API. En fullständig lista över resurstyper och frågebara fält finns i Power Platform-inventeringsschemareferens.
API-slutpunkt
POST {PowerPlatformAPI url}/resourcequery/resources/query?api-version=2024-10-01
begäranens innehåll
Begärandetexten måste innehålla en frågespecifikation med följande struktur:
Frågebegärandestruktur
{
"TableName": "string",
"Clauses": [
{
"$type": "clause_type",
// clause-specific properties
}
],
"Options": {
"Top": 100,
"Skip": 0,
"SkipToken": "string"
}
}
Egenskaper
| Fastighet | Typ | Krävs | Description |
|---|---|---|---|
TableName |
snöre | Yes | Måltabellen/resurstypen som ska frågas (dvs. "PowerPlatformResources") |
Clauses |
matris | Yes | Matris med frågesatser som definierar de åtgärder som ska utföras |
Options |
objekt | Nej | Azure Resource Graph frågealternativ för sidnumrering och resultatkontroll |
Frågealternativ
objektet Options stöder Azure Resource Graph frågeparametrar för sidnumrering och resultatkontroll. Mer ResourceQueryRequestOptions information finns i dokumentationen .
Stödda frågeklasuler
API:et stöder de satstyper som markeras i det här avsnittet via polymorf JSON-serialisering. Varje satstyp motsvarar KQL-operatorer enligt beskrivningen i KQL-referensen:
WHERE-villkor
Filtrerar data baserat på fältvillkor. Översätts till KQL-operatornwhere.
{
"$type": "where",
"FieldName": "string",
"Operator": "string",
"Values": ["string1", "string2"]
}
Operatorer som stöds: API:et stöder alla KQL-standardjämförelse- och strängoperatorer. En fullständig lista över tillgängliga operatorer finns i dokumentationen om KQL-strängoperatorer och numeriska operatorer .
Example:
{
"$type": "where",
"FieldName": "type",
"Operator": "in~",
"Values": ["'microsoft.powerapps/canvasapps'", "'microsoft.copilotstudio/agents'"]
}
Översätts till KQL:| where type in~ ('microsoft.powerapps/canvasapps', 'microsoft.copilotstudio/agents')
Projektklausul
Väljer specifika fält i resultatet. Översätts till KQL-operatornproject.
{
"$type": "project",
"FieldList": ["field1", "field2", "field3"]
}
Example:
{
"$type": "project",
"FieldList": [
"name",
"properties.displayName",
"environmentId = tostring(properties.environmentId)",
"createdDate = properties.createdAt"
]
}
Översätts till KQL:| project name, properties.displayName, environmentId = tostring(properties.environmentId), createdDate = properties.createdAt
Take-klausul
Begränsar antalet returnerade resultat. Översätts till KQL-operatorntake.
{
"$type": "take",
"TakeCount": 50
}
Översätts till KQL:| take 50
Order by-klausul
Sorterar resultat efter angivna fält. Översätts till KQL-operatornsort.
{
"$type": "orderby",
"FieldNamesAscDesc": {
"field1": "asc",
"field2": "desc"
}
}
Example:
{
"$type": "orderby",
"FieldNamesAscDesc": {
"tostring(properties.createdAt)": "desc",
"properties.displayName": "asc"
}
}
Översätts till KQL:| sort by tostring(properties.createdAt) desc, properties.displayName asc
Distinkt klausul
Returnerar unika värden för angivna fält. Översätts till KQL-operatorndistinct.
{
"$type": "distinct",
"FieldList": ["field1", "field2"]
}
Översätts till KQL:| distinct field1, field2
Räkningsklausul
Returnerar antalet matchande poster. Översätts till KQL-operatorncount.
{
"$type": "count"
}
Översätts till KQL:| count
Sammanfatta klausul
Aggregerar data med hjälp av antal eller argmax-åtgärder. Översätts till KQL-operatornsummarize.
{
"$type": "summarize",
"SummarizeClauseExpression": {
"OperatorName": "count|argmax",
"OperatorFieldName": "string",
"FieldList": ["field1", "field2"]
}
}
Operatorer som stöds:
-
countcount()→ Räkna de poster som är grupperade efter angivna fält. -
argmax→arg_max()– Hämta poster med maximalt värde i det angivna fältet.
Exempel på antal:
{
"$type": "summarize",
"SummarizeClauseExpression": {
"OperatorName": "count",
"OperatorFieldName": "resourceCount",
"FieldList": ["resourceGroup", "type"]
}
}
Översätts till KQL:| summarize resourceCount = count() by resourceGroup, type
ArgMax-exempel:
{
"$type": "summarize",
"SummarizeClauseExpression": {
"OperatorName": "argmax",
"OperatorFieldName": "createdTime",
"FieldList": ["resourceGroup"]
}
}
Översätts till KQL:| summarize arg_max(createdTime, *) by resourceGroup
Utökasats
Lägger till beräknade kolumner i resultatet. Översätts till KQL-operatornextend.
{
"$type": "extend",
"FieldName": "newFieldName",
"Expression": "KQL_EXPRESSION"
}
Example:
{
"$type": "extend",
"FieldName": "environmentId",
"Expression": "tostring(properties.environmentId)"
}
Översätts till KQL:| extend environmentId = tostring(properties.environmentId)https://docs.microsoft.com/en-us/azure/data-explorer/kusto/query/scalarfunctions) för tillgängliga funktioner.
Kopplingssats
Ansluter till en annan tabell/underfråga. Översätts till KQL-operatornjoin.
{
"$type": "join",
"RightTable": {
"TableName": "string",
"Clauses": []
},
"JoinKind": "string",
"LeftColumnName": "string",
"RightColumnName": "string"
}
Kopplingstyper som stöds: API:et stöder alla KQL-kopplingstyper. En fullständig lista över tillgängliga kopplingstyper och deras beteende finns i dokumentationen om KQL-kopplingsoperatorn.
Exempel (koppla samman Power Platform-resurser med miljöinformation):
{
"$type": "join",
"JoinKind": "leftouter",
"RightTable": {
"TableName": "PowerPlatformResources",
"Clauses": [
{
"$type": "where",
"FieldName": "type",
"Operator": "==",
"Values": ["'microsoft.powerplatform/environments'"]
},
{
"$type": "project",
"FieldList": [
"environmentId = name",
"environmentName = properties.displayName",
"environmentRegion = location",
"environmentType = properties.environmentType",
"isManagedEnvironment = properties.isManaged"
]
}
]
},
"LeftColumnName": "environmentId",
"RightColumnName": "environmentId"
}
Översätts till KQL:| join kind=leftouter (PowerPlatformResources | where type == 'microsoft.powerplatform/environments' | project environmentId = name, environmentName = properties.displayName, environmentRegion = location, environmentType = properties.environmentType, isManagedEnvironment = properties.isManaged) on $left.environmentId == $right.environmentId
Slutför frågeexempel
Exempel: Grundläggande Power Platform-resursfråga (standardmönster för Power Platform-administrationscenter)
Hämta alla Power Platform-resurser med miljöinformation – det här är standardfrågan som används av administrationscentret för Power Platform.
{
"Options": {
"Top": 1000,
"Skip": 0,
"SkipToken": ""
},
"TableName": "PowerPlatformResources",
"Clauses": [
{
"$type": "extend",
"FieldName": "joinKey",
"Expression": "tolower(tostring(properties.environmentId))"
},
{
"$type": "join",
"JoinKind": "leftouter",
"RightTable": {
"TableName": "PowerPlatformResources",
"Clauses": [
{
"$type": "where",
"FieldName": "type",
"Operator": "==",
"Values": ["'microsoft.powerplatform/environments'"]
},
{
"$type": "project",
"FieldList": [
"joinKey = tolower(name)",
"environmentName = properties.displayName",
"environmentRegion = location",
"environmentType = properties.environmentType",
"isManagedEnvironment = properties.isManaged"
]
}
]
},
"LeftColumnName": "joinKey",
"RightColumnName": "joinKey"
},
{
"$type": "where",
"FieldName": "type",
"Operator": "in~",
"Values": [
"'microsoft.powerapps/canvasapps'",
"'microsoft.powerapps/modeldrivenapps'",
"'microsoft.powerautomate/cloudflows'",
"'microsoft.copilotstudio/agents'",
"'microsoft.powerautomate/agentflows'",
"'microsoft.powerapps/codeapps'"
]
},
{
"$type": "orderby",
"FieldNamesAscDesc": {
"tostring(properties.createdAt)": "desc"
}
}
]
}
Motsvarande KQL:
PowerPlatformResources
| extend joinKey = tolower(tostring(properties.environmentId))
| join kind=leftouter (
PowerPlatformResources
| where type == 'microsoft.powerplatform/environments'
| project joinKey = tolower(name), environmentName = properties.displayName, environmentRegion = location, environmentType = properties.environmentType, isManagedEnvironment = properties.isManaged
) on $left.joinKey == $right.joinKey
| where type in~ ('microsoft.powerapps/canvasapps', 'microsoft.powerapps/modeldrivenapps', 'microsoft.powerautomate/cloudflows', 'microsoft.copilotstudio/agents', 'microsoft.powerautomate/agentflows', 'microsoft.powerapps/codeapps')
| order by tostring(properties.createdAt) desc
Exempel: Räkna Power Platform-resurser efter typ och plats
{
"TableName": "PowerPlatformResources",
"Clauses": [
{
"$type": "summarize",
"SummarizeClauseExpression": {
"OperatorName": "count",
"OperatorFieldName": "resourceCount",
"FieldList": ["type", "location"]
}
},
{
"$type": "orderby",
"FieldNamesAscDesc": {
"resourceCount": "desc"
}
}
]
}
Motsvarande KQL:
PowerPlatformResources
| summarize resourceCount = count() by type, location
| sort by resourceCount desc
Exempel: Enkla canvasapp-frågor
Hämta canvas-appar med grundläggande filtrering och framställning.
{
"TableName": "PowerPlatformResources",
"Clauses": [
{
"$type": "where",
"FieldName": "type",
"Operator": "==",
"Values": ["'microsoft.powerapps/canvasapps'"]
},
{
"$type": "project",
"FieldList": [
"name",
"location",
"properties.displayName",
"properties.createdAt",
"properties.environmentId"
]
},
{
"$type": "take",
"TakeCount": 100
}
]
}
Motsvarande KQL:
PowerPlatformResources
| where type == 'microsoft.powerapps/canvasapps'
| project name, location, properties.displayName, properties.createdAt, properties.environmentId
| take 100
Exempel: Filtrera resurser efter miljö och datumintervall
{
"TableName": "PowerPlatformResources",
"Clauses": [
{
"$type": "where",
"FieldName": "type",
"Operator": "==",
"Values": ["'microsoft.powerapps/canvasapps'"]
},
{
"$type": "where",
"FieldName": "properties.environmentId",
"Operator": "==",
"Values": ["your-environment-id"]
},
{
"$type": "extend",
"FieldName": "createdDate",
"Expression": "todatetime(properties.createdAt)"
},
{
"$type": "where",
"FieldName": "createdDate",
"Operator": ">=",
"Values": ["datetime(2024-01-01)"]
},
{
"$type": "project",
"FieldList": [
"name",
"properties.displayName",
"properties.createdAt",
"properties.createdBy",
"properties.ownerId"
]
},
{
"$type": "orderby",
"FieldNamesAscDesc": {
"createdDate": "desc"
}
}
]
}
Översätts till KQL:
PowerPlatformResources
| where type == 'microsoft.powerapps/canvasapps'
| where properties.environmentId == "your-environment-id"
| extend createdDate = todatetime(properties.createdAt)
| where createdDate >= datetime(2024-01-01)
| project name, properties.displayName, properties.createdAt, properties.createdBy, properties.ownerId
| sort by createdDate desc
Svarsformat
API:et returnerar ett ResourceQueryResult-objekt från Azure Resource Graph SDK. Det här objektet innehåller om frågeresultat och metadata om utförandet av frågan.
Svarsstruktur:
{
"totalRecords": 1250,
"count": 50,
"resultTruncated": 1,
"skipToken": "string_for_next_page",
"data": [
// Array of result objects based on your query
]
}