Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Met de inventaris-API kunt u gestructureerde query's uitvoeren op Azure Resource Graph met behulp van een POST-aanvraag met een queryspecificatie in de aanvraagbody. De API vertaalt uw queryspecificatie in Kusto Query Language (KQL) voor uitvoering op basis van Azure Resource Graph. De inventaris-API voor resources maakt deel uit van de naslagdocumentatie voor de Power Platform-API. Zie de overzichtsinformatie over power platform-inventarisschema's voor een volledige lijst met resourcetypen en doorzoekbare velden.
API-eindpunt
POST {PowerPlatformAPI url}/resourcequery/resources/query?api-version=2024-10-01
aanvraaginhoud
De hoofdtekst van de aanvraag moet een queryspecificatie bevatten met de volgende structuur:
Structuur van queryaanvragen
{
"TableName": "string",
"Clauses": [
{
"$type": "clause_type",
// clause-specific properties
}
],
"Options": {
"Top": 100,
"Skip": 0,
"SkipToken": "string"
}
}
Eigenschappen
| Vastgoed | Typ | Verplicht | Beschrijving |
|---|---|---|---|
TableName |
touw | Yes | Het doeltabel/resourcetype om een query uit te voeren (bijvoorbeeld 'PowerPlatformResources') |
Clauses |
gegevensreeks | Yes | Matrix van querycomponenten waarmee de bewerkingen worden gedefinieerd die moeten worden uitgevoerd |
Options |
Voorwerp | No | Queryopties voor Azure Resource Graph voor paginering en resultaatbeheer |
Queryopties
Het Options object ondersteunt queryparameters van Azure Resource Graph voor paginering en resultaatbeheer. Raadpleeg ResourceQueryRequestOptions de documentatie voor meer informatie.
Ondersteunde queryclausules
De API ondersteunt de componenttypen die in deze sectie zijn gemarkeerd via polymorfe JSON-serialisatie. Elk clausuletype komt overeen met KQL-operators, zoals beschreven in de KQL-verwijzing.
Where-clausule
Hiermee filtert u gegevens op basis van veldvoorwaarden. Wordt vertaald naar de KQLwhere operator.
{
"$type": "where",
"FieldName": "string",
"Operator": "string",
"Values": ["string1", "string2"]
}
Ondersteunde operators: De API ondersteunt alle standaard KQL-vergelijkings- en tekenreeksoperators. Zie de documentatie voor KQL-tekenreeksoperatoren en numerieke operators voor een volledige lijst met beschikbare operators.
Example:
{
"$type": "where",
"FieldName": "type",
"Operator": "in~",
"Values": ["'microsoft.powerapps/canvasapps'", "'microsoft.copilotstudio/agents'"]
}
Vertaalt naar KQL:| where type in~ ('microsoft.powerapps/canvasapps', 'microsoft.copilotstudio/agents')
Projectclausule
Selecteert specifieke velden in de resultaten. Wordt vertaald naar de KQLproject operator.
{
"$type": "project",
"FieldList": ["field1", "field2", "field3"]
}
Example:
{
"$type": "project",
"FieldList": [
"name",
"properties.displayName",
"environmentId = tostring(properties.environmentId)",
"createdDate = properties.createdAt"
]
}
Vertaalt naar KQL:| project name, properties.displayName, environmentId = tostring(properties.environmentId), createdDate = properties.createdAt
Neem clausule
Beperkt het aantal geretourneerde resultaten. Wordt vertaald naar de KQLtake operator.
{
"$type": "take",
"TakeCount": 50
}
Vertaalt naar KQL:| take 50
Order by-clausule
Sorteert resultaten op opgegeven velden. Wordt vertaald naar de KQLsort operator.
{
"$type": "orderby",
"FieldNamesAscDesc": {
"field1": "asc",
"field2": "desc"
}
}
Example:
{
"$type": "orderby",
"FieldNamesAscDesc": {
"tostring(properties.createdAt)": "desc",
"properties.displayName": "asc"
}
}
Vertaalt naar KQL:| sort by tostring(properties.createdAt) desc, properties.displayName asc
Afzonderlijke clausule
Retourneert unieke waarden voor opgegeven velden. Wordt vertaald naar de KQLdistinct operator.
{
"$type": "distinct",
"FieldList": ["field1", "field2"]
}
Vertaalt naar KQL:| distinct field1, field2
Count-clausule
Retourneert het aantal overeenkomende records. Wordt vertaald naar de KQLcount operator.
{
"$type": "count"
}
Vertaalt naar KQL:| count
Samenvatten clausule
Hiermee worden gegevens samengevoegd met behulp van count- of argmax-bewerkingen. Wordt vertaald naar de KQLsummarize operator.
{
"$type": "summarize",
"SummarizeClauseExpression": {
"OperatorName": "count|argmax",
"OperatorFieldName": "string",
"FieldList": ["field1", "field2"]
}
}
Ondersteunde operators:
-
count→count()- Aantal records gegroepeerd op opgegeven velden. -
argmaxarg_max()→ - Records ophalen met maximale waarde in het opgegeven veld.
Voorbeeld van tellen:
{
"$type": "summarize",
"SummarizeClauseExpression": {
"OperatorName": "count",
"OperatorFieldName": "resourceCount",
"FieldList": ["resourceGroup", "type"]
}
}
Vertaalt naar KQL:| summarize resourceCount = count() by resourceGroup, type
ArgMax-voorbeeld:
{
"$type": "summarize",
"SummarizeClauseExpression": {
"OperatorName": "argmax",
"OperatorFieldName": "createdTime",
"FieldList": ["resourceGroup"]
}
}
Vertaalt naar KQL:| summarize arg_max(createdTime, *) by resourceGroup
Clausule uitbreiden
Hiermee worden berekende kolommen toegevoegd aan de resultaten. Wordt vertaald naar de KQLextend operator.
{
"$type": "extend",
"FieldName": "newFieldName",
"Expression": "KQL_EXPRESSION"
}
Example:
{
"$type": "extend",
"FieldName": "environmentId",
"Expression": "tostring(properties.environmentId)"
}
Vertaalt naar KQL:| extend environmentId = tostring(properties.environmentId)https://docs.microsoft.com/en-us/azure/data-explorer/kusto/query/scalarfunctions) voor beschikbare functies.
Join-clause
Wordt samengevoegd met een andere tabel/subquery. Wordt vertaald naar de KQLjoin operator.
{
"$type": "join",
"RightTable": {
"TableName": "string",
"Clauses": []
},
"JoinKind": "string",
"LeftColumnName": "string",
"RightColumnName": "string"
}
Ondersteunde jointypen: De API ondersteunt alle KQL-jointypen. Zie de documentatie van de KQL-joinoperator voor een volledige lijst met beschikbare jointypen en hun gedrag.
Voorbeeld (samenvoegen van Power Platform-resources met omgevingsgegevens):
{
"$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"
}
Vertaalt naar 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
Voorbeelden van volledige query's
Voorbeeld: Eenvoudige Power Platform-resourcequery (standaardpatroon voor Power Platform-beheercentrum)
Haal alle Power Platform-resources op met omgevingsgegevens. Dit is de standaardquery die wordt gebruikt door het Power Platform-beheercentrum.
{
"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"
}
}
]
}
KQL-equivalent:
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
Voorbeeld: Power Platform-resources per type en locatie tellen
{
"TableName": "PowerPlatformResources",
"Clauses": [
{
"$type": "summarize",
"SummarizeClauseExpression": {
"OperatorName": "count",
"OperatorFieldName": "resourceCount",
"FieldList": ["type", "location"]
}
},
{
"$type": "orderby",
"FieldNamesAscDesc": {
"resourceCount": "desc"
}
}
]
}
KQL-equivalent:
PowerPlatformResources
| summarize resourceCount = count() by type, location
| sort by resourceCount desc
Voorbeeld: Eenvoudige query voor canvas-apps
Canvas-apps ophalen met basisfilters en projectie:
{
"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
}
]
}
KQL-equivalent:
PowerPlatformResources
| where type == 'microsoft.powerapps/canvasapps'
| project name, location, properties.displayName, properties.createdAt, properties.environmentId
| take 100
Voorbeeld: Resources filteren op omgeving en datumbereik
{
"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"
}
}
]
}
Vertaalt naar 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
Antwoordindeling
De API retourneert een ResourceQueryResult-object van de Azure Resource Graph SDK. Dit object bevat de queryresultaten en metagegevens over de uitvoering van de query.
Antwoordstructuur:
{
"totalRecords": 1250,
"count": 50,
"resultTruncated": 1,
"skipToken": "string_for_next_page",
"data": [
// Array of result objects based on your query
]
}