0

我正在使用自动化帐户和执行 PowerShell Runbook 来暂停我的 Azure 数据仓库数据库。设置完成,创建凭证和指纹证书。当我执行 PS 脚本并完成时出现错误消息

SQL Server 上不存在名为 ADWPOC 的 Azure SQL 数据仓库 SuspendOrPauseAzureSQLDataWarehouse:72 char:72 + + CategoryInfo : NotSpecified: (:) [Write-Error], WriteErrorException + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException

在执行此脚本时,我已正确提供了数据库名称和服务器详细信息。我不确定这里有什么问题。请指教。

我已从运行手册库“暂停或暂停 Azure SQL 数据仓库”导入 PS 脚本。如果您希望我在此处附上脚本,请告诉我?

4

1 回答 1

3

不确定,但脚本看起来太旧了,它仍然使用AzureRm已弃用的模块。

要在 Runbook 中暂停数据仓库,我建议您使用新Az模块 ,sample here要在 Runbook 中使用它,只需按照以下步骤操作即可。

1.在门户 -> 中导航到您的自动化帐户Modules,确保您已导入Az.AccountsAz.Sql模块,如果没有,请在Modules->Browse Gallery中搜索模块并导入它们。

2.成功导入模块后,导航到Runbooks-> 创建PowerShell运行手册(不是PowerShell Workflow),然后在运行手册中使用如下脚本。

注意<server-name>应该是like testserver,不是testserver.database.windows.net

$connectionName = "AzureRunAsConnection"
try
{
    # Get the connection "AzureRunAsConnection "
    $servicePrincipalConnection=Get-AutomationConnection -Name $connectionName         

    "Logging in to Azure..."
    Connect-AzAccount `
        -ServicePrincipal `
        -TenantId $servicePrincipalConnection.TenantId `
        -ApplicationId $servicePrincipalConnection.ApplicationId `
        -CertificateThumbprint $servicePrincipalConnection.CertificateThumbprint 
}
catch {
    if (!$servicePrincipalConnection)
    {
        $ErrorMessage = "Connection $connectionName not found."
        throw $ErrorMessage
    } else{
        Write-Error -Message $_.Exception
        throw $_.Exception
    }
}

$database = Get-AzSqlDatabase –ResourceGroupName "<resource-group-name>" –ServerName "<server-name>" –DatabaseName "<data-warehouse-name>"
if($database){

    if($database.Status -eq 'Paused'){
        Write-Output "The Data Warehouse was already paused."
    }else{
        $database | Suspend-AzSqlDatabase
        Write-Output "The Data Warehouse has been paused." 
    }

}else{

    Write-Output "The Data Warehouse does not exist."
}
于 2019-10-25T08:02:09.537 回答