Lưu ý
Cần có ủy quyền mới truy nhập được vào trang này. Bạn có thể thử đăng nhập hoặc thay đổi thư mục.
Cần có ủy quyền mới truy nhập được vào trang này. Bạn có thể thử thay đổi thư mục.
API khoảng không quảng cáo cho phép bạn thực hiện các truy vấn có cấu trúc đối với Azure Resource Graph bằng cách sử dụng yêu cầu POST với đặc tả truy vấn trong nội dung yêu cầu. API dịch đặc tả truy vấn của bạn thành Ngôn ngữ truy vấn Kusto (KQL) để thực thi đối với Azure Resource Graph. API hàng tồn kho cho Tài nguyên là một phần của tài liệu tham khảo API Power Platform. Để biết danh sách đầy đủ các loại tài nguyên và trường có thể truy vấn, hãy xem Tham khảo lược đồ hàng tồn kho Power Platform.
Điểm cuối API
POST {PowerPlatformAPI url}/resourcequery/resources/query?api-version=2024-10-01
Nội dung yêu cầu
Nội dung yêu cầu phải chứa đặc tả truy vấn với cấu trúc sau:
Cấu trúc yêu cầu truy vấn
{
"TableName": "string",
"Clauses": [
{
"$type": "clause_type",
// clause-specific properties
}
],
"Options": {
"Top": 100,
"Skip": 0,
"SkipToken": "string"
}
}
Thuộc tính
| Property | Loại | Required | Description |
|---|---|---|---|
TableName |
chuỗi | Có | Loại bảng/tài nguyên đích để truy vấn (tức là "PowerPlatformResources") |
Clauses |
mảng | Có | Mảng mệnh đề truy vấn xác định các hoạt động cần thực hiện |
Options |
đối tượng | Không | Tùy chọn truy vấn Azure Resource Graph để phân trang và kiểm soát kết quả |
Tùy chọn truy vấn
Đối tượng Options hỗ trợ Azure Resource Graph tham số truy vấn để phân trang và kiểm soát kết quả. Xem ResourceQueryRequestOptions tài liệu để tìm hiểu thêm.
Các mệnh đề truy vấn được hỗ trợ
API hỗ trợ các loại mệnh đề được đánh dấu trong phần này thông qua tuần tự hóa JSON đa hình. Mỗi loại mệnh đề tương ứng với các toán tử KQL như được ghi lại trong tài liệu tham khảo KQL:
Điều khoản trong đó
Lọc dữ liệu dựa trên điều kiện trường. Dịch thành toán tử KQLwhere.
{
"$type": "where",
"FieldName": "string",
"Operator": "string",
"Values": ["string1", "string2"]
}
Các nhà khai thác được hỗ trợ: API hỗ trợ tất cả các toán tử chuỗi và so sánh KQL tiêu chuẩn. Để biết danh sách đầy đủ các toán tử có sẵn, hãy xem tài liệu về toán tử chuỗi vàtoán tử số KQL.
Ví dụ:
{
"$type": "where",
"FieldName": "type",
"Operator": "in~",
"Values": ["'microsoft.powerapps/canvasapps'", "'microsoft.copilotstudio/agents'"]
}
Dịch sang KQL:| where type in~ ('microsoft.powerapps/canvasapps', 'microsoft.copilotstudio/agents')
Điều khoản dự án
Chọn các trường cụ thể từ kết quả. Dịch thành toán tử KQLproject.
{
"$type": "project",
"FieldList": ["field1", "field2", "field3"]
}
Ví dụ:
{
"$type": "project",
"FieldList": [
"name",
"properties.displayName",
"environmentId = tostring(properties.environmentId)",
"createdDate = properties.createdAt"
]
}
Dịch sang KQL:| project name, properties.displayName, environmentId = tostring(properties.environmentId), createdDate = properties.createdAt
Lấy mệnh đề
Giới hạn số lượng kết quả được trả về. Dịch thành toán tử KQLtake.
{
"$type": "take",
"TakeCount": 50
}
Dịch sang KQL:| take 50
Thứ tự theo điều khoản
Sắp xếp kết quả theo các trường được chỉ định. Dịch thành toán tử KQLsort.
{
"$type": "orderby",
"FieldNamesAscDesc": {
"field1": "asc",
"field2": "desc"
}
}
Ví dụ:
{
"$type": "orderby",
"FieldNamesAscDesc": {
"tostring(properties.createdAt)": "desc",
"properties.displayName": "asc"
}
}
Dịch sang KQL:| sort by tostring(properties.createdAt) desc, properties.displayName asc
Điều khoản riêng biệt
Trả về các giá trị duy nhất cho các trường được chỉ định. Dịch thành toán tử KQLdistinct.
{
"$type": "distinct",
"FieldList": ["field1", "field2"]
}
Dịch sang KQL:| distinct field1, field2
Mệnh đề đếm
Trả về số lượng bản ghi phù hợp. Dịch thành toán tử KQLcount.
{
"$type": "count"
}
Dịch sang KQL:| count
Tóm tắt điều khoản
Tổng hợp dữ liệu bằng cách sử dụng các phép toán đếm hoặc argmax. Dịch thành toán tử KQLsummarize.
{
"$type": "summarize",
"SummarizeClauseExpression": {
"OperatorName": "count|argmax",
"OperatorFieldName": "string",
"FieldList": ["field1", "field2"]
}
}
Các nhà khai thác được hỗ trợ:
-
count→count()- Đếm các bản ghi được nhóm theo các trường được chỉ định. -
argmax→arg_max()- Nhận bản ghi có giá trị lớn nhất trong trường được chỉ định.
Ví dụ về số lượng:
{
"$type": "summarize",
"SummarizeClauseExpression": {
"OperatorName": "count",
"OperatorFieldName": "resourceCount",
"FieldList": ["resourceGroup", "type"]
}
}
Dịch sang KQL:| summarize resourceCount = count() by resourceGroup, type
Ví dụ về ArgMax:
{
"$type": "summarize",
"SummarizeClauseExpression": {
"OperatorName": "argmax",
"OperatorFieldName": "createdTime",
"FieldList": ["resourceGroup"]
}
}
Dịch sang KQL:| summarize arg_max(createdTime, *) by resourceGroup
Điều khoản gia hạn
Thêm các cột được tính toán vào kết quả. Dịch thành toán tử KQLextend.
{
"$type": "extend",
"FieldName": "newFieldName",
"Expression": "KQL_EXPRESSION"
}
Ví dụ:
{
"$type": "extend",
"FieldName": "environmentId",
"Expression": "tostring(properties.environmentId)"
}
Dịch sang KQL:| extend environmentId = tostring(properties.environmentId)https://docs.microsoft.com/en-us/azure/data-explorer/kusto/query/scalarfunctions) cho các chức năng có sẵn.
Mệnh đề tham gia
Tham gia với một bảng/truy vấn con khác. Dịch thành toán tử KQLjoin.
{
"$type": "join",
"RightTable": {
"TableName": "string",
"Clauses": []
},
"JoinKind": "string",
"LeftColumnName": "string",
"RightColumnName": "string"
}
Các loại tham gia được hỗ trợ: API hỗ trợ tất cả các loại tham gia KQL. Để biết danh sách đầy đủ các loại liên kết có sẵn và hành vi của chúng, hãy xem tài liệu về toán tử tham gia KQL.
Ví dụ (kết hợp tài nguyên Power Platform với thông tin môi trường):
{
"$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"
}
Dịch sang 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
Hoàn thành các ví dụ về truy vấn
Ví dụ: Truy vấn tài nguyên Power Platform cơ bản (mẫu mặc định của trung tâm quản trị Power Platform)
Nhận tất cả tài nguyên Power Platform với thông tin môi trường—đây là truy vấn mặc định được trung tâm quản trị Power Platform sử dụng.
{
"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 tương đương:
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
Ví dụ: Đếm tài nguyên Power Platform theo loại và vị trí
{
"TableName": "PowerPlatformResources",
"Clauses": [
{
"$type": "summarize",
"SummarizeClauseExpression": {
"OperatorName": "count",
"OperatorFieldName": "resourceCount",
"FieldList": ["type", "location"]
}
},
{
"$type": "orderby",
"FieldNamesAscDesc": {
"resourceCount": "desc"
}
}
]
}
KQL tương đương:
PowerPlatformResources
| summarize resourceCount = count() by type, location
| sort by resourceCount desc
Ví dụ: Truy vấn ứng dụng canvas đơn giản
Tải ứng dụng canvas với tính năng lọc và chiếu cơ bản:
{
"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 tương đương:
PowerPlatformResources
| where type == 'microsoft.powerapps/canvasapps'
| project name, location, properties.displayName, properties.createdAt, properties.environmentId
| take 100
Ví dụ: Lọc tài nguyên theo môi trường và phạm vi ngày
{
"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"
}
}
]
}
Dịch sang 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
Định dạng phản hồi
API trả về đối tượng ResourceQueryResult từ SDK Azure Resource Graph. Đối tượng này chứa kết quả truy vấn và siêu dữ liệu về việc thực thi truy vấn.
Cấu trúc phản hồi:
{
"totalRecords": 1250,
"count": 50,
"resultTruncated": 1,
"skipToken": "string_for_next_page",
"data": [
// Array of result objects based on your query
]
}