Wprowadzenie

Ukończone

Opracowywanie rozwiązania automatyzacji jest przydatne, gdy trzeba odtworzyć operacje zarządzania. Automatyzacja pozwala szybciej i dokładniej zarządzać rozwiązaniami.

Podczas opracowywania aplikacji, które osadzają zawartość usługi Power BI, dostępnych jest wiele możliwości automatyzacji, w tym zarządzanie cyklem życia, dodawanie nowych dzierżaw (klientów) w aplikacji z wieloma dzierżawami i różne operacje IT.

Oto trzy biblioteki automatyzacji, których można użyć:

  • Microsoft Graph

  • Microsoft Power BI REST API

  • interfejs API REST Power BI Embedded Azure Resource Manager (ARM)

Microsoft Graph

Program Microsoft Graph zapewnia ujednolicony model programowania. Uwidacznia interfejsy API REST i bibliotekę klienta w celu uzyskiwania dostępu do danych i wykonywania operacji na różnych usługach w chmurze firmy Microsoft. Ze względu na istotność automatyzacji rozwiązań usługi Power BI program Microsoft Graph może skonfigurować Microsoft Azure Active Directory obiektów zabezpieczeń. Skrypty aplikacji lub programu PowerShell mogą wywoływać wywołania interfejs Graph API.

Poniższy skrypt pokazuje, jak zainstalować moduł Azure AD PowerShell dla programu Graph w programie PowerShell. Aby uzyskać więcej informacji, zobacz Instalowanie programu PowerShell usługi Azure Active Directory dla programu Graph.

Install-Module -Name AzureAD

Poniższe bloki kodu współtworzyją pierwszą część skryptu konfiguracji programu PowerShell w celu skonfigurowania obiektów zabezpieczeń dla nowej aplikacji, która osadza zawartość usługi Power BI. W szczególności bloki kodu pokazują, jak wykonać następujące akcje (w podanej kolejności):

  1. Generowanie wpisu tajnego aplikacji Azure AD

  2. Tworzenie rejestracji aplikacji Azure AD

  3. Tworzenie jednostki usługi rejestracji aplikacji Azure AD

  4. Przypisywanie bieżącego użytkownika jako właściciela rejestracji aplikacji Azure AD

  5. Dodawanie jednostki usługi do grupy zabezpieczeń usługi Power BI Apps

Pierwszy blok kodu inicjuje dwie zmienne. Zmienna $appDisplayName przechowuje nową nazwę aplikacji Azure AD, a $adSecurityGroupName zmienna przechowuje nazwę istniejącej grupy zabezpieczeń. W ustawieniach dzierżawy usługi Power BI administrator usługi Power BI przypisał już tę grupę zabezpieczeń, zezwalając na korzystanie z jednostek usługi.

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

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

Następny blok kodu łączy się z uwierzytelnionymi kontami, aby używać Azure AD żądań poleceń cmdlet. Inicjuje również zmienne z przydatnymi faktami dotyczącymi dzierżawy i bieżącego konta użytkownika. Te fakty są używane przez kolejne bloki kodu.

$authResult = Connect-AzureAD

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

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

Następny blok kodu generuje wpis tajny aplikacji, który staje się hasłem do rejestracji aplikacji Azure AD. Wpis tajny aplikacji jest oparty na identyfikatorze GUID i jest ważny przez jeden rok od bieżącej daty.

# 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

Następny blok kodu tworzy rejestrację aplikacji Azure AD przy użyciu wpisu tajnego aplikacji.

# 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

Następny blok kodu tworzy jednostkę usługi rejestracji aplikacji. Przypisuje również bieżącego użytkownika jako właściciela i dodaje jednostkę usługi do grupy zabezpieczeń.

# 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)

Poniższe zmienne skryptu zawierają przydatne informacje dotyczące aplikacji. Ich wartości powinny być zapisywane i dodawane do pliku .config aplikacji.

  • $tenantDomain— Wymagane do uwierzytelnienia przy użyciu Azure AD.

  • $tenantId— Wymagane do uwierzytelnienia przy użyciu Azure AD.

  • $appId— Wymagane do wygenerowania tokenu dostępu Azure AD.

  • $appSecret— Wymagane do wygenerowania tokenu dostępu Azure AD. Nie należy jednak wdrażać wpisów tajnych za pomocą aplikacji. Zamiast tego należy uzyskiwać do nich dostęp za pośrednictwem kontrolowanych środków, takich jak zmienne środowiskowe lub microsoft Azure Key Vault. Aby uzyskać więcej informacji, zobacz Bezpieczny magazyn wpisów tajnych aplikacji w programowaniu w ASP.NET Core.

Zmienna $serviceServicePrincipalObjectId przechowuje odwołanie do nowej jednostki usługi. W następnym temacie kontynuacja skryptu będzie używać tej zmiennej.

Power BI REST API

Interfejs API REST usługi Power BI udostępnia punkty końcowe usługi na potrzeby osadzania, administrowania, ładu i zasobów użytkowników. Ze względu na znaczenie automatyzacji rozwiązań usługi Power BI interfejs API REST usługi Power BI może wykonywać następujące zadania:

  • Tworzenie obszarów roboczych

  • Przypisywanie obszaru roboczego do pojemności

  • Konfigurowanie dostępu do obszaru roboczego

  • Tworzenie i konfigurowanie zawartości usługi Power BI

Poniższy skrypt pokazuje, jak zainstalować moduł zarządzania usługi Power BI w programie PowerShell. Aby uzyskać więcej informacji, zobacz Polecenia cmdlet usługi Microsoft Power BI dla Windows PowerShell i programu PowerShell Core.

Install-Module -Name MicrosoftPowerBIMgmt

Poniższe bloki kodu współtworzyją drugą część skryptu konfiguracji programu PowerShell. Jest to kontynuacja skryptu opisanego w poprzednim temacie. Bloki kodu konfigurują środowisko usługi Power BI. W szczególności pokazują, jak wykonać następujące zadania:

  • Tworzenie obszaru roboczego.

  • Dodaj jednostkę usługi jako administratora obszaru roboczego.

  • Zaimportuj plik Power BI Desktop, aby utworzyć zestaw danych i raport.

Pierwszy blok kodu inicjuje dwie zmienne. Zmienna $workspaceName przechowuje nazwę nowego obszaru roboczego, a $pbixFilePath zmienna przechowuje ścieżkę pliku do pliku Power BI Desktop.

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

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

Następny blok kodu łączy się z usługa Power BI przy użyciu uwierzytelnionego konta. Następnie próbuje pobrać odwołanie do obszaru roboczego. Jeśli próba nie powiedzie się (ponieważ obszar roboczy nie istnieje), zostanie utworzony obszar roboczy. Na koniec zmienna $workspaceId przechowuje identyfikator obszaru roboczego (o nazwie GroupID).

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

Następny blok kodu dodaje jednostkę usługi jako administratora obszaru roboczego.

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

Następny blok kodu importuje plik Power BI Desktop do nowego obszaru roboczego.

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

Zmienna $workspaceId zawiera przydatne informacje dotyczące aplikacji. Należy zapisać wartość zmiennej i dodać ją do pliku .config aplikacji. Możesz użyć zmiennej , aby wyliczyć artefakty obszaru roboczego, aby pobrać właściwości wymagane do ich osadzenia.

interfejs API REST usługi Power BI Embedded ARM

Interfejs API REST usługi POWER BI EMBEDDED ARM umożliwia tworzenie, pobieranie, aktualizowanie i usuwanie pojemności Power BI Embedded.

Uwaga

Nie można użyć tego interfejsu API do zarządzania pojemnościami Power BI Premium. Aby uzyskać więcej informacji, zobacz Konfigurowanie pojemności i zarządzanie nimi w Power BI Premium.

Za pomocą operacji Aktualizuj można skalować zasób pojemności; na przykład w przypadku nagłego wzrostu zapotrzebowania na zasoby obliczeniowe. Inne operacje wstrzymuje lub wznawia pojemność.

Uwaga

Aby dowiedzieć się więcej o zarządzaniu zasobami pojemności i skalowaniem, zobacz moduł Select a Power BI embedded analytics product (Wybieranie osadzonej analizy usługi Power BI ).

Aby uzyskać więcej informacji, zobacz dokumentację interfejsu API REST Power BI Embedded Azure Resource Manager.