Dela via


Uppdatera med Azure Automation

Genom att använda Azure Automation och PowerShell Runbooks kan du utföra automatiserade datauppdateringsåtgärder på dina Azure Analysis-tabellmodeller.

I exemplet i den här artikeln används SqlServer PowerShell-modulen. Ett exempel på En PowerShell-runbook som visar hur du uppdaterar en modell finns senare i den här artikeln.

Autentisering

Alla anrop måste autentiseras med en giltig OAuth 2-token (Microsoft Entra ID). Exemplet i den här artikeln använder ett tjänsthuvudnamn (SPN) för att autentisera till Azure Analysis Services. Mer information finns i Skapa ett huvudnamn för tjänsten med hjälp av Azure Portal.

Förutsättningar

Viktigt!

I följande exempel förutsätter vi att Azure Analysis Services-brandväggen är inaktiverad. Om en brandvägg är aktiverad måste den offentliga IP-adressen för begärandeinitieraren inkluderas i en brandväggsregel.

  1. I ditt Azure Automation-konto klickar du på Moduler och sedan på Bläddra i galleriet.

  2. Sök efter SqlServer i sökfältet.

    Sökmoduler

  3. Välj SqlServer och klicka sedan på Importera.

    Importera modul

  4. Klicka på OK.

Skapa ett tjänsthuvudnamn (SPN)

Mer information om hur du skapar ett huvudnamn för tjänsten finns i Skapa ett huvudnamn för tjänsten med hjälp av Azure Portal.

Konfigurera behörigheter i Azure Analysis Services

Tjänstens huvudnamn som du skapar måste ha serveradministratörsbehörighet på servern. Mer information finns i Lägga till ett huvudnamn för tjänsten till serveradministratörsrollen.

Utforma Azure Automation Runbook

  1. I Automation-kontot skapar du en resurs för autentiseringsuppgifter som ska användas för att lagra tjänstens huvudnamn på ett säkert sätt.

    Skärmbild som visar sidan

  2. Ange information om autentiseringsuppgifterna. I Användarnamn anger du program-ID för tjänstens huvudnamn (appid) och anger sedan tjänstens huvudnamnshemlighet i Lösenord.

    Skapa autentiseringsuppgift

  3. Importera Automation Runbook.

    Skärmbild som visar sidan

  4. Bläddra efter filen Refresh-Model.ps1, ange ett namn och en beskrivning och klicka sedan på Skapa.

    Kommentar

    Använd skript från PowerShell Runbook-exempelavsnittet längst ned i det här dokumentet för att skapa en fil med namnet Refresh-Model.ps1 och spara på den lokala datorn för att importera till Runbook.

    Importera Runbook

  5. När Runbook har skapats går den automatiskt i redigeringsläge. Välj Publicera.

    Publicera Runbook

    Kommentar

    Den autentiseringsresurs som skapades tidigare hämtas av runbooken med hjälp av kommandot Get-AutomationPSCredential . Det här kommandot skickas sedan till kommandot Invoke-ProcessASADatabase PowerShell för att utföra autentiseringen till Azure Analysis Services.

  6. Testa runbooken genom att klicka på Start.

    Skärmbild som visar sidan Översikt med åtgärden

  7. Fyll i parametrarna DATABASENAME, ANALYSISSERVER och REFRESHTYPE och klicka sedan på OK. Parametern WEBHOOKDATA krävs inte när Runbook körs manuellt.

    Starta Runbook

Om Runbook har körts får du utdata som liknar följande:

Lyckad körning

Använda en fristående Azure Automation Runbook

Runbooken kan konfigureras för att utlösa uppdateringen av Azure Analysis Services-modellen enligt ett schema.

Detta kan konfigureras på följande sätt:

  1. I Automation Runbook klickar du på Scheman och sedan på Lägg till ett schema.

    Skapa schema

  2. Klicka på Schemalägg>Skapa ett nytt schema och fyll sedan i informationen.

    Konfigurera schemaläggning

  3. Klicka på Skapa.

  4. Fyll i parametrarna för schemat. Dessa används varje gång Runbook utlöses. Parametern WEBHOOKDATA bör lämnas tom när den körs via ett schema.

    Konfigurera parametrar

  5. Klicka på OK.

Använda med Data Factory

Om du vill använda runbooken med hjälp av Azure Data Factory skapar du först en Webhook för runbooken. Webhook tillhandahåller en URL som kan anropas via en Azure Data Factory-webbaktivitet.

Viktigt!

Om du vill skapa en Webhook måste runbookens status vara Publicerad.

  1. I Automation Runbook klickar du på Webhooks och sedan på Lägg till webhook.

    Lägg till Webhook

  2. Ge Webhook ett namn och ett förfallodatum. Namnet identifierar bara webhooken i Automation Runbook, den utgör inte en del av URL:en.

    Varning

    Se till att du kopierar URL:en innan du stänger guiden eftersom du inte kan få tillbaka den när den har stängts.

    Konfigurera Webhook

    Parametrarna för webhooken kan förbli tomma. När du konfigurerar Azure Data Factory-webbaktiviteten kan parametrarna skickas till webbanropets brödtext.

  3. Konfigurera en webbaktivitet i Data Factory

Exempel

Exempel på webbaktivitet

URL:en är url:en som skapats från webhooken.

Brödtexten är ett JSON-dokument som ska innehålla följande egenskaper:

Property Värde
AnalysisServicesDatabase Namnet på Azure Analysis Services-databasen
Exempel: AdventureWorksDB
AnalysisServicesServer Azure Analysis Services-servernamnet.
Exempel: https://westus.asazure.windows.net/servers/myserver/models/AdventureWorks/
DatabaseRefreshType Vilken typ av uppdatering som ska utföras.
Exempel: Fullständig

Exempel på JSON-brödtext:

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

Dessa parametrar definieras i Runbook PowerShell-skriptet. När webbaktiviteten körs skickas JSON-nyttolasten WEBHOOKDATA.

Detta deserialiseras och lagras som PowerShell-parametrar, som sedan används av kommandot Invoke-ProcessASDatabase PowerShell.

Deserialiserad webhook

Använda en hybridarbetare med Azure Analysis Services

En virtuell Azure-dator med en statisk offentlig IP-adress kan användas som Azure Automation Hybrid Worker. Den här offentliga IP-adressen kan sedan läggas till i Azure Analysis Services-brandväggen.

Viktigt!

Kontrollera att den offentliga IP-adressen för den virtuella datorn är konfigurerad som statisk.

Mer information om hur du konfigurerar Azure Automation Hybrid Workers finns i Installation av Hybrid Runbook Worker.

När en Hybrid Worker har konfigurerats skapar du en Webhook enligt beskrivningen i avsnittet Förbruka med Data Factory. Den enda skillnaden här är att välja alternativet Kör på>Hybrid Worker när du konfigurerar Webhook.

Exempel på webhook med Hybrid Worker:

Exempel på Hybrid Worker Webhook

PowerShell-exempel runbook

Följande kodfragment är ett exempel på hur du utför Azure Analysis Services-modelluppdateringen med hjälp av en PowerShell-runbook.

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
}

Nästa steg

Exempel
REST-API