2016-02-11 2 views
1

Во время наших стресс-тестов с AzureRM, подготовки и удаления больших блоков виртуальных машин мы заметили, что мы получаем некоторые нечетные ошибки в нашей подготовке и удалении книг. Мы хотели бы иметь процесс, который находит эти неудавшиеся задания и переупорядочивает их. Для этого нам нужно знать входные параметры задания. Однако при запускеПолучение параметров ввода работы от Azure RM Job через Powershell

Get-AzureRmAutomationJob -AutomationAccountName $aa.AutomationAccountName -RunbookName "Delete-AzureRmVm" -StartTime $then -Status "Failed" -ResourceGroupName $rg.ResourceGroupName 

все задания показывают количество 0 для заданияПараметры.

Вот некоторые примеры кода:

<code to get assets> 
$suspended = Get-AzureRmAutomationJob -AutomationAccountName $aa.AutomationAccountName -RunbookName "Delete-AzureRmVm" -StartTime $then -Status "Suspended" -ResourceGroupName $rg.ResourceGroupName 
$failed = Get-AzureRmAutomationJob -AutomationAccountName $aa.AutomationAccountName -RunbookName "Delete-AzureRmVm" -StartTime $then -Status "Failed" -ResourceGroupName $rg.ResourceGroupName 
$completed = Get-AzureRmAutomationJob -AutomationAccountName $aa.AutomationAccountName -RunbookName "Delete-AzureRmVm" -StartTime $then -Status Completed -ResourceGroupName $rg.ResourceGroupName 

foreach($job in $completed) 
{ 
    Write-Output " " 
    $job 
    Write-Output " " 
    $jobId = $job.JobId.Guid.ToString() 
    Write-Output "Job Parameters for $jobId" 
    #Get-AzureRmAutomationJobOutput -Id $job.JobId -Stream Any -ResourceGroupName $rg.ResourceGroupName -AutomationAccountName $aa.AutomationAccountName -Verbose 
    foreach($jobParameter in $job.JobParameters) 
    { 
     $jobParameter 
     break 
    } 
} 

Выход:

ResourceGroupName  : <valid RGN> 
AutomationAccountName : <valid AAN> 
JobId     : 2b5fdc91-c87b-4704-9b12-91d2365eaa95 
CreationTime   : 2/10/2016 5:19:38 PM -05:00 
Status     : Completed 
StatusDetails   : 
StartTime    : 2/10/2016 5:19:42 PM -05:00 
EndTime    : 2/10/2016 5:43:25 PM -05:00 
Exception    : 
LastModifiedTime  : 2/10/2016 5:43:25 PM -05:00 
LastStatusModifiedTime : 1/1/0001 12:00:00 AM +00:00 
JobParameters   : {} 
RunbookName   : Delete-AzureRmVm 
HybridWorker   : 
StartedBy    : 


Job Parameters for 2b5fdc91-c87b-4704-9b12-91d2365eaa95 

Что мы делаем неправильно, что мы не видим входные параметры? Независимо от статуса работы, все задания показывают 0 параметров работы. При взгляде на ту же работу в AzureRM портале, мы можем увидеть следующие параметры:

  • MICROSOFTAPPLICATIONMANAGEMENTSTARTEDBY = «PowerShell»
  • VMname = «azrdevvmn125»

Итак, мы знаем, что входные параметры есть, просто не как добраться до них через PowerShell. Любая помощь, которую вы можете предоставить, будет очень признательна.

Спасибо!

ответ

0

Get-AzureRmAutomationJob возвращает JobParameters только в том случае, если он вызывается с заданным параметром задания, и в результате есть одно задание. Вы можете попробовать что-то вроде этого внутри цикла Еогеасп:

$jobDetails = Get-AzureRmAutomationJob -AutomationAccountName $aa.AutomationAccountName -ResourceGroupName $rg.ResourceGroupName -Id $job.Id 

Переменная $jobDetails должна иметь JobParameters свойство заполнено.

Смежные вопросы