Úvod

Dokončeno

Vývoj řešení automatizace je užitečný, když potřebujete reprodukovat operace správy. Automatizace vede k rychlejší a přesnější správě řešení.

Při vývoji aplikací, které vkládají obsah Power BI, máte k dispozici řadu příležitostí k automatizaci, včetně správy životního cyklu, přidávání nových tenantů (zákazníků) do víceklientské aplikace a různých operací IT.

Tady jsou tři knihovny automatizace, které můžete použít:

  • Microsoft Graph

  • Microsoft Power BI REST API

  • Power BI Embedded rozhraní REST API služby Azure Resource Manager (ARM)

Microsoft Graph

Microsoft Graph poskytuje jednotný model programovatelnosti. Zpřístupňuje rozhraní REST API a klientskou knihovnu pro přístup k datům a provádění operací v různých cloudových službách Microsoftu. Microsoft Graph je relevantní pro automatizaci řešení Power BI a může nastavit Microsoft Azure Active Directory objekty zabezpečení. Vaše skripty aplikace nebo PowerShellu můžou volat Graph API volání.

Následující skript ukazuje, jak nainstalovat modul Azure AD PowerShellu pro Graph v PowerShellu. Další informace najdete v tématu Instalace Azure Active Directory PowerShellu pro Graph.

Install-Module -Name AzureAD

Následující bloky kódu přispívají k první části instalačního skriptu PowerShellu pro nastavení objektů zabezpečení pro novou aplikaci, která vkládá obsah Power BI. Konkrétně bloky kódu ukazují, jak provést následující akce (v tomto pořadí):

  1. Vygenerování tajného kódu aplikace Azure AD

  2. Vytvoření registrace aplikace Azure AD

  3. Vytvoření instančního objektu registrace aplikace Azure AD

  4. Přiřazení aktuálního uživatele jako vlastníka registrace aplikace Azure AD

  5. Přidání instančního objektu do skupiny zabezpečení Aplikací Power BI

První blok kódu inicializuje dvě proměnné. Proměnná $appDisplayName ukládá nový název aplikace Azure AD a $adSecurityGroupName proměnná ukládá název existující skupiny zabezpečení. V nastavení tenanta Power BI už správce Power BI tuto skupinu zabezpečení přiřadil, když povoluje použití instančních objektů.

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

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

Další blok kódu se připojí k ověřenému účtu a použije Azure AD žádosti rutin. Inicializuje také proměnné s užitečnými fakty o tenantovi a aktuálním uživatelském účtu. Tato fakta se používají v následných blocích kódu.

$authResult = Connect-AzureAD

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

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

Další blok kódu vygeneruje tajný kód aplikace, který se stane heslem pro registraci Azure AD aplikace. Tajný kód aplikace je založený na identifikátoru GUID a je platný jeden rok od aktuálního data.

# 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

Další blok kódu vytvoří registraci aplikace Azure AD pomocí tajného kódu aplikace.

# 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

Další blok kódu vytvoří instanční objekt registrace aplikace. Přiřadí také aktuálního uživatele jako vlastníka a přidá instanční objekt do skupiny zabezpečení.

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

Následující proměnné skriptu obsahují užitečné informace pro vaši aplikaci. Jejich hodnoty by se měly zapsat a přidat do souboru .config aplikace.

  • $tenantDomain– Vyžaduje se k ověření pomocí Azure AD.

  • $tenantId– Vyžaduje se k ověření pomocí Azure AD.

  • $appId– Vyžaduje se k vygenerování přístupového tokenu Azure AD.

  • $appSecret– Vyžaduje se k vygenerování přístupového tokenu Azure AD. Tajné kódy by se ale neměly nasazovat s aplikací. Místo toho by se k nim mělo přistupovat prostřednictvím kontrolovaných prostředků, jako jsou proměnné prostředí nebo microsoft azure Key Vault. Další informace najdete v tématu Bezpečné ukládání tajných kódů aplikací při vývoji v ASP.NET Core.

Proměnná $serviceServicePrincipalObjectId ukládá odkaz na nový instanční objekt. V dalším tématu bude pokračování skriptu používat tuto proměnnou.

Power BI REST API

Rozhraní REST API Power BI poskytuje koncové body služby pro vkládání, správu, zásady správného řízení a prostředky uživatelů. Rozhraní REST API Power BI, které je relevantní pro automatizaci řešení Power BI, může provádět následující úlohy:

  • Vytvoření pracovních prostorů

  • Přiřazení pracovního prostoru ke kapacitě

  • Nastavení přístupu k pracovnímu prostoru

  • Vytvoření a nastavení obsahu Power BI

Následující skript ukazuje, jak nainstalovat modul pro správu Power BI v PowerShellu. Další informace najdete v tématu Rutiny Microsoft Power BI pro Windows PowerShell a PowerShell Core.

Install-Module -Name MicrosoftPowerBIMgmt

Následující bloky kódu přispívají k druhé části instalačního skriptu PowerShellu. Je to pokračování skriptu, který jsme popsali v předchozím tématu. Bloky kódu nastaví prostředí Power BI. Konkrétně ukazují, jak provést následující úlohy:

  • Vytvoření pracovního prostoru.

  • Přidejte instanční objekt jako správce pracovního prostoru.

  • Importem souboru Power BI Desktop vytvořte datovou sadu a sestavu.

První blok kódu inicializuje dvě proměnné. Proměnná $workspaceName uloží název nového pracovního prostoru a $pbixFilePath proměnná uloží cestu k souboru Power BI Desktop souboru.

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

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

Další blok kódu se připojí k služba Power BI s ověřeným účtem. Potom se pokusí načíst odkaz na pracovní prostor. Pokud se pokus nezdaří (protože pracovní prostor neexistuje), vytvoří pracovní prostor. Nakonec proměnná $workspaceId uloží ID pracovního prostoru (označované jako 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

Další blok kódu přidá instanční objekt jako správce pracovního prostoru.

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

Další blok kódu importuje soubor Power BI Desktop do nového pracovního prostoru.

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

Proměnná $workspaceId obsahuje užitečné informace pro vaši aplikaci. Hodnotu proměnné byste měli zapsat a přidat ji do souboru .config aplikace. Proměnnou můžete použít k vytvoření výčtu artefaktů pracovního prostoru k načtení vlastností potřebných k jejich vložení.

Power BI Embedded ARM REST API

Rozhraní REST API Power BI Embedded ARM umožňuje vytvářet, načítat, aktualizovat a odstraňovat kapacity Power BI Embedded.

Poznámka

Toto rozhraní API nemůžete použít ke správě kapacit Power BI Premium. Další informace najdete v tématu Konfigurace a správa kapacit v Power BI Premium.

Ke škálování prostředku kapacity můžete použít operaci aktualizace . například když dojde k náhlému zvýšení poptávky po výpočetních prostředcích. Jiné operace pozastaví nebo obnoví kapacitu.

Poznámka

Další informace o správě prostředků kapacity a škálování najdete v modulu Výběr produktu Power BI Embedded Analytics .

Další informace najdete v referenčních informacích k rozhraní REST API Power BI Embedded Azure Resource Manager.