Delen via


Vernieuwen met Azure Automation

Met behulp van Azure Automation- en PowerShell-runbooks kunt u geautomatiseerde bewerkingen voor het vernieuwen van gegevens uitvoeren op uw tabellaire Azure Analysis-modellen.

In het voorbeeld in dit artikel wordt de SqlServer PowerShell-module gebruikt. Een voorbeeld van een PowerShell-runbook, dat laat zien hoe u een model vernieuwt, vindt u verderop in dit artikel.

Verificatie

Alle aanroepen moeten worden geverifieerd met een geldig Microsoft Entra ID-token (OAuth 2). In het voorbeeld in dit artikel wordt een SPN (Service Principal) gebruikt om te verifiëren bij Azure Analysis Services. Zie Een service-principal maken met behulp van Azure Portal voor meer informatie.

Vereisten

Belangrijk

In het volgende voorbeeld wordt ervan uitgegaan dat de Firewall van Azure Analysis Services is uitgeschakeld. Als een firewall is ingeschakeld, moet het openbare IP-adres van de aanvraaginitiator worden opgenomen in een firewallregel.

  1. Klik in uw Azure Automation-account op Modules en blader door de galerie.

  2. Zoek in de zoekbalk naar SqlServer.

    Zoekmodules

  3. Selecteer SqlServer en klik vervolgens op Importeren.

    Module importeren

  4. Klik op OK.

Een service-principal (SPN) maken

Zie Een service-principal maken met behulp van Azure Portal voor meer informatie over het maken van een service-principal.

Machtigingen configureren in Azure Analysis Services

De service-principal die u maakt, moet beheerdersmachtigingen voor de server hebben. Zie Een service-principal toevoegen aan de rol serverbeheerder voor meer informatie.

Het Azure Automation-runbook ontwerpen

  1. Maak in het Automation-account een referentieresource die wordt gebruikt om de service-principal veilig op te slaan.

    Schermopname van de pagina Referenties met de actie Een referentie toevoegen geselecteerd.

  2. Voer de details voor de referentie in. Voer in gebruikersnaam de toepassings-id van de service-principal (appid) in en voer vervolgens in Wachtwoord het geheim van de service-principal in.

    Referentie maken

  3. Importeer het Automation-runbook.

    Schermopname van de pagina Runbooks met de actie Een runbook importeren geselecteerd.

  4. Blader naar het bestand Refresh-Model.ps1 , geef een naam en beschrijving op en klik vervolgens op Maken.

    Notitie

    Gebruik het script uit de sectie PowerShell-runbook onder aan dit document om een bestand met de naam Refresh-Model.ps1 te maken en op een lokale computer op te slaan om in Runbook te importeren.

    Runbook importeren

  5. Wanneer het Runbook is gemaakt, wordt het automatisch in de bewerkingsmodus geplaatst. Selecteer Publiceren.

    Runbook publiceren

    Notitie

    De referentieresource die eerder is gemaakt, wordt opgehaald door het runbook met behulp van de opdracht Get-AutomationPSCredential . Deze opdracht wordt vervolgens doorgegeven aan de PowerShell-opdracht Invoke-ProcessASADatabase om de verificatie uit te voeren voor Azure Analysis Services.

  6. Test het runbook door op Start te klikken.

    Schermopname van de pagina Overzicht met de actie Start geselecteerd.

  7. Vul de parameters DATABASENAME, ANALYSISSERVER en REFRESHTYPE in en klik op OK. De parameter WEBHOOKDATA is niet vereist wanneer het Runbook handmatig wordt uitgevoerd.

    Het runbook starten

Als het runbook is uitgevoerd, ontvangt u een uitvoer zoals hieronder:

Geslaagde uitvoering

Een zelfstandig Azure Automation-runbook gebruiken

Het Runbook kan worden geconfigureerd om het Azure Analysis Services-model op een geplande basis te vernieuwen.

Dit kan als volgt worden geconfigureerd:

  1. Klik in het Automation-runbook op Planningen en voeg vervolgens een planning toe.

    Planning maken

  2. Klik op Een>nieuw schema maken en vul de details in.

    Planning configureren

  3. Klik op Create.

  4. Vul de parameters voor de planning in. Deze worden telkens gebruikt wanneer het Runbook wordt geactiveerd. De parameter WEBHOOKDATA moet leeg blijven wanneer deze wordt uitgevoerd via een schema.

    Parameters configureren

  5. Klik op OK.

Verbruiken met Data Factory

Als u het runbook wilt gebruiken met behulp van Azure Data Factory, maakt u eerst een webhook voor het runbook. De webhook biedt een URL die kan worden aangeroepen via een Azure Data Factory-webactiviteit.

Belangrijk

Als u een webhook wilt maken, moet de status van het runbook worden gepubliceerd.

  1. Klik in uw Automation-runbook op Webhooks en klik vervolgens op Webhook toevoegen.

    Webhook toevoegen

  2. Geef de Webhook een naam en een vervaldatum. De naam identificeert alleen de webhook in het Automation-runbook, maar maakt geen deel uit van de URL.

    Let op

    Zorg ervoor dat u de URL kopieert voordat u de wizard sluit, omdat u deze niet opnieuw kunt ophalen nadat deze is gesloten.

    Webhook configureren

    De parameters voor de webhook kunnen leeg blijven. Bij het configureren van de Azure Data Factory-webactiviteit kunnen de parameters worden doorgegeven aan de hoofdtekst van de weboproep.

  3. Configureer een webactiviteit in Data Factory

Opmerking

Voorbeeld van webactiviteit

De URL is de URL die is gemaakt op basis van de webhook.

De hoofdtekst is een JSON-document dat de volgende eigenschappen moet bevatten:

Eigenschappen Weergegeven als
AnalysisServicesDatabase De naam van de Azure Analysis Services-database
Voorbeeld: AdventureWorksDB
AnalysisServicesServer De naam van de Azure Analysis Services-server.
Voorbeeld: https://westus.asazure.windows.net/servers/myserver/models/AdventureWorks/
DatabaseRefreshType Het type vernieuwing dat moet worden uitgevoerd.
Voorbeeld: Volledig

Voorbeeld van JSON-hoofdtekst:

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

Deze parameters worden gedefinieerd in het PowerShell-script van het runbook. Wanneer de webactiviteit wordt uitgevoerd, is de doorgegeven JSON-nettolading WEBHOOKDATA.

Dit wordt gedeserialiseerd en opgeslagen als PowerShell-parameters, die vervolgens worden gebruikt door de PowerShell-opdracht Invoke-ProcessASDatabase.

Gedeserialiseerde webhook

Een Hybrid Worker gebruiken met Azure Analysis Services

Een virtuele Azure-machine met een statisch openbaar IP-adres kan worden gebruikt als een Azure Automation Hybrid Worker. Dit openbare IP-adres kan vervolgens worden toegevoegd aan de Azure Analysis Services-firewall.

Belangrijk

Zorg ervoor dat het openbare IP-adres van de virtuele machine is geconfigureerd als statisch.

Zie Hybrid Runbook Worker-installatie voor meer informatie over het configureren van Azure Automation Hybrid Workers.

Zodra een Hybrid Worker is geconfigureerd, maakt u een webhook zoals beschreven in de sectie Verbruiken met Data Factory. Het enige verschil hier is om de optie Uitvoeren op>Hybrid Worker te selecteren bij het configureren van de webhook.

Voorbeeldwebhook met Behulp van Hybrid Worker:

Voorbeeld van Hybrid Worker-webhook

PowerShell-voorbeeldrunbook

Het volgende codefragment is een voorbeeld van het uitvoeren van het vernieuwen van het Azure Analysis Services-model met behulp van een 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
}

Volgende stappen

Voorbeelden
REST API