Ошибка при выполнении сценария pause Azure SQLDatawarehouse ps - PullRequest
0 голосов
/ 25 октября 2019

Я использую учетную запись автоматизации при выполнении PowerShell Runbook для приостановки базы данных Azure Datawarehouse. Настройка завершена созданием документов, сертификата для отпечатков. Когда я выполнил сценарий PS и завершил работу с сообщением об ошибке

На SQL Server не было хранилища данных Azure SQL с именем ADWPOC. Ошибка], WriteErrorException + FullyQualifiedErrorId: Microsoft.PowerShell.Commands.WriteErrorException

Я правильно указал имя базы данных и сведения о сервере при выполнении этого сценария. Я не уверен, в чем здесь проблема. Пожалуйста, порекомендуйте.

Я импортировал сценарий PS из галереи модулей Runbook «Приостановить или приостановить хранилище данных SQL Azure». Пожалуйста, дайте мне знать, если вы хотите, чтобы я прикрепил скрипт здесь?

1 Ответ

1 голос
/ 25 октября 2019

Не уверен, но сценарий выглядит слишком старым, он все еще использует модуль AzureRm, который устарел.

Чтобы приостановить хранилище данных в модуле запусков, я рекомендую использовать новый модуль Az, sample here, чтобы использовать его в модуле запусков, просто следуйте инструкциямвыполните шаги, описанные ниже.

1. Перейдите к своей учетной записи автоматизации на портале -> Modules, убедитесь, что вы импортировали модули Az.Accounts и Az.Sql, если нет, в Modules-> Browse Gallery, найдите модули и импортируйте их.

2.После успешного импорта модулей перейдите к Runbooks -> создать PowerShell runbook (не PowerShell Workflow),затем используйте сценарий, как показано ниже в Runbook.

Примечание : <server-name> должно быть похоже на 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."
}
...