Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
API inventaris memungkinkan Anda menjalankan kueri terstruktur terhadap Azure Resource Graph menggunakan permintaan POST dengan spesifikasi kueri di isi permintaan. API menerjemahkan spesifikasi kueri Anda ke dalam Kusto Query Language (KQL) untuk eksekusi terhadap Azure Resource Graph. API inventori untuk Sumber Daya adalah bagian dari dokumentasi referensi API Power Platform. Untuk daftar lengkap jenis sumber daya dan bidang yang dapat dikueri, lihat Referensi skema inventori Power Platform.
Titik akhir API
POST {PowerPlatformAPI url}/resourcequery/resources/query?api-version=2024-10-01
Badan permintaan
Isi permintaan harus berisi spesifikasi kueri dengan struktur berikut:
Struktur permintaan kueri
{
"TableName": "string",
"Clauses": [
{
"$type": "clause_type",
// clause-specific properties
}
],
"Options": {
"Top": 100,
"Skip": 0,
"SkipToken": "string"
}
}
Karakteristik
| Harta benda | Tipe | Diperlukan | Description |
|---|---|---|---|
TableName |
string | Yes | Tabel target/jenis sumber daya untuk dikueri (yaitu, "PowerPlatformResources") |
Clauses |
array | Yes | Sekumpulan klausa kueri yang menentukan operasi yang akan dilakukan |
Options |
objek | Tidak. | Azure Resource Graph opsi kueri untuk paginasi dan kontrol hasil |
Opsi kueri
Objek Options mendukung parameter kueri Azure Resource Graph untuk penomoran halaman dan kontrol hasil. Lihat ResourceQueryRequestOptions dokumentasi untuk mempelajari selengkapnya.
Klausa kueri yang didukung
API mendukung jenis klausul yang disorot di bagian ini melalui serialisasi JSON polimorfik. Setiap jenis klausul sesuai dengan operator KQL seperti yang didokumenkan dalam referensi KQL:
Klausa di mana
Memfilter data berdasarkan kondisi bidang. Diterjemahkan ke operator KQLwhere.
{
"$type": "where",
"FieldName": "string",
"Operator": "string",
"Values": ["string1", "string2"]
}
Operator yang didukung: API mendukung semua perbandingan KQL standar dan operator string. Untuk daftar lengkap operator yang tersedia, lihat dokumentasi operator string KQL dan operator numerik.
Example:
{
"$type": "where",
"FieldName": "type",
"Operator": "in~",
"Values": ["'microsoft.powerapps/canvasapps'", "'microsoft.copilotstudio/agents'"]
}
Diterjemahkan ke KQL:| where type in~ ('microsoft.powerapps/canvasapps', 'microsoft.copilotstudio/agents')
Klausa proyek
Memilih bidang tertentu dari hasil. Diterjemahkan ke operator KQLproject.
{
"$type": "project",
"FieldList": ["field1", "field2", "field3"]
}
Example:
{
"$type": "project",
"FieldList": [
"name",
"properties.displayName",
"environmentId = tostring(properties.environmentId)",
"createdDate = properties.createdAt"
]
}
Diterjemahkan ke KQL:| project name, properties.displayName, environmentId = tostring(properties.environmentId), createdDate = properties.createdAt
Ambil klausa
Membatasi jumlah hasil yang dikembalikan. Diterjemahkan ke operator KQLtake.
{
"$type": "take",
"TakeCount": 50
}
Diterjemahkan ke KQL:| take 50
Urutan berdasarkan klausa
Mengurutkan hasil menurut bidang tertentu. Diterjemahkan ke operator KQLsort.
{
"$type": "orderby",
"FieldNamesAscDesc": {
"field1": "asc",
"field2": "desc"
}
}
Example:
{
"$type": "orderby",
"FieldNamesAscDesc": {
"tostring(properties.createdAt)": "desc",
"properties.displayName": "asc"
}
}
Diterjemahkan ke KQL:| sort by tostring(properties.createdAt) desc, properties.displayName asc
Klausa yang berbeda
Mengembalikan nilai unik untuk bidang tertentu. Diterjemahkan ke operator KQLdistinct.
{
"$type": "distinct",
"FieldList": ["field1", "field2"]
}
Diterjemahkan ke KQL:| distinct field1, field2
Klausa hitung
Mengembalikan jumlah rekaman yang cocok. Diterjemahkan ke operator KQLcount.
{
"$type": "count"
}
Diterjemahkan ke KQL:| count
Meringkas klausa
Mengagregasi data menggunakan operasi hitungan atau argmax. Diterjemahkan ke operator KQLsummarize.
{
"$type": "summarize",
"SummarizeClauseExpression": {
"OperatorName": "count|argmax",
"OperatorFieldName": "string",
"FieldList": ["field1", "field2"]
}
}
Operator yang didukung:
-
countcount()→ - Hitung rekaman yang dikelompokkan menurut bidang tertentu. -
argmaxarg_max()→ - Dapatkan rekaman dengan nilai maksimum di bidang yang ditentukan.
Contoh hitung:
{
"$type": "summarize",
"SummarizeClauseExpression": {
"OperatorName": "count",
"OperatorFieldName": "resourceCount",
"FieldList": ["resourceGroup", "type"]
}
}
Diterjemahkan ke KQL:| summarize resourceCount = count() by resourceGroup, type
Contoh ArgMax:
{
"$type": "summarize",
"SummarizeClauseExpression": {
"OperatorName": "argmax",
"OperatorFieldName": "createdTime",
"FieldList": ["resourceGroup"]
}
}
Diterjemahkan ke KQL:| summarize arg_max(createdTime, *) by resourceGroup
Perluas klausa
Menambahkan kolom komputasi ke hasil. Diterjemahkan ke operator KQLextend.
{
"$type": "extend",
"FieldName": "newFieldName",
"Expression": "KQL_EXPRESSION"
}
Example:
{
"$type": "extend",
"FieldName": "environmentId",
"Expression": "tostring(properties.environmentId)"
}
Diterjemahkan ke KQL:| extend environmentId = tostring(properties.environmentId)https://docs.microsoft.com/en-us/azure/data-explorer/kusto/query/scalarfunctions) untuk fungsi yang tersedia.
Klausa gabungan
Bergabung dengan tabel/subkueri lain. Diterjemahkan ke operator KQLjoin.
{
"$type": "join",
"RightTable": {
"TableName": "string",
"Clauses": []
},
"JoinKind": "string",
"LeftColumnName": "string",
"RightColumnName": "string"
}
Jenis gabungan yang didukung: API mendukung semua jenis gabungan KQL. Untuk daftar lengkap jenis gabungan yang tersedia dan perilakunya, lihat dokumentasi operator gabungan KQL.
Contoh (menggabungkan sumber daya Power Platform dengan informasi lingkungan):
{
"$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"
}
Diterjemahkan ke 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
Contoh kueri lengkap
Contoh: Kueri sumber daya Dasar Power Platform (pola default pusat administrasi Power Platform)
Dapatkan semua sumber daya Power Platform dengan informasi lingkungan—ini adalah kueri default yang digunakan oleh pusat admin 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 yang setara:
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
Contoh: Menghitung sumber daya Power Platform berdasarkan jenis dan lokasi
{
"TableName": "PowerPlatformResources",
"Clauses": [
{
"$type": "summarize",
"SummarizeClauseExpression": {
"OperatorName": "count",
"OperatorFieldName": "resourceCount",
"FieldList": ["type", "location"]
}
},
{
"$type": "orderby",
"FieldNamesAscDesc": {
"resourceCount": "desc"
}
}
]
}
KQL yang setara:
PowerPlatformResources
| summarize resourceCount = count() by type, location
| sort by resourceCount desc
Contoh: Kueri aplikasi kanvas sederhana
Dapatkan aplikasi kanvas dengan pemfilteran dan proyeksi dasar:
{
"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 yang setara:
PowerPlatformResources
| where type == 'microsoft.powerapps/canvasapps'
| project name, location, properties.displayName, properties.createdAt, properties.environmentId
| take 100
Contoh: Memfilter sumber daya menurut lingkungan dan rentang tanggal
{
"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"
}
}
]
}
Terjemahan ke 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
Format Tanggapan
API mengembalikan objek ResourceQueryResult dari SDK Azure Resource Graph. Objek ini berisi hasil kueri dan metadata tentang eksekusi kueri.
Struktur respons:
{
"totalRecords": 1250,
"count": 50,
"resultTruncated": 1,
"skipToken": "string_for_next_page",
"data": [
// Array of result objects based on your query
]
}