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.
Installeer SqlServer-modules vanuit de PowerShell-galerie.
Klik in uw Azure Automation-account op Modules en blader door de galerie.
Zoek in de zoekbalk naar SqlServer.
Selecteer SqlServer en klik vervolgens op Importeren.
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
Maak in het Automation-account een referentieresource die wordt gebruikt om de service-principal veilig op te slaan.
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.
Importeer het Automation-runbook.
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.
Wanneer het Runbook is gemaakt, wordt het automatisch in de bewerkingsmodus geplaatst. Selecteer 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.
Test het runbook door op Start te klikken.
Vul de parameters DATABASENAME, ANALYSISSERVER en REFRESHTYPE in en klik op OK. De parameter WEBHOOKDATA is niet vereist wanneer het Runbook handmatig wordt uitgevoerd.
Als het runbook is uitgevoerd, ontvangt u een uitvoer zoals hieronder:
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:
Klik in het Automation-runbook op Planningen en voeg vervolgens een planning toe.
Klik op Een>nieuw schema maken en vul de details in.
Klik op Create.
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.
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.
Klik in uw Automation-runbook op Webhooks en klik vervolgens op Webhook toevoegen.
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.
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.
Configureer een webactiviteit in Data Factory
Opmerking
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.
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:
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
}