Merk
Tilgang til denne siden krever autorisasjon. Du kan prøve å logge på eller endre kataloger.
Tilgang til denne siden krever autorisasjon. Du kan prøve å endre kataloger.
Med lager-API-en kan du kjøre strukturerte spørringer mot Azure Resource Graph ved hjelp av en POST-forespørsel med en spørringsspesifikasjon i forespørselsteksten. API-en oversetter spørringsspesifikasjonen til Kusto Query Language (KQL) for kjøring mot Azure Resource Graph. Lager-API-en for ressurser er en del av referansedokumentasjonen for Power Platform API. Hvis du vil ha en fullstendig liste over ressurstyper og spørringsfelt, kan du se Referanse for Power Platform-lagerskjema.
Godkjenning
Lager-API-en støtter for øyeblikket bare delegert brukergodkjenning. Få et bærertoken for en pålogget bruker før du kaller API-en.
Viktig
API-en støtter ikke app-bare godkjenning gjennom en tjenestekontohaver eller administrert identitet. Forespørsler som bruker disse identitetene, returnerer HTTP 403 Forbudt.
Hvis du vil ha instruksjoner for konfigurasjon av token, kan du se Godkjenning og bruke en delegert brukerflyt. Flyten for tjenesteprinsipal som er beskrevet i den artikkelen, gjelder ikke for Inventory-API-et.
Bruk Power Platform CLI (forhåndsversjon)
Du kan kjøre lagerressursspørringer fra en terminal ved hjelp av forhåndsvisningskommandoen pac resource-query query-resources . Kommandoen godtar meldingsteksten for JSON-spørringen direkte eller fra en fil.
API-endepunkt
POST {PowerPlatformAPI url}/resourcequery/resources/query?api-version=2024-10-01
Forespørselstekst
Forespørselsteksten må inneholde en spørringsspesifikasjon med følgende struktur:
Spørringsforespørselsstruktur
{
"TableName": "string",
"Clauses": [
{
"$type": "clause_type",
// clause-specific properties
}
],
"Options": {
"Top": 100,
"Skip": 0,
"SkipToken": "string"
}
}
Egenskaper
| Egenskap | Type | Obligatorisk | Beskrivelse |
|---|---|---|---|
TableName |
streng | Ja | Måltabellen/ressurstypen som skal spørres (dvs. PowerPlatformResources») |
Clauses |
matrise | Ja | Matrise med spørringssetninger som definerer operasjonene som skal utføres |
Options |
objekt | Nei | Azure Resource Graph spørringsalternativer for paginering og resultatkontroll |
Spørringsalternativer
Objektet Options støtter Azure Resource Graph-spørringsparametere for paginering og resultatkontroll. Se ResourceQueryRequestOptions dokumentasjon for å finne ut mer.
Støttede spørringssetninger
API-en støtter setningstypene som er uthevet i denne delen gjennom polymorf JSON-serialisering. Hver setningstype tilsvarer KQL-operatorer som dokumentert i KQL-referansen:
Where-setningsdel
Filtrerer data basert på feltbetingelser. Oversettes til KQL-operatorenwhere.
{
"$type": "where",
"FieldName": "string",
"Operator": "string",
"Values": ["string1", "string2"]
}
Støttede operatorer: API-en støtter alle standard KQL-sammenlignings- og strengoperatorer. Hvis du vil ha en fullstendig liste over tilgjengelige operatorer, kan du se dokumentasjonen for KQL-strengoperatorer og numeriske operatorer .
Eksempel:
{
"$type": "where",
"FieldName": "type",
"Operator": "in~",
"Values": ["'microsoft.powerapps/canvasapps'", "'microsoft.copilotstudio/agents'"]
}
Oversettes til KQL:| where type in~ ('microsoft.powerapps/canvasapps', 'microsoft.copilotstudio/agents')
Prosjektsetning
Velger bestemte felt fra resultatene. Oversettes til KQL-operatorenproject.
{
"$type": "project",
"FieldList": ["field1", "field2", "field3"]
}
Eksempel:
{
"$type": "project",
"FieldList": [
"name",
"properties.displayName",
"environmentId = tostring(properties.environmentId)",
"createdDate = properties.createdAt"
]
}
Oversettes til KQL:| project name, properties.displayName, environmentId = tostring(properties.environmentId), createdDate = properties.createdAt
Take-setningsdel
Begrenser antall returnerte resultater. Oversettes til KQL-operatorentake.
{
"$type": "take",
"TakeCount": 50
}
Oversettes til KQL:| take 50
Rekkefølge etter setningsdel
Sorterer resultater etter angitte felt. Oversettes til KQL-operatorensort.
{
"$type": "orderby",
"FieldNamesAscDesc": {
"field1": "asc",
"field2": "desc"
}
}
Eksempel:
{
"$type": "orderby",
"FieldNamesAscDesc": {
"tostring(properties.createdAt)": "desc",
"properties.displayName": "asc"
}
}
Oversettes til KQL:| sort by tostring(properties.createdAt) desc, properties.displayName asc
Distinkt setning
Returnerer unike verdier for definerte felt. Oversettes til KQL-operatorendistinct.
{
"$type": "distinct",
"FieldList": ["field1", "field2"]
}
Oversettes til KQL:| distinct field1, field2
Count-setningsdel
Returnerer antall samsvarende poster. Oversettes til KQL-operatorencount.
{
"$type": "count"
}
Oversettes til KQL:| count
Oppsummer setning
Aggregerer data ved hjelp av antall- eller argmax-operasjoner. Oversettes til KQL-operatorensummarize.
{
"$type": "summarize",
"SummarizeClauseExpression": {
"OperatorName": "count|argmax",
"OperatorFieldName": "string",
"FieldList": ["field1", "field2"]
}
}
Støttede operatorer:
-
count→count()- Tell opp poster gruppert etter angitte felt. -
argmax→arg_max()- Hent oppføringer med maksimumsverdi i det angitte feltet.
Eksempel på antall:
{
"$type": "summarize",
"SummarizeClauseExpression": {
"OperatorName": "count",
"OperatorFieldName": "resourceCount",
"FieldList": ["resourceGroup", "type"]
}
}
Oversettes til KQL:| summarize resourceCount = count() by resourceGroup, type
Eksempel på ArgMax:
{
"$type": "summarize",
"SummarizeClauseExpression": {
"OperatorName": "argmax",
"OperatorFieldName": "createdTime",
"FieldList": ["resourceGroup"]
}
}
Oversettes til KQL:| summarize arg_max(createdTime, *) by resourceGroup
Utvid klausul
Legger til beregnede kolonner i resultatene. Oversettes til KQL-operatorenextend.
{
"$type": "extend",
"FieldName": "newFieldName",
"Expression": "KQL_EXPRESSION"
}
Eksempel:
{
"$type": "extend",
"FieldName": "environmentId",
"Expression": "tostring(properties.environmentId)"
}
Oversettes til KQL:| extend environmentId = tostring(properties.environmentId)https://docs.microsoft.com/en-us/azure/data-explorer/kusto/query/scalarfunctions) for tilgjengelige funksjoner.
Sammenføyningssetning
Sammenføyninger med en annen tabell/delspørring. Oversettes til KQL-operatorenjoin.
{
"$type": "join",
"RightTable": {
"TableName": "string",
"Clauses": []
},
"JoinKind": "string",
"LeftColumnName": "string",
"RightColumnName": "string"
}
Støttede sammenføyningstyper: API-en støtter alle KQL-sammenføyningstyper. Hvis du vil ha en fullstendig liste over tilgjengelige sammenføyningstyper og virkemåte, kan du se dokumentasjonen for KQL-sammenføyningsoperatoren.
Eksempel (sammenføyning av Power Platform-ressurser med miljøinformasjon):
{
"$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"
}
Oversettes til 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
Fullføre spørringseksempler
Eksempel: Grunnleggende ressursspørring for Power Platform (standardmønster for administrasjonssenteret for Power Platform)
Få alle Power Platform-ressurser med miljøinformasjon – dette er standardspørringen som brukes av administrasjonssenteret for 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'",
"'microsoft.powerapps/apps'"
]
},
{
"$type": "orderby",
"FieldNamesAscDesc": {
"tostring(properties.createdAt)": "desc"
}
}
]
}
Tilsvarende 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', 'microsoft.powerapps/apps')
| order by tostring(properties.createdAt) desc
Eksempel: Telle Power Platform-ressurser etter type og plassering
{
"TableName": "PowerPlatformResources",
"Clauses": [
{
"$type": "summarize",
"SummarizeClauseExpression": {
"OperatorName": "count",
"OperatorFieldName": "resourceCount",
"FieldList": ["type", "location"]
}
},
{
"$type": "orderby",
"FieldNamesAscDesc": {
"resourceCount": "desc"
}
}
]
}
Tilsvarende KQL:
PowerPlatformResources
| summarize resourceCount = count() by type, location
| sort by resourceCount desc
Eksempel: Spørring for enkle lerretsapper
Få lerretsapper med grunnleggende filtrering og projeksjon:
{
"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
}
]
}
Tilsvarende KQL:
PowerPlatformResources
| where type == 'microsoft.powerapps/canvasapps'
| project name, location, properties.displayName, properties.createdAt, properties.environmentId
| take 100
Eksempel: Filtrere ressurser etter miljø og datointervall
{
"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"
}
}
]
}
Oversettes til 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
Svarformat
API-en returnerer et ResourceQueryResult objekt fra Azure Resource Graph SDK. Dette objektet inneholder spørringsresultatene og metadataene om kjøringen av spørringen.
Responsstruktur:
{
"totalRecords": 1250,
"count": 50,
"resultTruncated": 1,
"skipToken": "string_for_next_page",
"data": [
// Array of result objects based on your query
]
}