Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Power Platform API бағдарламасын Microsoft Dataverse дерекқорымен немесе дерекқорынсыз Microsoft Power Platform орталарынан әртүрлі мәліметтер мен метадеректерді шығару үшін пайдалануға болады. API интерфейсі бүгінде қолжетімді PowerShell сияқты әртүрлі клиенттермен іштей пайдаланылады.
Бұл оқулықта мыналар бойынша мәліметтер беріледі:
- Түпнұсқалығы Power Platform API интерфейсімен расталатын Power Automate немесе Logic Apps жұмыс ағыны (Azure) немесе PowerShell сценарийін жасаңыз.
- Microsoft Power Platform ортаның мәліметтерін шығару үшін орталарды тізімдеу соңғы нүктесін шақырыңыз.
- Нақты тұтынуды алу үшін сыйымдылық нысаны арқылы қайталаңыз.
- Тұтыну деректерін көрсету үшін кестеге сақтаңыз.
Осы сценарийдің мысалы ретінде тұтынушы олардың қатысушылардың жалпы сыйымдылығын бөлім бойынша бөлуді жақсы түсіну үшін олардың тұтыну қабілеттілігін анықтауға тырысады. Бұл тұтынушыға кейбір ішкі шығындарды есепке алу функцияларын орындауға көмектеседі және әрбір бөлім қол жетімді жалпы сыйымдылықты қаншалықты тұтынатынына негізделген өтемақыларды қайтарады. Бұл тұтынушы әр ортаға иелік ететін бөлімді шақыру үшін орта сипаттамасын қолданады.
Қосылу және айнымалыны орнату
Power Platform бағдарламалық түрде қосылу үшін келесі мәліметтерді пайдаланыңыз. Azure тәжірибесі немесе PowerShell сценарийлерінің бірін таңдауға болады.
Жұмыс ағынын жасау және айнымалыларды орнату
Бастау үшін бұл оқулықта біз Logic Apps жұмыс процесін қолданамыз. Сондай-ақ сіздің компанияңыз автоматтандыру үшін пайдаланғысы келетін кез келген басқа өзара қатынасу механизмі сияқты Power Automate ағыны да қолайлы. Деректерді шығарып алуға арналған барлық қоңыраулар RESTful API интерфейстерін пайдаланады, сондықтан REST қолдайтын кез келген құрал осы оқулықпен жұмыс істейді.
Azure порталына кіріп, жаңа логикалық бағдарлама жасап, оған ат беріңіз:
Осыдан кейін жабдықтау аяқталғаннан кейін, құрастырушының көмегімен жұмыс ағынын өңдеңіз және күнделікті іске қосылатын қайталану триггерін орнатыңыз:
Содан кейін бізге бес айнымалыны инициализациялау керек:
- SPN-идентификаторы – Бұл сіздің қызмет көрсетуші ClientID коды. Ол кейінірек қызметтің негізгі контекстінде аутентификацияны орындау үшін пайдаланылады. Егер сіз пайдаланушы аты/құпиясөз мәнмәтінін қолдансаңыз, бұл айнымалыны өткізіп жібере аласыз.
- DBCapacity – бұл мегабайттағы тұтынылатын дерекқор сыйымдылығы үшін Float айнымалысы.
- FileCapacity – бұл мегабайттағы тұтынылатын файл сыйымдылығы үшін Float айнымалысы.
- LogCapacity – бұл мегабайттағы тұтынылатын журнал сыйымдылығы үшін Float айнымалысы.
- SimplifiedEnvironmentArray-Init – Бұл біз бірнеше орта сипаттарымен толтыратын массив айнымалысы. Бұл HTML кестесінің соңғы есебін шығаруды айтарлықтай жеңілдетеді.
Содан кейін біз Microsoft Entra мен аутентификация жасаймыз және Power Platform API-ге қоңырау шалу үшін таңбалауышты аламыз. Егер Microsoft Entra орнатуды аяқтамаған болсаңыз, Түпнұсқалық растама - бұрынғы бөлімін қараңыз.
Бұл оқулықта біз қызмет негізінің құпия мәнін сақтау үшін кілт қоймасын қолданамыз. Осылайша АТ әкімшісі бұл мәнді сіздің жұмыс ағынының үшін қауіпсіз түрде қолжетімді ете алады. Бұл таңбалауышты шығарып алу үшін Microsoft Entra POST шақыруында толтырылады.
Содан кейін Microsoft Entra токен жауап терілген нысанға "JSON талдауы" әрекетінде осы JSON схемасын қолданып талдаймыз:
{
"properties": {
"access_token": {
"type": "string"
},
"expires_in": {
"type": "integer"
},
"ext_expires_in": {
"type": "integer"
},
"token_type": {
"type": "string"
}
},
"type": "object"
}
Орталарды алу
Бұл бөлімде біз сіз басқаратын орта тізімін аламыз. Мұны API және PowerShell арқылы жасауға болады.
Орталарды тізімдеу соңғы нүктесін шақыру
Енді Power Platform API бағдарламасын шақыратын уақыт келді. Барлық орталарымызды және олардың метадеректерін, әсіресе сыйымдылыққа арналған $expand параметрімен шығарып алу үшін Тізім орталарының соңғы нүктесін пайдаланыңыз. Бұл сонымен қатар алдыңғы бөлімде Microsoft Entra ID алған Тасымалдаушы таңбалауышы бар Авторизация тақырыбын пайдаланады. Егер сіз пайдаланушы аты/құпиясөз мәнмәтінін қолданған болсаңыз, осы қадамда сол тасушы таңбалауышын да енгізе аласыз.
Содан кейін Power Platform API жауап файлын терілген нысанға осы JSON схемасын "JSON талдауы" әрекетімен талдаймыз:
{
"properties": {
"value": {
"items": {
"properties": {
"description": {
"type": "string"
},
"id": {
"type": "string"
},
"location": {
"type": "string"
},
"name": {
"type": "string"
},
"properties": {
"properties": {
"addons": {
"type": "array"
},
"azureRegion": {
"type": "string"
},
"capacity": {
"items": {
"properties": {
"actualConsumption": {
"type": "number"
},
"capacityType": {
"type": "string"
},
"capacityUnit": {
"type": "string"
},
"ratedConsumption": {
"type": "number"
},
"updatedOn": {
"type": "string"
}
},
"required": [
"capacityType",
"actualConsumption",
"ratedConsumption",
"capacityUnit",
"updatedOn"
],
"type": "object"
},
"type": "array"
},
"clientUris": {
"properties": {
"admin": {
"type": "string"
},
"maker": {
"type": "string"
}
},
"type": "object"
},
"cluster": {
"properties": {
"category": {
"type": "string"
},
"number": {
"type": "string"
}
},
"type": "object"
},
"connectedGroups": {
"type": "array"
},
"createdBy": {
"properties": {
"displayName": {
"type": "string"
},
"id": {
"type": "string"
},
"type": {
"type": "string"
}
},
"type": "object"
},
"createdTime": {
"type": "string"
},
"creationType": {
"type": "string"
},
"databaseType": {
"type": "string"
},
"displayName": {
"type": "string"
},
"environmentSku": {
"type": "string"
},
"isDefault": {
"type": "boolean"
},
"linkedEnvironmentMetadata": {
"properties": {
"backgroundOperationsState": {
"type": "string"
},
"baseLanguage": {
"type": "number"
},
"createdTime": {
"type": "string"
},
"domainName": {
"type": "string"
},
"friendlyName": {
"type": "string"
},
"instanceApiUrl": {
"type": "string"
},
"instanceState": {
"type": "string"
},
"instanceUrl": {
"type": "string"
},
"platformSku": {
"type": "string"
},
"resourceId": {
"type": "string"
},
"scaleGroup": {
"type": "string"
},
"uniqueName": {
"type": "string"
},
"version": {
"type": "string"
}
},
"type": "object"
},
"protectionStatus": {
"properties": {
"keyManagedBy": {
"type": "string"
}
},
"type": "object"
},
"provisioningState": {
"type": "string"
},
"retentionDetails": {
"properties": {
"backupsAvailableFromDateTime": {
"type": "string"
},
"retentionPeriod": {
"type": "string"
}
},
"type": "object"
},
"retentionPeriod": {
"type": "string"
},
"runtimeEndpoints": {
"properties": {
"microsoft.ApiManagement": {
"type": "string"
},
"microsoft.BusinessAppPlatform": {
"type": "string"
},
"microsoft.CommonDataModel": {
"type": "string"
},
"microsoft.Flow": {
"type": "string"
},
"microsoft.PowerApps": {
"type": "string"
},
"microsoft.PowerAppsAdvisor": {
"type": "string"
}
},
"type": "object"
},
"states": {
"properties": {
"management": {
"properties": {
"id": {
"type": "string"
}
},
"type": "object"
},
"runtime": {
"properties": {
"id": {
"type": "string"
}
},
"type": "object"
}
},
"type": "object"
},
"updateCadence": {
"properties": {
"id": {
"type": "string"
}
},
"type": "object"
}
},
"type": "object"
},
"type": {
"type": "string"
}
},
"required": [
"id",
"type",
"location",
"name",
"properties"
],
"type": "object"
},
"type": "array"
}
},
"type": "object"
}
Сыйымдылық нысаны арқылы қайталау
Бұл оқулықтың ең күрделі бөлігі. Мұнда біз жауап тізім ортасындағы әрбір ортаны қайталау үшін цикл ішіндегі циклды пайдаланамыз және әрбір ортада біз қайталайтын сыйымдылық мәліметтерінің жиыны бар. Бұл сыйымдылық есеп кестесіндегі әрбір орта жолына қажетті ақпаратты алуға мүмкіндік береді.
Әрқайсысы үшін және талдау
Мұны біртіндеп жасайық. Алдымен, талдау тізімі-жауап шығысының «мәні» арқылы For Every басқару элементін қолданамыз:
Содан кейін біз осы жалғыз ортаны осы JSON схемасын пайдаланып терілген нысанға талдаймыз:
{
"properties": {
"description": {
"type": "string"
},
"id": {
"type": "string"
},
"location": {
"type": "string"
},
"name": {
"type": "string"
},
"properties": {
"properties": {
"addons": {
"type": "array"
},
"azureRegion": {
"type": "string"
},
"capacity": {
"items": {
"properties": {
"actualConsumption": {
"type": "number"
},
"capacityType": {
"type": "string"
},
"capacityUnit": {
"type": "string"
},
"ratedConsumption": {
"type": "number"
},
"updatedOn": {
"type": "string"
}
},
"required": [
"capacityType",
"actualConsumption",
"ratedConsumption",
"capacityUnit",
"updatedOn"
],
"type": "object"
},
"type": "array"
},
"clientUris": {
"properties": {
"admin": {
"type": "string"
},
"maker": {
"type": "string"
}
},
"type": "object"
},
"cluster": {
"properties": {
"number": {
"type": "string"
}
},
"type": "object"
},
"connectedGroups": {
"type": "array"
},
"createdBy": {
"properties": {
"displayName": {
"type": "string"
},
"id": {
"type": "string"
},
"type": {
"type": "string"
}
},
"type": "object"
},
"createdTime": {
"type": "string"
},
"creationType": {
"type": "string"
},
"databaseType": {
"type": "string"
},
"displayName": {
"type": "string"
},
"environmentSku": {
"type": "string"
},
"isDefault": {
"type": "boolean"
},
"linkedEnvironmentMetadata": {
"properties": {
"backgroundOperationsState": {
"type": "string"
},
"baseLanguage": {
"type": "integer"
},
"createdTime": {
"type": "string"
},
"domainName": {
"type": "string"
},
"friendlyName": {
"type": "string"
},
"instanceApiUrl": {
"type": "string"
},
"instanceState": {
"type": "string"
},
"instanceUrl": {
"type": "string"
},
"resourceId": {
"type": "string"
},
"scaleGroup": {
"type": "string"
},
"uniqueName": {
"type": "string"
},
"version": {
"type": "string"
}
},
"type": "object"
},
"protectionStatus": {
"properties": {
"keyManagedBy": {
"type": "string"
}
},
"type": "object"
},
"provisioningState": {
"type": "string"
},
"retentionDetails": {
"properties": {
"backupsAvailableFromDateTime": {
"type": "string"
},
"retentionPeriod": {
"type": "string"
}
},
"type": "object"
},
"retentionPeriod": {
"type": "string"
},
"runtimeEndpoints": {
"properties": {
"microsoft.ApiManagement": {
"type": "string"
},
"microsoft.BusinessAppPlatform": {
"type": "string"
},
"microsoft.CommonDataModel": {
"type": "string"
},
"microsoft.Flow": {
"type": "string"
},
"microsoft.PowerApps": {
"type": "string"
},
"microsoft.PowerAppsAdvisor": {
"type": "string"
}
},
"type": "object"
},
"states": {
"properties": {
"management": {
"properties": {
"id": {
"type": "string"
}
},
"type": "object"
},
"runtime": {
"properties": {
"id": {
"type": "string"
}
},
"type": "object"
}
},
"type": "object"
},
"updateCadence": {
"properties": {
"id": {
"type": "string"
}
},
"type": "object"
}
},
"type": "object"
},
"type": {
"type": "string"
}
},
"type": "object"
}
Әрі қарай, біз Parse-CurrentItem шығысының «сыйымдылығын» пайдалана отырып, әрбір үшін басқа басқару элементін қолданамыз. Содан кейін біз оны JSON схемасын пайдаланып терілген нысанға талдаймыз:
Енді біз талдау-сыйымдылық нәтижесіндегі CapacityType сипатындағы ауыстыру басқару элементін қолдана аламыз. Бұл «Дерекқор», «Файл» немесе «Журнал» мәні. Әр ауыстыру жағдайында қатысты "actualConsumption" сипатын қатысты айнымалыға түсіріңіз. Келесі жағдайда біз Дерекқор сыйымдылығын жинап жатқанымызды көресіз:
"Әр орта үшін" циклінің соңғы қадамы ретінде біз қазір есептегі осы жол үшін ортаның мәліметтерін түсіре аламыз. Жиымның айнымалы басқару элементіне үстеу көмегімен келесі JSON схемасын қолданыңыз:
{
"properties": {
"actualConsumption": {
"type": "number"
},
"capacityType": {
"type": "string"
},
"capacityUnit": {
"type": "string"
},
"ratedConsumption": {
"type": "number"
},
"updatedOn": {
"type": "string"
}
},
"type": "object"
}
Есеп кестесін құру
Құттықтаймыз, сіз енді жеңіл бөлімге жеттіңіз! Енді бізде толығымен толтырылған және жеңілдетілген орта сыйымдылығы жиымы болғандықтан, біз оны кестелік пішімде көрсете аламыз.
HTML кесте қосқышын пайдалану
Логикалық бағдарламаны іске қосқанда HTML кестесі есебінің нәтижесін көре аламыз:
Шығын есебі мақсатында осы мысалда есепті пай иелеріне қажет болса электрондық пошта арқылы жіберуге болады немесе деректерді қосымша талдау және тарихи үрдістер үшін дерекқорға сақтауға болады.