Partilhar via


Atualizar com a Automatização do Azure

Usando a Automação do Azure e os Runbooks do PowerShell, você pode executar operações automatizadas de atualização de dados em seus modelos tabulares do Azure Analysis.

O exemplo neste artigo usa o módulo SqlServer PowerShell. Um exemplo de Runbook do PowerShell, que demonstra a atualização de um modelo, é fornecido posteriormente neste artigo.

Autenticação

Todas as chamadas devem ser autenticadas com um token válido do Microsoft Entra ID (OAuth 2). O exemplo neste artigo usa uma entidade de serviço (SPN) para autenticar no Azure Analysis Services. Para saber mais, consulte Criar uma entidade de serviço usando o portal do Azure.

Pré-requisitos

Importante

O exemplo a seguir pressupõe que o firewall do Azure Analysis Services esteja desabilitado. Se um firewall estiver habilitado, o endereço IP público do iniciador da solicitação deverá ser incluído em uma regra de firewall.

  1. Na sua Conta de Automação do Azure, clique em Módulos e, em seguida, em Procurar galeria.

  2. Na barra de pesquisa, procure SqlServer.

    Módulos de pesquisa

  3. Selecione SqlServer e clique em Importar.

    Módulo de importação

  4. Clique em OK.

Criar uma entidade de serviço (SPN)

Para saber mais sobre como criar uma entidade de serviço, consulte Criar uma entidade de serviço usando o portal do Azure.

Configurar permissões no Azure Analysis Services

A entidade de serviço criada deve ter permissões de administrador do servidor no servidor. Para saber mais, consulte Adicionar uma entidade de serviço à função de administrador do servidor.

Projetar o Runbook de Automação do Azure

  1. Na Conta de Automação, crie um recurso de Credenciais que será usado para armazenar com segurança a Entidade de Serviço.

    Captura de tela que mostra a página

  2. Insira os detalhes da credencial. Em Nome de utilizador, introduza o ID da Aplicação da entidade de serviço (appid) e, em seguida, em Palavra-passe, introduza o Segredo da entidade de serviço.

    Criar credencial

  3. Importe o runbook de automação.

    Captura de tela que mostra a página

  4. Procure o arquivo Refresh-Model.ps1 , forneça um Nome e Descrição e clique em Criar.

    Nota

    Use o script da seção Runbook do PowerShell de exemplo na parte inferior deste documento para criar um arquivo chamado Refresh-Model.ps1 e salvar na máquina local para importar para o Runbook.

    Importar Runbook

  5. Quando o Runbook tiver sido criado, ele entrará automaticamente no modo de edição. Selecione Publicar.

    Publicar Runbook

    Nota

    O recurso de credencial que foi criado anteriormente é recuperado pelo runbook usando o comando Get-AutomationPSCredential . Esse comando é passado para o comando Invoke-ProcessASADatabase PowerShell para executar a autenticação no Azure Analysis Services.

  6. Teste o runbook clicando em Iniciar.

    Captura de tela que mostra a página

  7. Preencha os parâmetros DATABASENAME, ANALYSISSERVER e REFRESHTYPE e clique em OK. O parâmetro WEBHOOKDATA não é necessário quando o Runbook é executado manualmente.

    Iniciar o Runbook

Se o Runbook for executado com êxito, você receberá uma saída como a seguinte:

Execução bem-sucedida

Usar um Runbook de Automação do Azure independente

O Runbook pode ser configurado para disparar a atualização do modelo do Azure Analysis Services de forma agendada.

Isso pode ser configurado da seguinte maneira:

  1. No Runbook de Automação, clique em Agendas e, em seguida, em Adicionar uma Agenda.

    Criar agendamento

  2. Clique em Agendar>Criar uma nova agenda e preencha os detalhes.

    Configurar agendamento

  3. Clique em Criar.

  4. Preencha os parâmetros para o cronograma. Estes serão usados sempre que o Runbook for acionado. O parâmetro WEBHOOKDATA deve ser deixado em branco ao ser executado por meio de uma programação.

    Configurar os parâmetros

  5. Clique em OK.

Consuma com o Data Factory

Para consumir o runbook usando o Azure Data Factory, primeiro crie um Webhook para o runbook. O Webhook fornecerá uma URL que pode ser chamada por meio de uma atividade da Web do Azure Data Factory.

Importante

Para criar um Webhook, o status do Runbook deve ser Publicado.

  1. No seu Runbook de Automação, clique em Webhooks e, em seguida, clique em Adicionar Webhook.

    Adicionar Webhook

  2. Dê ao Webhook um nome e um prazo de validade. O nome identifica apenas o Webhook dentro do Runbook de Automação, não faz parte da URL.

    Atenção

    Certifique-se de copiar o URL antes de fechar o assistente, pois não é possível recuperá-lo depois de fechado.

    Configurar Webhook

    Os parâmetros para o webhook podem permanecer em branco. Ao configurar a atividade da Web do Azure Data Factory, os parâmetros podem ser passados para o corpo da chamada Web.

  3. No Data Factory, configure uma atividade da Web

Exemplo

Exemplo de atividade na Web

O URL é o URL criado a partir do Webhook.

O corpo é um documento JSON que deve conter as seguintes propriedades:

Property valor
AnalysisServicesDatabase O nome do banco de dados do Azure Analysis Services
Exemplo: AdventureWorksDB
AnalysisServicesServer O nome do servidor do Azure Analysis Services.
Exemplo: https://westus.asazure.windows.net/servers/myserver/models/AdventureWorks/
DatabaseRefreshType O tipo de atualização a ser executada.
Exemplo: Completo

Exemplo de corpo JSON:

{
    "AnalysisServicesDatabaseName": "AdventureWorksDB",
    "AnalysisServicesServer": "asazure://westeurope.asazure.windows.net/MyAnalysisServer",
    "DatabaseRefreshType": "Full"
}

Esses parâmetros são definidos no script runbook PowerShell. Quando a atividade da Web é executada, a carga JSON passada é WEBHOOKDATA.

Isso é desserializado e armazenado como parâmetros do PowerShell, que são usados pelo comando Invoke-ProcessASDatabase PowerShell.

Webhook desserializado

Usar um trabalhador híbrido com o Azure Analysis Services

Uma Máquina Virtual do Azure com um endereço IP público estático pode ser usada como um Trabalhador Híbrido de Automação do Azure. Esse endereço IP público pode ser adicionado ao firewall do Azure Analysis Services.

Importante

Verifique se o endereço IP público da Máquina Virtual está configurado como estático.

Para saber mais sobre como configurar o Azure Automation Hybrid Workers, consulte Instalação do Hybrid Runbook Worker.

Depois que um trabalhador híbrido estiver configurado, crie um Webhook conforme descrito na seção Consumir com o Data Factory. A única diferença aqui é selecionar a opção Run on>Hybrid Worker ao configurar o Webhook.

Exemplo de webhook usando o Hybrid Worker:

Exemplo de Webhook de trabalhador híbrido

Runbook de exemplo do PowerShell

O trecho de código a seguir é um exemplo de como executar a atualização do modelo do Azure Analysis Services usando um Runbook do PowerShell.

param
(
    [Parameter (Mandatory = $false)]
    [object] $WebhookData,

    [Parameter (Mandatory = $false)]
    [String] $DatabaseName,
    [Parameter (Mandatory = $false)]
    [String] $AnalysisServer,
    [Parameter (Mandatory = $false)]
    [String] $RefreshType
)

$_Credential = Get-AutomationPSCredential -Name "ServicePrincipal"

# If runbook was called from Webhook, WebhookData will not be null.
if ($WebhookData)
{ 
    # Retrieve AAS details from Webhook request body
    $atmParameters = (ConvertFrom-Json -InputObject $WebhookData.RequestBody)
    Write-Output "CredentialName: $($atmParameters.CredentialName)"
    Write-Output "AnalysisServicesDatabaseName: $($atmParameters.AnalysisServicesDatabaseName)"
    Write-Output "AnalysisServicesServer: $($atmParameters.AnalysisServicesServer)"
    Write-Output "DatabaseRefreshType: $($atmParameters.DatabaseRefreshType)"
    
    $_databaseName = $atmParameters.AnalysisServicesDatabaseName
    $_analysisServer = $atmParameters.AnalysisServicesServer
    $_refreshType = $atmParameters.DatabaseRefreshType
 
    Invoke-ProcessASDatabase -DatabaseName $_databaseName -RefreshType $_refreshType -Server $_analysisServer -ServicePrincipal -Credential $_credential
}
else 
{
    Invoke-ProcessASDatabase -DatabaseName $DatabaseName -RefreshType $RefreshType -Server $AnalysisServer -ServicePrincipal -Credential $_Credential
}

Próximos passos

Amostras
API REST