Aktualisieren mit Azure Automation
Mithilfe von Azure Automation und PowerShell-Runbooks können Sie automatisierte Datenaktualisierungsvorgänge für Ihre Azure Analysis-Tabellenmodelle ausführen.
Das Beispiel in diesem Artikel verwendet das SqlServer-PowerShell-Modul. Ein PowerShell-Beispielrunbook, das die Aktualisierung eines Modells veranschaulicht, wird weiter unten in diesem Artikel bereitgestellt.
Authentifizierung
Alle Aufrufe müssen mit einem gültigen Microsoft Entra ID-Token (OAuth 2) authentifiziert werden. Das Beispiel in diesem Artikel verwendet einen Dienstprinzipalnamen (Service Principal Name, SPN) für die Authentifizierung bei Azure Analysis Services. Weitere Informationen finden Sie unter Erstellen eines Dienstprinzipals im Azure-Portal.
Voraussetzungen
Wichtig
Das folgende Beispiel setzt voraus, dass die Azure Analysis Services-Firewall deaktiviert ist. Wenn eine Firewall aktiviert ist, muss die öffentliche IP-Adresse des Anforderungsinitiators in einer Firewallregel enthalten sein.
Installieren von SqlServer-Modulen aus dem PowerShell-Katalog
Klicken Sie in Ihrem Azure Automation-Konto auf Module und anschließend auf Katalog durchsuchen.
Suchen Sie über die Suchleiste nach SqlServer.
Wählen Sie „SqlServer“ aus, und klicken Sie dann auf Importieren.
Klicken Sie auf OK.
Erstellen eines Dienstprinzipals (SPN)
Informationen zum Erstellen eines Dienstprinzipals finden Sie unter Erstellen eines Dienstprinzipals im Azure-Portal.
Konfigurieren von Berechtigungen in Azure Analysis Services
Der von Ihnen erstellte Dienstprinzipal muss über Serveradministratorberechtigungen auf dem Server verfügen. Weitere Informationen finden Sie unter Hinzufügen eines Dienstprinzipals zur Serveradministratorrolle.
Entwerfen des Azure Automation-Runbooks
Erstellen Sie im Automation-Konto eine Anmeldeinformationsressource, die verwendet wird, um den Dienstprinzipal sicher zu speichern.
Geben Sie die Details für die Anmeldeinformationen ein. Geben Sie bei Benutzername die Anwendungs-ID (App-ID) des Dienstprinzipals und dann bei Kennwort das Geheimnis für den Dienstprinzipal ein.
Importieren Sie das Automation-Runbook.
Suchen Sie nach der Datei Refresh-Model.ps1, geben Sie einen Namen und eine Beschreibung an, und klicken Sie dann auf Erstellen.
Hinweis
Verwenden Sie das Skript aus dem Abschnitt PowerShell-Beispielrunbook am Ende dieses Dokuments, um eine Datei namens „Refresh-Model.ps1“ zu erstellen und auf dem lokalen Computer zu speichern, um sie in Runbook zu importieren.
Nachdem das Runbook erstellt wurde, wechselt es automatisch in den Bearbeitungsmodus. Wählen Sie Veröffentlichen aus.
Hinweis
Die zuvor erstellte Anmeldeinformationsressource wird mit dem Befehl Get-AutomationPSCredential vom Runbook abgerufen. Dieser Befehl wird dann an den PowerShell-Befehl Invoke-ProcessASADatabase übergeben, um die Authentifizierung bei Azure Analysis Services durchzuführen.
Klicken Sie auf Start, um das Runbook zu testen.
Füllen Sie die Parameter DATABASENAME, ANALYSISSERVER und REFRESHTYPE aus, und klicken Sie dann auf OK. Der Parameter WEBHOOKDATA ist nicht erforderlich, wenn das Runbook manuell ausgeführt wird.
Wenn das Runbook erfolgreich ausgeführt wurde, erhalten Sie eine Ausgabe ähnlich der folgenden:
Verwenden eines eigenständigen Azure Automation-Runbooks
Das Runbook kann so konfiguriert werden, dass die Aktualisierung des Azure Analysis Services-Modells nach Zeitplan ausgelöst wird.
Dies kann wie folgt konfiguriert werden:
Klicken Sie im Automation-Runbook auf Zeitpläne und dann auf Zeitplan hinzufügen.
Klicken Sie auf Zeitplan>Neuen Zeitplan erstellen, und geben Sie dann die Details ein.
Klicken Sie auf Erstellen.
Füllen Sie die Parameter für den Zeitplan aus. Diese werden jedes Mal verwendet, wenn das Runbook ausgelöst wird. Der Parameter WEBHOOKDATA muss leer bleiben, wenn die Ausführung nach einem Zeitplan erfolgt.
Klicken Sie auf OK.
Nutzen mit Data Factory
Um das Runbook mithilfe von Azure Data Factory zu nutzen, müssen Sie zunächst einen Webhook für das Runbook erstellen. Der Webhook enthält eine URL, die über eine Azure Data Factory-Webaktivität aufgerufen werden kann.
Wichtig
Zum Erstellen eines Webhooks muss das Runbook den Status Veröffentlicht aufweisen.
Klicken Sie in Ihrem Automation-Runbook auf Webhooks und dann auf Webhook hinzufügen.
Geben Sie für den Webhook einen Namen und ein Ablaufdatum an. Mit dem Namen wird der Webhook lediglich im Automation-Runbook identifiziert, er ist kein Bestandteil der URL.
Achtung
Kopieren Sie die URL vor dem Schließen des Assistenten. Nach dem Schließen können Sie nicht mehr zurückkehren.
Die Parameter für den Webhook können leer bleiben. Wenn Sie die Azure Data Factory-Webaktivität konfigurieren, können die Parameter in den Text des Webaufrufs übergeben werden.
Konfigurieren Sie in Data Factory eine Webaktivität.
Beispiel
Die URL ist die aus dem Webhook erstellte URL.
Der Text ist ein JSON-Dokument, das die folgenden Eigenschaften enthalten muss:
Eigenschaft | Wert |
---|---|
AnalysisServicesDatabase | Name der Azure Analysis Services-Datenbank Beispiel: AdventureWorksDB |
AnalysisServicesServer | Name des Azure Analysis Services-Servers Beispiel: https://westus.asazure.windows.net/servers/myserver/models/AdventureWorks/ |
DatabaseRefreshType | Typ der auszuführenden Aktualisierung Beispiel: Vollständig |
JSON-Beispieltext:
{
"AnalysisServicesDatabaseName": "AdventureWorksDB",
"AnalysisServicesServer": "asazure://westeurope.asazure.windows.net/MyAnalysisServer",
"DatabaseRefreshType": "Full"
}
Diese Parameter werden im PowerShell-Skript des Runbooks definiert. Wenn die Webaktivität ausgeführt wird, wird als JSON-Nutzlast WEBHOOKDATA übergeben.
Dies wird deserialisiert und als PowerShell-Parameter gespeichert, die dann im PowerShell-Befehl Invoke-ProcessASDatabase verwendet werden.
Verwenden eines Hybrid Workers mit Azure Analysis Services
Ein virtueller Azure-Computer mit einer statischen öffentlichen IP-Adresse kann als Azure Automation Hybrid Worker verwendet werden. Diese öffentliche IP-Adresse kann dann der Azure Analysis Services-Firewall hinzugefügt werden.
Wichtig
Stellen Sie sicher, dass die öffentliche IP-Adresse des virtuellen Computers als statische Adresse konfiguriert ist.
Weitere Informationen zum Konfigurieren von Azure Automation Hybrid Worker finden Sie unter Installieren eines Hybrid Runbook Workers.
Erstellen Sie nach dem Konfigurieren eines Hybrid Workers einen Webhook entsprechend der Beschreibung im Abschnitt Nutzen mit Data Factory. Als einzigen Unterschied wählen Sie hier beim Konfigurieren des Webhooks die Option Ausführen auf>Hybrid Worker aus.
Beispielwebhook mithilfe von Hybrid Worker:
PowerShell-Beispielrunbook
Der folgende Codeausschnitt ist ein Beispiel dafür, wie die Aktualisierung des Azure Analysis Services-Modells mit einem PowerShell-Runbook durchgeführt werden kann.
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
}