Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
Power Platform API'en kan bruges til at udtrække forskellige detaljer og metadata fra dine Microsoft Power Platform-miljøer med eller uden en Microsoft Dataverse-database. API'en bruges internt af forskellige klienter, der er tilgængelige i dag, for eksempel PowerShell.
I dette selvstudium lærer du, hvordan du kan:
- Oprette en Power Automate- eller Logic Apps-arbejdsproces (Azure) eller et PowerShell-script, der godkendes med Power Platform-API'en.
- Kald slutpunktet for listemiljøet for at hente Microsoft Power Platform-miljødetaljerne.
- Gentag gennem kapacitetsobjektet for at hente det faktiske forbrug.
- Gem forbrugsdataene i en tabel, så de kan vises.
Som et eksempel på dette scenarie ønsker en kunde at få styr på kapacitetsforbruget, så de bedre kan forstå allokeringen af den samlede lejerkapacitet efter afdeling. Dette hjælper kunden med at udføre nogle interne omkostningsregnskabsfunktioner og tilbageførsler baseret på, hvor meget hver afdeling forbruger af den samlede tilgængelige kapacitet. Denne kunde bruger miljøbeskrivelsen for den afdeling, der ejer de enkelte miljøer.
Konfiguration af forbindelse og variabler
Brug følgende oplysninger om at oprette forbindelse til programmeringen Power Platform . Du kan vælge mellem en Azure-oplevelse eller PowerShell-scripts.
Oprette arbejdsprocessen og konfigurere variablerne
Til at starte med bruger vi i denne vejledning en Logic Apps arbejdsgang. Et Power Automate-flow kan også accepteres og ethvert andet orkestreringsprogram, som din virksomhed foretrækker at bruge til automatisering. Alle kald til at hente dataene bruger RESTful API'er, så alle værktøjer, der understøtter REST, fungerer med denne vejledning.
Besøg Azure-portalen, og opret derefter en ny logikapp, og giv den et navn:
Når klargøring er fuldført, skal du redigere arbejdsprocessen ved hjælp af designeren og konfigurere en gentagelsesudløser til at køre dagligt:
Dernæst skal vi initialisere fem variabler:
- SPN-id – Dette er din tjenesteprincipals klient-id. Den bruges senere til at udføre godkendelsen i en tjenesteprincipalkontekst. Hvis det er i forbindelse med brugernavn/adgangskode, kan du springe denne variabel over.
- DBCapacity – Dette er en Float-variabel for den forbrugte databasekapacitet i megabyte.
- FileCapacity – Dette er en Float-variabel for den forbrugte filkapacitet i megabyte.
- LogCapacity – Dette er en flydende variabel for den forbrugte logkapacitet i megabyte.
- SimplifiedEnvironmentArray-Init – Dette er en matrixvariabel, som vi udfylder med nogle få miljøegenskaber. Det medfører en drastisk forenkling af det endelige output i HTML-tabelrapporten.
Derefter godkender vi med Microsoft Entra og henter et token til at kalde API'en Power Platform . Hvis du ikke har fuldført installationen af Microsoft Entra, kan du se Godkendelse – ældre.
I dette selvstudium bruger vi et nøglelager til at gemme tjenesteprincipalens hemmelighedsværdi. På denne måde kan en it-administrator gøre denne værdi sikkert tilgængelig for arbejdsprocessen. Dette udfyldes derefter i POST-kaldet til Microsoft Entra for at hente tokenet.
Derefter fortolkes Microsoft Entra-tokensvaret i et indtastet objekt ved hjælp af dette JSON-skema i handlingen 'Fortolk JSON':
{
"properties": {
"access_token": {
"type": "string"
},
"expires_in": {
"type": "integer"
},
"ext_expires_in": {
"type": "integer"
},
"token_type": {
"type": "string"
}
},
"type": "object"
}
Hente miljøer
I dette afsnit henter vi den miljøliste, du administrerer. Det kan du gøre via API og PowerShell.
Kalde slutpunkt for listemiljøet
Nu er tiden inde til at kalde Power Platform-API'en. Brug slutpunkt Liste miljøer til at hente alle vores miljøer og deres metadata, specifikt med parameteren $expand for kapacitet. Det bruger også godkendelsesheaderen sammen med det ihændehavertoken, vi modtog i i forrige afsnit fra Microsoft Entra ID. Hvis du har brugt konteksten med brugernavn/adgangskode, kan du også angive det pågældende ihændehavertoken på dette trin.
Derefter fortolker vi API-svaret Power Platform i et indtastet objekt ved hjælp af dette JSON-skema med handlingen 'Fortolk 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"
}
Gentage gennem objektet Kapacitet
Det er den mest komplekse del af dette selvstudium. Her bruger vi en løkke inde i en løkke til at gentage hvert miljø i svaret Listemiljø, og hvert miljø har en række kapacitetsdetaljer, som vi også gentager. Dette giver os mulighed for at registrere de nødvendige oplysninger for hver miljørække i vores kapacitetsrapporttabel.
For hver og fortolkning
Lad os se på det trin for trin. Først bruger vi et For Each-kontrolelement ved hjælp af 'værdien' af Parse-List-Response-outputtet:
Derefter analyserer vi dette enkelte miljø i et indtastet objekt ved hjælp af dette JSON-skema:
{
"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"
}
Dernæst bruger vi en anden For Each-kontrol ved hjælp af 'kapaciteten' af Parse-CurrentItem-outputtet. Derefter analyserer vi dette i et indtastet objekt ved hjælp af dette JSON-skema:
Nu kan vi bruge Switch-kontrolelementet til egenskaben CapacityType fra outputtet Parse-Capacity. Dette er enten værdien af 'Database', 'File' eller 'Log'. Under hver enkelt Switch-sag skal du hente den relaterede egenskab 'actualConsumption' til den relaterede variabel. I følgende tilfælde kan du se, at vi registrerer databasekapacitet:
Som det sidste trin i løkken 'For hvert miljø' kan vi nu hente miljødetaljerne for denne række i rapporten. Brug følgende JSON-skema ved hjælp af kontrolelementet Føj til matrixvariabel:
{
"properties": {
"actualConsumption": {
"type": "number"
},
"capacityType": {
"type": "string"
},
"capacityUnit": {
"type": "string"
},
"ratedConsumption": {
"type": "number"
},
"updatedOn": {
"type": "string"
}
},
"type": "object"
}
Oprette rapporttabel
Tillykke, du er nu kommet til den nemme del! Nu, hvor der findes en komplet udfyldt og forenklet matrix for miljøkapacitet, kan den vises i tabelformat.
Bruge HTML Table-connectoren
Ved at køre logikappen kan vi nu se outputtet fra HTML-tabelrapporten:
Rapporten kan eventuelt sendes via mail til interessenter i dette eksempel med henblik på omkostningsberegning, eller dataene kan gemmes i en database med henblik på yderligere analyse og oversigt over tendenser.