Kopīgot, izmantojot


Apmācība: ikdienas noslodzes pārskata izveide

Power Platform API var tikt izmantots, lai no jūsu Microsoft Power Platform vides izgūtu dažādu informāciju un metadatus — gan tos, kas izmanto Microsoft Dataverse, gan tos, kas to nedara. Mūsdienās API iekšēji izmanto dažādi klienti, piemēram PowerShell.

Šajā apmācībā uzzināsit, kā:

  • Izveidojiet Power Automate vai Logic Apps darbplūsmu (Azure) vai PowerShell skriptu, kas tiek autentificēts ar Power Platform API.
  • Zvaniet uz saraksta vides galapunktu, lai izgūtu Microsoft Power Platform detalizētu informāciju par vidi.
  • Atkārtoti dodieties cauri noslodzes objektam, lai izgūtu faktisko noslodzi.
  • Saglabājiet patēriņa datus rādāmā tabulā.

Piemēram, klients vēlas iegūt rokturus attiecībā uz noslodzes pieaugumu, lai viņi varētu labāk izprast nomnieka kopējo noslodzi pēc nodaļas. Tas palīdz klientam veikt dažas iekšējās izmaksu uzskaites funkcijas un iekasēt atpakaļ maksājumus, pamatojoties uz to, cik daudz katra nodaļa patērē no kopējās pieejamās jaudas. Šis klients izmanto Vides aprakstu, lai izsauktu departamentu, kam pieder katra vide.

Savienojuma un mainīgā iestatīšana

Izmantojiet tālāk sniegto informāciju, lai izveidotu savienojumu ar Power Platform programmiski. Varat izvēlēties starp Azure pieredzi vai PowerShell skriptiem.

Izveidojiet darbplūsmu un iestatiet mainīgos

Lai sāktu, šajā apmācībā mēs izmantojam Logic Apps darbplūsmu. Power Automate plūsma ir pieņemama, kā arī jebkura cita jūsu uzņēmuma vēlamajam automatizācijas procesam paredzētā programma. Visi zvani, lai izgūtu datus, izmanto RESTful API, tāpēc visi rīki, kas atbalsta REST, darbojas ar šo apmācību.

Apmeklējiet Azure portālu un pēc tam izveidojiet jaunu loģikas programmu un piešķiriet tam nosaukumu:

Izveidojiet loģikas programmu.

Pēc tam pabeidziet nodrošināšanu, rediģējiet darbplūsmu, izmantojot noformētāju, un iestatiet periodiskuma izraisītāju, lai to palaistu katru dienu:

Iestatiet atkārtošanās trigeri.

Tālāk mums ir jāinicializē pieci mainīgie:

  • SPN-Id - Tas ir jūsu pakalpojuma vadītājs ClientID. Tas tiek izmantots vēlāk, lai veiktu autentifikāciju pakalpojuma galvenā kontekstā. Ja izmantojat lietotājvārda/paroles kontekstu, varat izlaist šo mainīgo.
  • DBCapacity - Tas ir Float mainīgais patērētajai datu bāzes ietilpībai megabaitos.
  • FileCapacity - Tas ir Float mainīgais patērētajai faila ietilpībai megabaitos.
  • LogCapacity - Tas ir Float mainīgais patērētajai žurnāla ietilpībai megabaitos.
  • SimplifiedEnvironmentArray-Init - Šis ir masīva mainīgais, kuru mēs aizpildām ar dažiem vides rekvizītiem. Šis vienkāršo HTML tabulas pēdējās atskaites izvadi.

Izveidojiet piecus mainīgos.

Pēc tam mēs autentificējamies ar Microsoft Entra marķieri un izgūstam to, lai izsauktu Power Platform API. Ja neesat pabeidzis Microsoft Entra iestatīšanu, skatiet sadaļu Autentifikācija — mantota.

Šajā pamācībā mēs izmantojam atslēgas glabātuvi, lai glabātu savu pakalpojuma principāla slepeno vērtību. Šādi IT administrators šo vērtību var padarīt droši pieejamu jūsu darbplūsmai. Pēc tam tas tiek aizpildīts POST zvanā, lai Microsoft Entra izgūtu marķieri.

Pēc tam mēs parsējam Microsoft Entra marķiera atbilde drukātā objektā, izmantojot šo JSON shēmu darbībā "Parse JSON":

{
    "properties": {
        "access_token": {
            "type": "string"
        },
        "expires_in": {
            "type": "integer"
        },
        "ext_expires_in": {
            "type": "integer"
        },
        "token_type": {
            "type": "string"
        }
    },
    "type": "object"
}

Parsējiet marķiera Microsoft Entra atbilde drukātā objektā.

Ienest vides

Šajā sadaļā mēs iegūstam jūsu administrēto vides sarakstu. To var izdarīt ar API un PowerShell.

Izsaukt Vižu saraksta galapunktu

Tagad ir pienācis laiks piezvanīt Power Platform API. Izmantojiet saraksta vides galapunktu, lai izgūtu visas mūsu vides un to metadatus, jo īpaši ar noslodzes parametru $expand. Tas izmanto arī autorizācijas galveni ar uzrādītāja marķieri, ko iepriekšējā sadaļā saņēmām no Microsoft Entra ID. Ja izmantojāt lietotājvārda/paroles kontekstu, varat arī ievadīt šo nesēja marķieri arī šajā darbībā.

Izmantojiet saraksta vides galapunktu, lai izgūtu visas vides un to metadatus.

Pēc tam mēs parsējam Power Platform API atbilde drukātā objektā, izmantojot šo JSON shēmu ar darbību "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"
}

Parsējiet Power Platform API atbilde drukātā objektā.

Atkārtoti doties cauri Noslodzes objektam

Šī ir vissarežģītākā apmācībbas daļa. Šeit mēs izmantojam cilpu cilpas iekšpusē, lai iterētu katru vidi saraksta vides atbilde, un katrai videi ir noslodzes detaļu masīvs, ko mēs arī atkārtojam. Tas ļauj mums iegūt nepieciešamo informāciju par katru vides rindu mūsu kapacitātes atskaites tabulā.

Katram un parsēšana

Veiksim soli pa solim. Pirmkārt, mēs izmantojam vadīklu Katrai vadīklai, izmantojot Parse-List-Response izvades "vērtību":

Izmantojiet vadīklu Katram vadīklai, izmantojot izvades Parse-List-Response vērtību.

Tad mēs parsējam šo vienoto vidi drukātā objektā, izmantojot šo JSON shēmu:

{
    "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"
}

Tālāk mēs izmantojam vēl vienu Katrai vadīklai, izmantojot Parse-CurrentItem izejas "jaudu". Tad mēs to parsējam drukātā objektā, izmantojot šo JSON shēmu:

Katrai vadīklai, izmantojot Parse-CurrentItem izvades ietilpību.

Tagad mēs varam izmantot rekvizīta CapacityType vadīklu Pārslēgt no parses un noslodzes izvades. Tā ir vai nu "Database", "File" vai "Log" vērtība. Katrā pārslēgšanas pieteikumā saistītajā mainīgajā tveriet saistīto rekvizītu "actualConsumption". Tālāk norādītajā gadījumā tiek parādīts, ka mēs tveram datu bāzes noslodzi.

Izmantojiet slēdža vadīklu rekvizītā CapacityType no Parse-Capacity izvades.

Kā pēdējo darbību "Attiecībā uz katru vidi" mēs tagad pārskatā varam tvert detalizētu informāciju par vidi šai rindai. Izmantojot vērtību Pievienot masīvajai mainīgajai vadīklai, izmantojiet šādu JSON shēmu:

{
    "properties": {
        "actualConsumption": {
            "type": "number"
        },
        "capacityType": {
            "type": "string"
        },
        "capacityUnit": {
            "type": "string"
        },
        "ratedConsumption": {
            "type": "number"
        },
        "updatedOn": {
            "type": "string"
        }
    },
    "type": "object"
}

Uzņemiet detalizētu informāciju par vidi.

Atskaišu tabulas veidošana

Apsveicam, esat ticis līdz vieglajai daļai! Kad esam pilnībā aizpildījuši un vienkāršojuši vides noslodzes masīvu, varam to rādīt tabulas formātā.

HTML tabulu savienotāja izmantošana

Nodot vērtību tabulas savienotājam Izveidot HTML.

Palaižot loģikas programmu, mēs tagad varam redzēt HTML tabulas atskaites izvadi:

HTML tabulas atskaites izvade.

Šo atskaiti var arī nosūtīt pa e-pastu, lai šajā piemērā tiktu noslīdētas uz izmaksu grāmatvedības metodi, vai arī šos datus var saglabāt datu bāzē turpmākai analīzei un vēsturisko tendenču izveidei.