Nota
L'accés a aquesta pàgina requereix autorització. Pots provar d'iniciar sessió o canviar de directori.
L'accés a aquesta pàgina requereix autorització. Pots provar de canviar directoris.
L'API del Power Platform es pot utilitzar per extreure diferents detalls i metadades dels vostres entorns del Microsoft Power Platform amb o sense base de dades del Microsoft Dataverse. Diversos clients disponibles actualment utilitzen l'API internament, com ara el PowerShell.
En aquest tutorial, aprendreu com:
- Creeu un flux de treball del Power Automate o de Logic Apps (Azure) o un script del PowerShell que s'autentiqui amb l'API del Power Platform.
- Crideu l'extrem Entorns de llista per recuperar els detalls del vostre entorn del Microsoft Power Platform.
- Itereu per mitjà de l'objecte de capacitat per recuperar el consum real.
- Deseu les dades de consum en una taula per visualitzar-les.
Com a exemple d'aquest escenari, un client està cercant el consum de la seva capacitat per comprendre millor l'assignació de la seva capacitat total d'inquilí per departament. Això ajuda el client a realitzar algunes funcions de comptabilitat de costos interns i devolucions en funció de la quantitat que consumeix cada departament de la capacitat total disponible. Aquest client utilitza la descripció de l'entorn per recuperar el departament propietari de cada entorn.
Configuració de connexió i variables
Utilitzeu els detalls següents per connectar-vos a la Power Platform programació. Podeu triar entre una experiència Azure o scripts PowerShell.
Crear el flux de treball i configurar les variables
Per començar, en aquest tutorial utilitzem un flux de treball Logic Apps. Un flux del Power Automate també és acceptable, així com qualsevol altre motor d'orquestració que la vostra empresa prefereixi utilitzar per a l'automatització. Totes les trucades per recuperar les dades utilitzen API RESTful, de manera que qualsevol eina que admeti REST funcioni amb aquest tutorial.
Visiteu el portal de l'Azure i, a continuació, creeu una aplicació lògica nova i doneu-li un nom:
Un cop acabat el proveïment, editeu el flux de treball mitjançant el Dissenyador i configureu un activador de periodicitat per executar-lo diàriament:
A continuació, hem d'inicialitzar cinc variables:
- SPN-Id : aquest és el vostre ClientID principal de servei. S'utilitza més endavant per dur a terme l'autenticació en un context d'entitat de servei. Si utilitzeu el context d'usuari/contrasenya, podeu ometre aquesta variable.
- DBCapacity : aquesta és una variable flotant per a la capacitat de la base de dades consumida en megabytes.
- FileCapacity : aquesta és una variable flotant per a la capacitat de fitxer consumida en megabytes.
- LogCapacity : aquesta és una variable flotant per a la capacitat de registre consumida en megabytes.
- SimplifiedEnvironmentArray-Init – Aquesta és una variable de matriu que omplim amb algunes propietats de l'entorn. Això simplifica dràsticament la sortida de l'informe de taula HTML final.
A continuació, ens autentiquem i Microsoft Entra recuperem un testimoni per cridar a l'API Power Platform . Si no heu completat la Microsoft Entra configuració, vegeu Autenticació heretada.
En aquest tutorial s'utilitza un magatzem de claus per emmagatzemar el nostre valor de secret de principal de servei. D'aquesta manera, un administrador de TI pot fer que aquest valor estigui disponible de manera segura per al vostre flux de treball. A continuació, s'emplena a la crida POST per Microsoft Entra recuperar el testimoni.
A continuació, analitzem la Microsoft Entra resposta del testimoni en un objecte escrit mitjançant aquest esquema JSON a l'acció "Analitza JSON":
{
"properties": {
"access_token": {
"type": "string"
},
"expires_in": {
"type": "integer"
},
"ext_expires_in": {
"type": "integer"
},
"token_type": {
"type": "string"
}
},
"type": "object"
}
Obtenir entorns
En aquesta secció, obtindrem la llista d'entorns que administreu. Això es pot fer a través d'API i del PowerShell.
Cridar l'extrem Enumera els entorns
Ara és el moment de cridar l'API del Power Platform. Utilitzeu l'extrem Entorns de llista per recuperar tots els nostres entorns i les seves metadades, específicament amb el paràmetre $expand per a la capacitat. Això també utilitza la capçalera d'autorització amb el testimoni de portador que hem rebut a la secció anterior de l'ID Microsoft Entra . Si heu utilitzat el context d'usuari/contrasenya, també podeu introduir aquest testimoni de portador en aquest pas.
A continuació, analitzem la resposta de l'API Power Platform en un objecte escrit mitjançant aquest esquema JSON amb l'acció "Parse 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"
}
Iterar a través de l'objecte Capacitat
Aquesta és la part més complexa del tutorial. Aquí fem servir un bucle dins d'un bucle per iterar cada entorn a la resposta de l'entorn de llista, i cada entorn té una matriu de detalls de capacitat que també iterem. Això ens permet capturar la informació necessària per a cada fila de l'entorn a la nostra taula d'informes de capacitat.
For-each i anàlisi
Fem-ho pas a pas. En primer lloc, utilitzem un control For Each utilitzant el "valor" de la sortida Parse-List-Response:
A continuació, analitzem aquest únic entorn en un objecte escrit mitjançant aquest esquema 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"
}
A continuació, utilitzem un altre control For Each utilitzant la "capacitat" de la sortida Parse-CurrentItem. A continuació, analitzem això en un objecte escrit utilitzant aquest esquema JSON:
Ara podem utilitzar el control Commuta a la propietat CapacityType de la sortida de Parse-Capacity. Aquest és el valor de "Base de dades", "Fitxer" o "Registre". A cada cas de commutador, captureu la propietat "actualConsumption" relacionada a la variable relacionada. En el cas següent, veureu que estem capturant la capacitat de la base de dades:
Com a últim pas del bucle "Per a cada entorn", ara podem capturar els detalls de l'entorn per a aquesta fila de l'informe. Amb el control Annexa a variable de matriu, utilitzeu l'esquema JSON següent:
{
"properties": {
"actualConsumption": {
"type": "number"
},
"capacityType": {
"type": "string"
},
"capacityUnit": {
"type": "string"
},
"ratedConsumption": {
"type": "number"
},
"updatedOn": {
"type": "string"
}
},
"type": "object"
}
Crear una taula d'informe
Enhorabona, ja heu arribat a la part fàcil! Ara que tenim la matriu de capacitats d'entorn completada i simplificada, la podem visualitzar en format de taula.
Utilitzar el connector de taula HTML
Executant l'aplicació lògica, ara podem veure la sortida de l'informe de taula HTML:
L'informe podria enviar-se per correu electrònic opcionalment a les parts interessades per a finalitats de comptabilitat de costos, o bé les dades es podrien desar en una base de dades per analitzar-les i crear tendències històriques.