Inleiding

Voltooid

Het ontwikkelen van een automatiseringsoplossing is handig wanneer u beheerbewerkingen wilt reproduceren. Automatisering resulteert in sneller en nauwkeuriger oplossingsbeheer.

Wanneer u apps ontwikkelt die Power BI-inhoud insluit, kunt u veel mogelijkheden automatiseren, waaronder levenscyclusbeheer, het toevoegen van nieuwe tenants (klanten) in een multitenancy-app en verschillende IT-bewerkingen.

Hier volgen drie automatiseringsbibliotheken die u kunt gebruiken:

  • Microsoft Graph

  • Microsoft Power BI REST API

  • POWER BI EMBEDDED REST API voor Azure Resource Manager (ARM)

Microsoft Graph

Microsoft Graph biedt een geïntegreerd programmeerbaarheidsmodel. Het maakt REST API's en een clientbibliotheek beschikbaar om toegang te krijgen tot gegevens en bewerkingen uit te voeren op verschillende Microsoft-cloudservices. Microsoft Graph is van belang voor het automatiseren van Power BI-oplossingen en kan Microsoft Azure Active Directory beveiligingsobjecten instellen. Uw app- of PowerShell-scripts kunnen Graph API aanroepen.

Het volgende script laat zien hoe u de Azure AD PowerShell-module voor Graph installeert in PowerShell. Zie Azure Active Directory PowerShell voor Graph installeren voor meer informatie.

Install-Module -Name AzureAD

De volgende codeblokken dragen bij aan het eerste deel van een PowerShell-installatiescript voor het instellen van beveiligingsobjecten voor een nieuwe app die Power BI-inhoud insluit. De codeblokken laten zien hoe u de volgende acties (in volgorde) uitvoert:

  1. Een Azure AD-app-geheim genereren

  2. Een Azure AD-app-registratie maken

  3. De service-principal van de Azure AD app-registratie maken

  4. De huidige gebruiker toewijzen als de eigenaar van de Azure AD app-registratie

  5. De service-principal toevoegen aan de beveiligingsgroep van Power BI-apps

Het eerste codeblok initialiseert twee variabelen. De $appDisplayName variabele slaat de nieuwe Azure AD app-naam op en de $adSecurityGroupName variabele slaat de naam van een bestaande beveiligingsgroep op. In de instellingen van de Power BI-tenant heeft een Power BI-beheerder deze beveiligingsgroep al toegewezen bij het toestaan van het gebruik van service-principals.

# The new app display name
$appDisplayName = "My app"

# The name of an existing security group
$adSecurityGroupName = "Power BI Apps"

Het volgende codeblok maakt verbinding met een geverifieerd account om Azure AD cmdlet-aanvragen te gebruiken. Ook worden variabelen geïnitialiseerd met nuttige feiten over de tenant en het huidige gebruikersaccount. Deze feiten worden gebruikt door volgende codeblokken.

$authResult = Connect-AzureAD

$tenantId = $authResult.TenantId.ToString()
$tenantDomain = $authResult.TenantDomain

$userAccountId = $authResult.Account.Id
$user = Get-AzureADUser -ObjectId $userAccountId

Het volgende codeblok genereert een app-geheim dat het wachtwoord wordt voor een Azure AD app-registratie. Het app-geheim is gebaseerd op een GUID en is één jaar geldig vanaf de huidige datum.

# Generate an app secret
$newGuid = New-Guid
$appSecret = ([System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes(($newGuid))))+"="
$startDate = Get-Date
$passwordCredential = New-Object -TypeName Microsoft.Open.AzureAD.Model.PasswordCredential
$passwordCredential.StartDate = $startDate
$passwordCredential.EndDate = $startDate.AddYears(1)
$passwordCredential.KeyId = $newGuid
$passwordCredential.Value = $appSecret

Het volgende codeblok maakt een Azure AD app-registratie met behulp van het app-geheim.

# Create an Azure AD app
$replyUrl = "https://localhost:5001/signin-oidc"

$aadApplication = New-AzureADApplication `
    -DisplayName $appDisplayName `
    -PublicClient $false `
    -AvailableToOtherTenants $false `
    -ReplyUrls @($replyUrl) `
    -Homepage $replyUrl `
    -PasswordCredentials $passwordCredential

In het volgende codeblok wordt de service-principal van de app-registratie gemaakt. Ook wordt de huidige gebruiker toegewezen als eigenaar en wordt de service-principal toegevoegd aan de beveiligingsgroep.

# Create the app's service principal
$appId = $aadApplication.AppId
$appObjectId = $aadApplication.ObjectId
$serviceServicePrincipal = New-AzureADServicePrincipal -AppId $appId
$serviceServicePrincipalObjectId = $serviceServicePrincipal.ObjectId

# Assign the current user as the app owner
Add-AzureADApplicationOwner -ObjectId $aadApplication.ObjectId -RefObjectId $user.ObjectId

# Add the service principal to the security group
Add-AzureADGroupMember -ObjectId $($adSecurityGroup.ObjectId) `
    -RefObjectId $($serviceServicePrincipalObjectId)

De volgende scriptvariabelen bevatten nuttige informatie voor uw app. De waarden moeten worden geschreven en toegevoegd aan het .config-bestand van de app.

  • $tenantDomain- Vereist voor verificatie met Azure AD.

  • $tenantId- Vereist voor verificatie met Azure AD.

  • $appId- Vereist om een Azure AD toegangstoken te genereren.

  • $appSecret- Vereist om een Azure AD toegangstoken te genereren. Geheimen mogen echter niet worden geïmplementeerd met de app. In plaats daarvan moeten ze worden geopend via een gecontroleerde methode, zoals omgevingsvariabelen of Microsoft Azure Key Vault. Zie Veilige opslag van app-geheimen in ontwikkeling in ASP.NET Core voor meer informatie.

Met de $serviceServicePrincipalObjectId variabele wordt een verwijzing naar de nieuwe service-principal opgeslagen. In het volgende onderwerp wordt deze variabele gebruikt voor een vervolg van het script.

Power BI REST API

De Power BI REST API biedt service-eindpunten voor insluiten, beheer, governance en gebruikersresources. De Power BI REST API is van belang voor het automatiseren van Power BI-oplossingen en kan de volgende taken uitvoeren:

  • Werkruimten maken

  • Werkruimte toewijzen aan een capaciteit

  • Werkruimtetoegang instellen

  • Power BI-inhoud maken en instellen

Het volgende script laat zien hoe u de Power BI-beheermodule installeert in PowerShell. Zie Microsoft Power BI-cmdlets voor Windows PowerShell en PowerShell Core voor meer informatie.

Install-Module -Name MicrosoftPowerBIMgmt

De volgende codeblokken dragen bij aan het tweede deel van een PowerShell-installatiescript. Het is een vervolg op het script dat we in het vorige onderwerp hebben beschreven. De codeblokken stellen de Power BI-omgeving in. Ze laten zien hoe u de volgende taken uitvoert:

  • Maak een werkruimte.

  • Voeg een service-principal toe als werkruimtebeheerder.

  • Importeer een Power BI Desktop-bestand om een gegevensset en rapport te maken.

Het eerste codeblok initialiseert twee variabelen. De $workspaceName variabele slaat de naam van de nieuwe werkruimte op en de $pbixFilePath variabele slaat het bestandspad op naar een Power BI Desktop-bestand.

# The new workspace name
$workspaceName = "Sales Reporting"

# The file path to a Power BI Desktop file (.pbix)
$pbixFilePath = "D:\Sales Analysis.pbix"

Het volgende codeblok maakt verbinding met de Power BI-service met een geverifieerd account. Vervolgens wordt geprobeerd een verwijzing naar de werkruimte op te halen. Als de poging mislukt (omdat de werkruimte niet bestaat), wordt de werkruimte gemaakt. Ten slotte slaat de $workspaceId variabele de werkruimte-id (groupID) op.

Connect-PowerBIServiceAccount

# Create the workspace (if it doesn't already exist)
$workspace = Get-PowerBIWorkspace -Name $workspaceName

if (!$workspace) {
    $workspace = New-PowerBIWorkspace -Name $workspaceName
}

$workspaceId = $workspace.Id

In het volgende codeblok wordt de service-principal toegevoegd als werkruimtebeheerder.

# Add the service principal as a workspace admin
Add-PowerBIWorkspaceUser -Scope Organization `
    -Id $workspaceId `
    -AccessRight Admin `
    -Identifier $serviceServicePrincipalObjectId `
    -PrincipalType App

Het volgende codeblok importeert een Power BI Desktop-bestand in de nieuwe werkruimte.

# Import the Power BI Desktop file
$import = New-PowerBIReport -Path $pbixFilePath -Workspace $workspace -ConflictAction CreateOrOverwrite

De $workspaceId variabele bevat nuttige informatie voor uw app. U moet de waarde van de variabele schrijven en toevoegen aan het .config-bestand van de app. U kunt de variabele gebruiken om werkruimteartefacten op te sommen om eigenschappen op te halen die nodig zijn om ze in te sluiten.

Power BI Embedded ARM REST API

Met de Power BI Embedded ARM REST API kunt u Power BI Embedded capaciteiten maken, ophalen, bijwerken en verwijderen.

Notitie

U kunt deze API niet gebruiken voor het beheren van Power BI Premium capaciteiten. Zie Capaciteiten in Power BI Premium configureren en beheren voor meer informatie.

U kunt de updatebewerking gebruiken om een capaciteitsresource te schalen; bijvoorbeeld wanneer een plotselinge toename van de vraag naar rekenresources optreedt. Andere bewerkingen onderbreken of hervatten een capaciteit.

Notitie

Zie de productmodule Een ingesloten analyse van Power BI selecteren voor meer informatie over het beheren van capaciteitsresources en de schaal.

Zie naslaginformatie Power BI Embedded Azure Resource Manager REST API voor meer informatie.