Introdução

Concluído

Desenvolver uma solução de automatização é útil quando precisa de reproduzir operações de gestão. A automatização resulta numa gestão de soluções mais rápida e precisa.

Quando está a desenvolver aplicações que incorporam conteúdos do Power BI, estão disponíveis muitas oportunidades para automatizar, incluindo a gestão do ciclo de vida, a adição de novos inquilinos (clientes) numa aplicação de vários inquilinos e várias operações de TI.

Eis três bibliotecas de automatização que pode utilizar:

  • Microsoft Graph

  • Microsoft Power BI REST API

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

Microsoft Graph

O Microsoft Graph fornece um modelo de programação unificado. Expõe as APIs REST e uma biblioteca de cliente para aceder a dados e realizar operações em vários serviços cloud da Microsoft. De relevância para automatizar soluções do Power BI, o Microsoft Graph pode configurar Microsoft Azure Active Directory objetos de segurança. Os scripts da sua aplicação ou do PowerShell podem invocar Graph API chamadas.

O script seguinte mostra como instalar o módulo Azure AD PowerShell para o Graph no PowerShell. Para obter mais informações, veja Instalar o PowerShell do Azure Active Directory para o Graph.

Install-Module -Name AzureAD

Os seguintes blocos de código contribuem para a primeira parte de um script de configuração do PowerShell para configurar objetos de segurança para uma nova aplicação que incorpora conteúdos do Power BI. Especificamente, os blocos de código mostram como concluir as seguintes ações (por ordem):

  1. Gerar um segredo da aplicação Azure AD

  2. Criar um registo de aplicações Azure AD

  3. Criar o principal de serviço do registo de aplicações Azure AD

  4. Atribuir o utilizador atual como o proprietário do registo de aplicações Azure AD

  5. Adicionar o principal de serviço ao grupo de segurança aplicações do Power BI

O primeiro bloco de código inicializa duas variáveis. A $appDisplayName variável armazena o novo Azure AD nome da aplicação e a $adSecurityGroupName variável armazena o nome de um grupo de segurança existente. Nas definições de inquilino do Power BI, um administrador do Power BI já atribuiu este grupo de segurança ao permitir a utilização de principais de serviço.

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

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

O bloco de código seguinte liga-se a uma conta autenticada para utilizar Azure AD pedidos de cmdlets. Também inicializa variáveis com factos úteis sobre o inquilino e a conta de utilizador atual. Estes factos são utilizados por blocos de código subsequentes.

$authResult = Connect-AzureAD

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

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

O bloco de código seguinte gera um segredo da aplicação que se torna a palavra-passe de um registo de aplicações Azure AD. O segredo da aplicação baseia-se num GUID e é válido durante um ano a partir da data atual.

# 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

O bloco de código seguinte cria uma Azure AD registo de aplicações com o segredo da aplicação.

# 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

O bloco de código seguinte cria o principal de serviço do registo de aplicações. Também atribui o utilizador atual como proprietário e adiciona o principal de serviço ao grupo de segurança.

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

As seguintes variáveis de script contêm informações úteis para a sua aplicação. Os respetivos valores devem ser escritos e adicionados ao ficheiro de .config da aplicação.

  • $tenantDomain- Necessário para autenticar com Azure AD.

  • $tenantId- Necessário para autenticar com Azure AD.

  • $appId- Necessário para gerar um token de acesso Azure AD.

  • $appSecret- Necessário para gerar um token de acesso Azure AD. No entanto, os segredos não devem ser implementados com a aplicação. Em vez disso, devem ser acedidos através de um meio controlado, como variáveis de ambiente ou Key Vault do Microsoft Azure. Para obter mais informações, veja Armazenamento seguro de segredos de aplicações em desenvolvimento no ASP.NET Core.

A $serviceServicePrincipalObjectId variável armazena uma referência ao novo principal de serviço. No tópico seguinte, uma continuação do script utilizará esta variável.

Power BI REST API

A API REST do Power BI fornece pontos finais de serviço para incorporar, administração, governação e recursos de utilizador. De relevância para automatizar soluções do Power BI, a API REST do Power BI pode concluir as seguintes tarefas:

  • Criar áreas de trabalho

  • Atribuir uma área de trabalho a uma capacidade

  • Configurar o acesso à área de trabalho

  • Criar e configurar conteúdo do Power BI

O script seguinte mostra como instalar o módulo de gestão do Power BI no PowerShell. Para obter mais informações, veja Cmdlets do Microsoft Power BI para Windows PowerShell e PowerShell Core.

Install-Module -Name MicrosoftPowerBIMgmt

Os seguintes blocos de código contribuem para a segunda parte de um script de configuração do PowerShell. É uma continuação do script que descrevemos no tópico anterior. Os blocos de código configuram o ambiente do Power BI. Especificamente, mostram como concluir as seguintes tarefas:

  • Crie uma área de trabalho.

  • Adicione um principal de serviço como administrador da área de trabalho.

  • Importe um ficheiro Power BI Desktop para criar um conjunto de dados e um relatório.

O primeiro bloco de código inicializa duas variáveis. A $workspaceName variável armazena o novo nome da área de trabalho e a $pbixFilePath variável armazena o caminho do ficheiro para um ficheiro 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"

O bloco de código seguinte liga-se ao serviço Power BI com uma conta autenticada. Em seguida, tenta obter uma referência à área de trabalho. Se a tentativa falhar (porque a área de trabalho não existe), cria a área de trabalho. Por fim, a $workspaceId variável armazena o ID da área de trabalho (denominado 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

O bloco de código seguinte adiciona o principal de serviço como administrador da área de trabalho.

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

O bloco de código seguinte importa um ficheiro de Power BI Desktop para a nova área de trabalho.

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

A $workspaceId variável contém informações úteis para a sua aplicação. Deve escrever o valor da variável e adicioná-lo ao ficheiro de .config da aplicação. Pode utilizar a variável para enumerar artefactos da área de trabalho para obter as propriedades necessárias para os incorporar.

Power BI Embedded API REST do ARM

A Power BI Embedded API REST do ARM permite-lhe criar, obter, atualizar e eliminar capacidades de Power BI Embedded.

Nota

Não pode utilizar esta API para gerir capacidades de Power BI Premium. Para obter mais informações, veja Configurar e gerir capacidades no Power BI Premium.

Pode utilizar a operação Atualização para dimensionar um recurso de capacidade; por exemplo, quando ocorre um aumento repentino da procura de recursos computacionais. Outras operações suspendem ou retomam uma capacidade.

Nota

Para saber mais sobre como gerir recursos de capacidade e dimensionar, veja o módulo Selecionar um produto de análise incorporado do Power BI .

Para obter mais informações, veja Power BI Embedded referência da API REST do Azure Resource Manager.