إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
تسمح لك واجهة برمجة تطبيقات المخزون بتنفيذ الاستعلامات المنظمة مقابل Azure Resource Graph باستخدام طلب POST مع مواصفات استعلام في نص الطلب. تترجم واجهة برمجة التطبيقات مواصفات الاستعلام إلى Kusto Query Language (KQL) للتنفيذ مقابل Azure Resource Graph. تعد واجهة برمجة تطبيقات المخزون للموارد جزءا من الوثائق المرجعية لواجهة برمجة تطبيقات Power Platform. للحصول على قائمة كاملة وأنواع الموارد والحقول القابلة للاستعلام، راجع مرجع مخطط مخزون Power Platform.
نقطة نهاية واجهة برمجة التطبيقات
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"
}
}
الخصائص
| الخاصية | النوع | مطلوب | الوصف |
|---|---|---|---|
TableName |
سلسلة نصية | نعم | نوع الجدول/المورد الهدف للاستعلام (على سبيل المثال، "PowerPlatformResources") |
Clauses |
مصفوفة | نعم | صفيف من عبارات الاستعلام التي تحدد العمليات التي يجب تنفيذها |
Options |
الهدف | لا. | خيارات استعلام Azure Resource Graph لفصل الصفحات والتحكم في النتائج |
خيارات الاستعلام
يدعم الكائن Options معلمات الاستعلام Azure Resource Graph لفصل الصفحات والتحكم في النتائج. راجع ResourceQueryRequestOptions الوثائق لمعرفة المزيد.
عبارات الاستعلام المدعومة
تدعم واجهة برمجة التطبيقات أنواع العبارات المميزة في هذا القسم من خلال تسلسل JSON متعدد الأشكال. يتوافق كل نوع عبارة مع عوامل تشغيل KQL كما هو موثق في مرجع KQL:
شرط Where
تصفية البيانات استنادا إلى شروط الحقل. يترجم إلى عامل تشغيل KQLwhere.
{
"$type": "where",
"FieldName": "string",
"Operator": "string",
"Values": ["string1", "string2"]
}
عوامل التشغيل المدعومة: تدعم واجهة برمجة التطبيقات جميع عوامل تشغيل سلسلة ومقارنة 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
جملة التلخيص
تجميع البيانات باستخدام عمليات العد أو 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"
}
أنواع الانضمام المدعومة: تدعم واجهة برمجة التطبيقات جميع أنواع الانضمام إلى 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
تنسيق الرد
ترجع واجهة برمجة التطبيقات كائن 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
]
}