从Azure自动化刷新Analysis Service模型时出现错误

问题描述 投票:0回答:1

我正在运行自动化手册中的代码,以刷新分析服务模型:

Add-AzureAnalysisServicesAccount -RolloutEnvironment $RolloutEnvironment -ServicePrincipal -Credential $_Credential -TenantId $TenantId 

Write-output ("Refreshing Analysis Server mode $DatabaseName...")
# Perform a Process Full on the Azure Analysis Services database
Invoke-ProcessASDatabase -Server $Server -DatabaseName $DatabaseName -RefreshType Full -ServicePrincipal -Credential $_Credential 

从天蓝色的自动化帐户运行模型刷新时出现以下错误:

Invoke-ProcessASDatabase:无法将修改保存到服务器。返回错误:'给定的凭证缺少必需的属性。数据源种类:SQL。身份验证类型:OAuth2。物业名称:AccessToken。 IDbConnection接口引发了异常。技术细节:RootActivityId:ad01e91e-a17f-4b69-8e1d-ad2f18ddbdeb日期(UTC):12/30/2019 9:59:09 AM'。在第24行:char:1 + Invoke-ProcessASDatabase -Server $ Server-DatabaseName $ DatabaseName ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~+ CategoryInfo:InvalidArgument:(DevOps:String)[Invoke-ProcessASDatabase],OperationException + FullyQualifiedErrorId:Microsoft.AnalysisServices.PowerShell.Cmdlets.ProcessASDatabase

azure-automation azure-analysis-services
1个回答
0
投票

我认为此文档-Refresh with Azure Automation足够清楚,请按照以下说明尝试。确保您创建的服务主体在服务器上具有服务器管理员权限,并在运行簿中创建Credential进行存储。

示例脚本:

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
}
© www.soinside.com 2019 - 2024. All rights reserved.