Odświeżanie za pomocą usługi Azure Automation
Za pomocą usług Azure Automation i Elementów Runbook programu PowerShell można wykonywać automatyczne operacje odświeżania danych na modelach tabelarycznych usługi Azure Analysis.
W przykładzie w tym artykule użyto modułu SqlServer PowerShell. Przykładowy element Runbook programu PowerShell, który demonstruje odświeżanie modelu, znajduje się w dalszej części tego artykułu.
Uwierzytelnianie
Wszystkie wywołania muszą być uwierzytelnione przy użyciu prawidłowego tokenu Identyfikator entra firmy Microsoft (OAuth 2). W tym artykule użyto jednostki usługi (SPN) do uwierzytelniania w usługach Azure Analysis Services. Aby dowiedzieć się więcej, zobacz Tworzenie jednostki usługi przy użyciu witryny Azure Portal.
Wymagania wstępne
Ważne
W poniższym przykładzie założono, że zapora usług Azure Analysis Services jest wyłączona. Jeśli zapora jest włączona, publiczny adres IP inicjatora żądania musi być uwzględniony w regule zapory.
Zainstaluj moduły SqlServer z galerii programu PowerShell.
Na koncie usługi Azure Automation kliknij pozycję Moduły, a następnie przeglądaj galerię.
Na pasku wyszukiwania wyszukaj ciąg SqlServer.
Wybierz pozycję SqlServer, a następnie kliknij pozycję Importuj.
Kliknij przycisk OK.
Tworzenie jednostki usługi (SPN)
Aby dowiedzieć się więcej na temat tworzenia jednostki usługi, zobacz Tworzenie jednostki usługi przy użyciu witryny Azure Portal.
Konfigurowanie uprawnień w usługach Azure Analysis Services
Utworzona jednostka usługi musi mieć uprawnienia administratora serwera na serwerze. Aby dowiedzieć się więcej, zobacz Dodawanie jednostki usługi do roli administratora serwera.
Projektowanie elementu Runbook usługi Azure Automation
Na koncie usługi Automation utwórz zasób Poświadczenia, który będzie używany do bezpiecznego przechowywania jednostki usługi.
Wprowadź szczegóły poświadczenia. W polu Nazwa użytkownika wprowadź identyfikator aplikacji jednostki usługi (appid), a następnie w polu Hasło wprowadź klucz tajny jednostki usługi.
Zaimportuj element Runbook usługi Automation.
Wyszukaj plik Refresh-Model.ps1, podaj nazwę i opis, a następnie kliknij przycisk Utwórz.
Uwaga
Użyj skryptu z sekcji Przykładowy element Runbook programu PowerShell w dolnej części tego dokumentu, aby utworzyć plik o nazwie Refresh-Model.ps1 i zapisać go na komputerze lokalnym w celu zaimportowania do elementu Runbook.
Po utworzeniu elementu Runbook nastąpi automatyczne przejście do trybu edycji. Wybierz Publikuj.
Uwaga
Zasób poświadczeń, który został utworzony wcześniej, jest pobierany przez element Runbook przy użyciu polecenia Get-AutomationPSCredential . To polecenie jest następnie przekazywane do polecenia Invoke-ProcessASADatabase programu PowerShell w celu przeprowadzenia uwierzytelniania w usługach Azure Analysis Services.
Przetestuj element Runbook, klikając pozycję Uruchom.
Wypełnij parametry DATABASENAME, ANALYSISSERVER i REFRESHTYPE, a następnie kliknij przycisk OK. Parametr WEBHOOKDATA nie jest wymagany, gdy element Runbook jest uruchamiany ręcznie.
Jeśli element Runbook został wykonany pomyślnie, otrzymasz dane wyjściowe podobne do następujących:
Korzystanie z samodzielnego elementu Runbook usługi Azure Automation
Element Runbook można skonfigurować do wyzwalania odświeżania modelu usług Azure Analysis Services zgodnie z harmonogramem.
Można to skonfigurować w następujący sposób:
W elemecie Runbook usługi Automation kliknij pozycję Harmonogramy, a następnie dodaj harmonogram.
Kliknij pozycję Harmonogram>Utwórz nowy harmonogram, a następnie wypełnij szczegóły.
Kliknij pozycję Utwórz.
Wypełnij parametry harmonogramu. Będą one używane za każdym razem, gdy wyzwalacze elementu Runbook. Parametr WEBHOOKDATA powinien pozostać pusty podczas uruchamiania za pośrednictwem harmonogramu.
Kliknij przycisk OK.
Korzystanie z usługi Data Factory
Aby korzystać z elementu Runbook przy użyciu usługi Azure Data Factory, najpierw utwórz element webhook dla elementu Runbook. Element webhook udostępni adres URL, który można wywołać za pośrednictwem działania internetowego usługi Azure Data Factory.
Ważne
Aby utworzyć element webhook, stan elementu Runbook musi być opublikowany.
W elemecie Runbook usługi Automation kliknij pozycję Elementy webhook, a następnie kliknij pozycję Dodaj element webhook.
Nadaj elementowi webhook nazwę i wygaśnięcie. Nazwa identyfikuje tylko element webhook wewnątrz elementu Runbook usługi Automation, ale nie stanowi części adresu URL.
Uwaga
Przed zamknięciem kreatora należy skopiować adres URL, ponieważ nie można go odzyskać po zamknięciu.
Parametry elementu webhook mogą pozostać puste. Podczas konfigurowania działania internetowego usługi Azure Data Factory parametry można przekazać do treści wywołania internetowego.
W usłudze Data Factory skonfiguruj działanie internetowe
Przykład
Adres URL jest adresem URL utworzonym na podstawie elementu webhook.
Treść jest dokumentem JSON, który powinien zawierać następujące właściwości:
Właściwości | Wartość |
---|---|
AnalysisServicesDatabase | Nazwa bazy danych usług Azure Analysis Services Przykład: AdventureWorksDB |
AnalysisServicesServer | Nazwa serwera usług Azure Analysis Services. Przykład: https://westus.asazure.windows.net/servers/myserver/models/AdventureWorks/ |
DatabaseRefreshType | Typ odświeżania do wykonania. Przykład: pełny |
Przykładowa treść JSON:
{
"AnalysisServicesDatabaseName": "AdventureWorksDB",
"AnalysisServicesServer": "asazure://westeurope.asazure.windows.net/MyAnalysisServer",
"DatabaseRefreshType": "Full"
}
Te parametry są definiowane w skryscie programu PowerShell elementu Runbook. Po wykonaniu działania internetowego przekazany ładunek JSON to WEBHOOKDATA.
Jest to deserializowane i przechowywane jako parametry programu PowerShell, które są następnie używane przez polecenie Invoke-ProcessASDatabase programu PowerShell.
Używanie hybrydowego procesu roboczego z usługami Azure Analysis Services
Maszyna wirtualna platformy Azure ze statycznym publicznym adresem IP może służyć jako hybrydowy proces roboczy usługi Azure Automation. Ten publiczny adres IP można następnie dodać do zapory usług Azure Analysis Services.
Ważne
Upewnij się, że publiczny adres IP maszyny wirtualnej jest skonfigurowany jako statyczny.
Aby dowiedzieć się więcej na temat konfigurowania hybrydowych procesów roboczych usługi Azure Automation, zobacz Instalacja hybrydowego procesu roboczego elementu Runbook.
Po skonfigurowaniu hybrydowego procesu roboczego utwórz element webhook zgodnie z opisem w sekcji Korzystanie z usługi Data Factory. Jedyną różnicą jest wybranie opcji Uruchom w>hybrydowym procesie roboczym podczas konfigurowania elementu webhook.
Przykładowy element webhook korzystający z hybrydowego procesu roboczego:
Przykładowy element Runbook programu PowerShell
Poniższy fragment kodu to przykład przeprowadzania odświeżania modelu usług Azure Analysis Services przy użyciu elementu Runbook programu 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
}