Невозможно получить значение параметров, переданных асинхронному заданию Powershell (scriptblock)
Я использую сценарий powershell для создания резервной копии базы данных SQL Azure, а затем уменьшу ее размер до стандартного уровня. Поскольку уменьшение размера базы данных занимает много времени, ее можно перенести в асинхронный процесс, а после ее завершения можно отслеживать состояние из основного сценария.
Я могу получить значения параметров в блоке сценария при попытке выполнить код сценария локально на моем компьютере, однако, когда этот сценарий добавляется в качестве задачи в определение моего выпуска, он не может сформировать запрос с переданными значениями и отображением блока сценария. содержание прямо в журнале.
Основная задача заключается в том, чтобы иметь возможность в кратчайшие сроки перевести резервную копию базы данных на стандартный уровень.Любой новый подход к этому также помог бы.
Param
(
[String]$ResourceGroupName,
[String]$Servername,
[String]$DatabaseName,
[String]$Edition,
[String]$NewPricingTier
)
$CopyDatabase = ($Databasename +'_Bkp')
try
{
#Take a backup of current database snapshot
Write-Host ("Creating Backup " + $CopyDatabase)
$NewCopyMsgdb = New-AzureRmSqlDatabaseCopy -ResourceGroupName $ResourceGroupName -ServerName $ServerName -DatabaseName $DatabaseName -CopyDatabaseName $CopyDatabase
try
{
if ($NewCopyMsgdb -ne $null)
{
Write-Host "Database copied successfully"
Write-Host "----------------------------"
Start-Job -Name DowngradePricingTier -ScriptBlock {
#Adjust the pricing to lower level that was needed
Write-Host "Changing the Pricing Tier through async job "
Set-AzureRmSqlDatabase -DatabaseName $Using:CopyDatabase -ServerName $Using:ServerName -ResourceGroupName $Using:ResourceGroupName -Edition $Using:Edition -RequestedServiceObjectiveName $Using:NewPricingTier
}
}
}
catch
{
Write-Host "Unable to change the pricing tier due to the following error :" -ForegroundColor Red
write-host "Exception Type: $($_.Exception.GetType().FullName)" -ForegroundColor Red
write-host "Exception Message: $($_.Exception.Message)" -ForegroundColor Red
}
#Display details for all jobs
Get-Job -Name DowngradePricingTier | Wait-Job | Receive-Job | Remove-Job -Force
}
catch
{
Write-Host "Database has not been copied successfully"
}