Σημείωμα
Η πρόσβαση σε αυτήν τη σελίδα απαιτεί εξουσιοδότηση. Μπορείτε να δοκιμάσετε να εισέλθετε ή να αλλάξετε καταλόγους.
Η πρόσβαση σε αυτήν τη σελίδα απαιτεί εξουσιοδότηση. Μπορείτε να δοκιμάσετε να αλλάξετε καταλόγους.
Το API απογραφής σάς επιτρέπει να εκτελείτε δομημένα ερωτήματα σε σχέση με Azure Resource Graph χρησιμοποιώντας μια αίτηση POST με μια προδιαγραφή ερωτήματος στο σώμα της αίτησης. Το API μεταφράζει την προδιαγραφή ερωτήματος σε Kusto Query Language (KQL) για εκτέλεση σε σχέση με Azure Resource Graph. Το API απογραφής για πόρους αποτελεί μέρος της τεκμηρίωσης αναφοράς του API Power Platform. Για μια πλήρη λίστα των τύπων πόρων και των πεδίων με δυνατότητα ερωτημάτων, ανατρέξτε στο θέμα Αναφορά σχήματος αποθέματος Power Platform.
Τελικό σημείο API
POST {PowerPlatformAPI url}/resourcequery/resources/query?api-version=2024-10-01
Σώμα αίτησης
Το σώμα αίτησης πρέπει να περιέχει μια προδιαγραφή ερωτήματος με την ακόλουθη δομή:
Δομή αίτησης ερωτήματος
{
"TableName": "string",
"Clauses": [
{
"$type": "clause_type",
// clause-specific properties
}
],
"Options": {
"Top": 100,
"Skip": 0,
"SkipToken": "string"
}
}
Ιδιότητες
| Property | Τύπος | Υποχρεωτικό | Περιγραφή |
|---|---|---|---|
TableName |
συμβολοσειρά | Ναι | Ο πίνακας προορισμού/τύπος πόρου προς ερώτημα (δηλ. "PowerPlatformResources") |
Clauses |
πίνακας | Ναι | Πίνακας ρητρών ερωτημάτων που ορίζουν τις λειτουργίες που θα εκτελεστούν |
Options |
αντικείμενο | Αρ. | Επιλογές ερωτημάτων του Azure Resource Graph για σελιδοποίηση και έλεγχο αποτελεσμάτων |
Επιλογές ερωτήματος
Το Options αντικείμενο υποστηρίζει παραμέτρους ερωτήματος Azure Resource Graph για σελιδοποίηση και στοιχείο ελέγχου αποτελεσμάτων. Ανατρέξτε στην ResourceQueryRequestOptions τεκμηρίωση για να μάθετε περισσότερα.
Υποστηριζόμενοι όροι ερωτημάτων
Το API υποστηρίζει τους τύπους ρητρών που επισημαίνονται σε αυτή την ενότητα μέσω της πολυμορφικής σειριοποίησης JSON. Κάθε τύπος όρου αντιστοιχεί σε τελεστές KQL, όπως τεκμηριώνεται στην αναφορά KQL:
Όπου ο όρος
Φιλτράρει δεδομένα με βάση τις συνθήκες πεδίου. Μεταφράζεται στον τελεστή KQLwhere.
{
"$type": "where",
"FieldName": "string",
"Operator": "string",
"Values": ["string1", "string2"]
}
Υποστηριζόμενοι τελεστές: Το API υποστηρίζει όλους τους τυπικούς τελεστές σύγκρισης και συμβολοσειράς KQL. Για μια πλήρη λίστα των διαθέσιμων τελεστών, ανατρέξτε στην τεκμηρίωση για τους τελεστές συμβολοσειρών KQL και τους αριθμητικούς τελεστές .
Παράδειγμα:
{
"$type": "where",
"FieldName": "type",
"Operator": "in~",
"Values": ["'microsoft.powerapps/canvasapps'", "'microsoft.copilotstudio/agents'"]
}
Μεταφράζεται σε KQL:| where type in~ ('microsoft.powerapps/canvasapps', 'microsoft.copilotstudio/agents')
Όρος έργου
Επιλέγει συγκεκριμένα πεδία από τα αποτελέσματα. Μεταφράζεται στον τελεστή KQLproject.
{
"$type": "project",
"FieldList": ["field1", "field2", "field3"]
}
Παράδειγμα:
{
"$type": "project",
"FieldList": [
"name",
"properties.displayName",
"environmentId = tostring(properties.environmentId)",
"createdDate = properties.createdAt"
]
}
Μεταφράζεται σε KQL:| project name, properties.displayName, environmentId = tostring(properties.environmentId), createdDate = properties.createdAt
Λήψη όρου
Περιορίζει τον αριθμό των αποτελεσμάτων που επιστρέφονται. Μεταφράζεται στον τελεστή KQLtake.
{
"$type": "take",
"TakeCount": 50
}
Μεταφράζεται σε KQL:| take 50
Σειρά κατά όρο
Ταξινομεί τα αποτελέσματα κατά καθορισμένα πεδία. Μεταφράζεται στον τελεστή KQLsort.
{
"$type": "orderby",
"FieldNamesAscDesc": {
"field1": "asc",
"field2": "desc"
}
}
Παράδειγμα:
{
"$type": "orderby",
"FieldNamesAscDesc": {
"tostring(properties.createdAt)": "desc",
"properties.displayName": "asc"
}
}
Μεταφράζεται σε KQL:| sort by tostring(properties.createdAt) desc, properties.displayName asc
Διακριτός όρος
Επιστρέφει μοναδικές τιμές για καθορισμένα πεδία. Μεταφράζεται στον τελεστή KQLdistinct.
{
"$type": "distinct",
"FieldList": ["field1", "field2"]
}
Μεταφράζεται σε KQL:| distinct field1, field2
Όρος καταμέτρησης
Επιστρέφει το πλήθος των εγγραφών που αντιστοιχούν. Μεταφράζεται στον τελεστή KQLcount.
{
"$type": "count"
}
Μεταφράζεται σε KQL:| count
Όρος σύνοψης
Συγκεντρώνει δεδομένα χρησιμοποιώντας λειτουργίες count ή argmax. Μεταφράζεται στον τελεστή KQLsummarize.
{
"$type": "summarize",
"SummarizeClauseExpression": {
"OperatorName": "count|argmax",
"OperatorFieldName": "string",
"FieldList": ["field1", "field2"]
}
}
Υποστηριζόμενοι τελεστές:
-
countcount()→ - Πλήθος εγγραφών ομαδοποιημένων κατά καθορισμένα πεδία. -
argmaxarg_max()→ - Λήψη εγγραφών με μέγιστη τιμή στο καθορισμένο πεδίο.
Παράδειγμα καταμέτρησης:
{
"$type": "summarize",
"SummarizeClauseExpression": {
"OperatorName": "count",
"OperatorFieldName": "resourceCount",
"FieldList": ["resourceGroup", "type"]
}
}
Μεταφράζεται σε KQL:| summarize resourceCount = count() by resourceGroup, type
Παράδειγμα ArgMax:
{
"$type": "summarize",
"SummarizeClauseExpression": {
"OperatorName": "argmax",
"OperatorFieldName": "createdTime",
"FieldList": ["resourceGroup"]
}
}
Μεταφράζεται σε KQL:| summarize arg_max(createdTime, *) by resourceGroup
Επέκταση όρου
Προσθέτει υπολογιζόμενες στήλες στα αποτελέσματα. Μεταφράζεται στον τελεστή KQLextend.
{
"$type": "extend",
"FieldName": "newFieldName",
"Expression": "KQL_EXPRESSION"
}
Παράδειγμα:
{
"$type": "extend",
"FieldName": "environmentId",
"Expression": "tostring(properties.environmentId)"
}
Μεταφράζεται σε KQL:| extend environmentId = tostring(properties.environmentId)https://docs.microsoft.com/en-us/azure/data-explorer/kusto/query/scalarfunctions) για τις διαθέσιμες συναρτήσεις.
Όρος σύνδεσης
Ενώνει με άλλον πίνακα/δευτερεύον ερώτημα. Μεταφράζεται στον τελεστή KQLjoin.
{
"$type": "join",
"RightTable": {
"TableName": "string",
"Clauses": []
},
"JoinKind": "string",
"LeftColumnName": "string",
"RightColumnName": "string"
}
Υποστηριζόμενα είδη συνδέσμου: Το API υποστηρίζει όλα τα είδη ένωσης KQL. Για μια πλήρη λίστα των διαθέσιμων τύπων ένωσης και της συμπεριφοράς τους, ανατρέξτε στην τεκμηρίωση τελεστή σύνδεσης KQL.
Παράδειγμα (σύνδεση πόρων του Power Platform με πληροφορίες περιβάλλοντος):
{
"$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"
}
Μεταφράζεται σε 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
Ολοκλήρωση παραδειγμάτων ερωτημάτων
Παράδειγμα: Βασικό ερώτημα πόρου Power Platform (προεπιλεγμένο μοτίβο κέντρου διαχείρισης Power Platform)
Λήψη όλων των πόρων του Power Platform με πληροφορίες περιβάλλοντος - αυτό είναι το προεπιλεγμένο ερώτημα που χρησιμοποιείται από το κέντρο διαχείρισης του 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"
}
}
]
}
Ισοδύναμο 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
Παράδειγμα: Μέτρηση πόρων του Power Platform κατά τύπο και τοποθεσία
{
"TableName": "PowerPlatformResources",
"Clauses": [
{
"$type": "summarize",
"SummarizeClauseExpression": {
"OperatorName": "count",
"OperatorFieldName": "resourceCount",
"FieldList": ["type", "location"]
}
},
{
"$type": "orderby",
"FieldNamesAscDesc": {
"resourceCount": "desc"
}
}
]
}
Ισοδύναμο KQL:
PowerPlatformResources
| summarize resourceCount = count() by type, location
| sort by resourceCount desc
Παράδειγμα: Απλό ερώτημα εφαρμογών καμβά
Αποκτήστε εφαρμογές καμβά με βασικό φιλτράρισμα και προβολή.
{
"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:
PowerPlatformResources
| where type == 'microsoft.powerapps/canvasapps'
| project name, location, properties.displayName, properties.createdAt, properties.environmentId
| take 100
Παράδειγμα: Φιλτράρισμα πόρων κατά περιβάλλον και εύρος ημερομηνιών
{
"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"
}
}
]
}
Μεταφράζεται σε 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
Μορφή απάντησης
Το API επιστρέφει ένα αντικείμενο ResourceQueryResult από το Azure Resource Graph SDK. Αυτό το αντικείμενο περιέχει τα αποτελέσματα ερωτήματος και τα μετα-δεδομένα σχετικά με την εκτέλεση του ερωτήματος.
Δομή απόκρισης:
{
"totalRecords": 1250,
"count": 50,
"resultTruncated": 1,
"skipToken": "string_for_next_page",
"data": [
// Array of result objects based on your query
]
}