Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Envanter API'si, istek gövdesinde sorgu belirtimi olan bir POST isteği kullanarak Azure Kaynak Grafı'na yönelik yapılandırılmış sorgular yürütmenize olanak tanır. API, Azure Kaynak Grafı'nda yürütülmesi için sorgu belirtiminizi Kusto Sorgu Dili'ne (KQL) çevirir. Kaynaklar için envanter API'si, Power Platform API başvuru belgelerinin bir parçasıdır. Kaynak türlerinin ve sorgulanabilir alanların tam listesi için bkz. Power Platform envanter şeması başvurusu.
API uç noktası
POST {PowerPlatformAPI url}/resourcequery/resources/query?api-version=2024-10-01
İstek içeriği
İstek gövdesi aşağıdaki yapıya sahip bir sorgu belirtimi içermelidir:
Sorgu isteği yapısı
{
"TableName": "string",
"Clauses": [
{
"$type": "clause_type",
// clause-specific properties
}
],
"Options": {
"Top": 100,
"Skip": 0,
"SkipToken": "string"
}
}
Properties
| Mülkiyet | Türü | Zorunlu | Description |
|---|---|---|---|
TableName |
string | Evet | Sorgu için hedef tablo/kaynak türü (örneğin, "PowerPlatformResources") |
Clauses |
Dizi | Evet | Gerçekleştirilecek işlemleri tanımlayan sorgu yan tümceleri dizisi |
Options |
Nesne | Hayır | Sayfalandırma ve sonuç denetimi için Azure Kaynak Grafı sorgu seçenekleri |
Sorgu seçenekleri
Options nesnesi, sayfalandırma ve sonuç denetimi için Azure Resource Graph sorgu parametrelerini destekler. Daha fazla bilgi edinmek için belgelere bakınResourceQueryRequestOptions.
Desteklenen sorgu yan tümceleri
API, çok biçimli JSON serileştirmesi aracılığıyla bu bölümde vurgulanan yan tümce türlerini destekler. Her madde türü, KQL referansında belgelendiği gibi KQL işleçlerine karşılık gelir.
WHERE yan tümcesi
Verileri alan koşullarına göre filtreler. KQL where işleçine dönüştürülür.
{
"$type": "where",
"FieldName": "string",
"Operator": "string",
"Values": ["string1", "string2"]
}
Desteklenen işleçler: API tüm standart KQL karşılaştırmasını ve dize işleçlerini destekler. Kullanılabilir işleçlerin tam listesi için KQL dize işleçleri ve sayısal işleçler belgelerine bakın.
Example:
{
"$type": "where",
"FieldName": "type",
"Operator": "in~",
"Values": ["'microsoft.powerapps/canvasapps'", "'microsoft.copilotstudio/agents'"]
}
KQL'ye çevirir:| where type in~ ('microsoft.powerapps/canvasapps', 'microsoft.copilotstudio/agents')
Proje maddesi
Sonuçlardan belirli alanları seçer. KQL project işleçine dönüştürülür.
{
"$type": "project",
"FieldList": ["field1", "field2", "field3"]
}
Example:
{
"$type": "project",
"FieldList": [
"name",
"properties.displayName",
"environmentId = tostring(properties.environmentId)",
"createdDate = properties.createdAt"
]
}
KQL'ye çevirir:| project name, properties.displayName, environmentId = tostring(properties.environmentId), createdDate = properties.createdAt
Take yan tümcesi
Döndürülen sonuç sayısını sınırlar. KQL take işleçine dönüştürülür.
{
"$type": "take",
"TakeCount": 50
}
KQL'ye çevirir:| take 50
Order by yan tümcesi
Sonuçları belirtilen alanlara göre sıralar. KQL sort işleçine dönüştürülür.
{
"$type": "orderby",
"FieldNamesAscDesc": {
"field1": "asc",
"field2": "desc"
}
}
Example:
{
"$type": "orderby",
"FieldNamesAscDesc": {
"tostring(properties.createdAt)": "desc",
"properties.displayName": "asc"
}
}
KQL'ye çevirir:| sort by tostring(properties.createdAt) desc, properties.displayName asc
Belirgin cümle
Belirtilen alanlar için benzersiz değerler döndürür. KQL distinct işleçine dönüştürülür.
{
"$type": "distinct",
"FieldList": ["field1", "field2"]
}
KQL'ye çevirir:| distinct field1, field2
Count yan tümcesi
Eşleşen kayıtların sayısını döndürür. KQL count işleçine dönüştürülür.
{
"$type": "count"
}
KQL'ye çevirir:| count
Özetle madde
Count veya argmax işlemlerini kullanarak verileri toplar. KQL summarize işleçine dönüştürülür.
{
"$type": "summarize",
"SummarizeClauseExpression": {
"OperatorName": "count|argmax",
"OperatorFieldName": "string",
"FieldList": ["field1", "field2"]
}
}
Desteklenen işleçler:
-
countcount()→ - Belirtilen alanlara göre gruplandırılmış kayıtları sayma. -
argmaxarg_max()→ - Belirtilen alanda en yüksek değere sahip kayıtları alın.
Sayı örneği:
{
"$type": "summarize",
"SummarizeClauseExpression": {
"OperatorName": "count",
"OperatorFieldName": "resourceCount",
"FieldList": ["resourceGroup", "type"]
}
}
KQL'ye çevirir:| summarize resourceCount = count() by resourceGroup, type
ArgMax örneği:
{
"$type": "summarize",
"SummarizeClauseExpression": {
"OperatorName": "argmax",
"OperatorFieldName": "createdTime",
"FieldList": ["resourceGroup"]
}
}
KQL'ye çevirir:| summarize arg_max(createdTime, *) by resourceGroup
Extend yan tümcesi
Hesaplanan sütunları sonuçlara ekler. KQL extend işleçine dönüştürülür.
{
"$type": "extend",
"FieldName": "newFieldName",
"Expression": "KQL_EXPRESSION"
}
Example:
{
"$type": "extend",
"FieldName": "environmentId",
"Expression": "tostring(properties.environmentId)"
}
KQL'ye çevirir:| extend environmentId = tostring(properties.environmentId)https://docs.microsoft.com/en-us/azure/data-explorer/kusto/query/scalarfunctions) kullanılabilir işlevler için.
Join yan tümcesi
Başka bir tablo/alt sorgu ile birleşir. KQL join işleçine dönüştürülür.
{
"$type": "join",
"RightTable": {
"TableName": "string",
"Clauses": []
},
"JoinKind": "string",
"LeftColumnName": "string",
"RightColumnName": "string"
}
Desteklenen birleştirme türleri: API tüm KQL birleştirme türlerini destekler. Kullanılabilir birleştirme türlerinin ve davranışlarının tam listesi için KQL birleştirme işleci belgelerine bakın.
Örnek (Power Platform kaynaklarını ortam bilgileriyle birleştirme):
{
"$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'ye çevirir:| 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
Sorgu örneklerini tamamlama
Örnek: Temel Power Platform kaynak sorgusu (Power Platform yönetim merkezi varsayılan düzeni)
Ortam bilgileriyle tüm Power Platform kaynaklarını alın; bu, Power Platform yönetim merkezi tarafından kullanılan varsayılan sorgudur.
{
"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"
}
}
]
}
Eşdeğer 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
Örnek: Power Platform kaynaklarını türe ve konuma göre sayma
{
"TableName": "PowerPlatformResources",
"Clauses": [
{
"$type": "summarize",
"SummarizeClauseExpression": {
"OperatorName": "count",
"OperatorFieldName": "resourceCount",
"FieldList": ["type", "location"]
}
},
{
"$type": "orderby",
"FieldNamesAscDesc": {
"resourceCount": "desc"
}
}
]
}
Eşdeğer KQL:
PowerPlatformResources
| summarize resourceCount = count() by type, location
| sort by resourceCount desc
Örnek: Basit tuval uygulamaları sorgusu
Temel filtreleme ve projeksiyon ile tuval tabanlı uygulamalara erişin.
{
"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
}
]
}
Eşdeğer KQL:
PowerPlatformResources
| where type == 'microsoft.powerapps/canvasapps'
| project name, location, properties.displayName, properties.createdAt, properties.environmentId
| take 100
Örnek: Kaynakları ortama ve tarih aralığına göre filtreleme
{
"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'ye çevirir:
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
Yanıt biçimi
API, Azure Resource Graph SDK'sından bir ResourceQueryResult nesnesi döndürür. Bu nesne, sorgunun yürütülmesiyle ilgili sorgu sonuçlarını ve meta verileri içerir.
Yanıt yapısı:
{
"totalRecords": 1250,
"count": 50,
"resultTruncated": 1,
"skipToken": "string_for_next_page",
"data": [
// Array of result objects based on your query
]
}