Не уверен, но сценарий выглядит слишком старым, он все еще использует модуль 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."
}