2016-10-03 5 views
0

Ниже рабочего процесса в Azure Automation не работает. Бег на гибридном Runbook работник я получаю:Потеря контекста после Suspend-Workflow

  1. Azure Контекст правильно и отображается
  2. VM информация объект корректно отображается
  3. Workflow подвешен
  4. Сразу после приостановки рабочего процесса возобновляется с помощью портал
  5. Azure контекст теряется, получая ошибку

    Run Login-AzureRmAccount для входа.

Запуск же на Лазурном работника показывает то же самое, что и выше, но приводит к неудачной работе с ошибкой

Работа рабочий не может быть возобновлена, либо потому, что данные инерционности не могут быть сохранены полностью , или сохраненные данные сохранения были повреждены. Необходимо перезапустить рабочий процесс. (Ключ не может быть использован в указанном состоянии.)

workflow TestSub { 
    $SubscriptionName = Get-AutomationVariable -Name 'VAR-AUTO-SubscriptionName' 
    $AzureAutomationCredential = Get-AutomationPSCredential -Name 'CRE-AUTO-AutomationUser' 
    $AzureAccount = Add-AzureRmAccount -Credential $AzureAutomationCredential -SubscriptionName $SubscriptionName 
    Get-AzureRmContext 

    Get-AzureRmVM -ResourceGroupName AMS-CB-FELX-RG01 -Name li-felixc01 
    Suspend-Workflow 

    Get-AzureRmContext Get-AzureRmVM -ResourceGroupName AMS-CB-FELX-RG01 -Name li-felixc01 
} 

ответ

1

Из Azure Automation PowerShell Workflow Документах

Поскольку имя пользователя учетные данные не сохраняются после вызова Suspend-Workflow деятельности или после последней контрольной точки , вам нужно установить учетные данные равными нулю, а затем извлечь их снова из хранилища активов после вызова Suspend-Workflow или контрольной точки. В противном случае может появиться следующее сообщение об ошибке: Рабочее задание невозможно возобновить либо из-за того, что данные о сохранении не могут быть полностью сохранены, либо сохранены данные сохранения сохранены. Необходимо перезапустить рабочий процесс.

Вот пример того, как сделать это правильно:

workflow CreateTestVms 
{ 
    $Cred = Get-AzureAutomationCredential -Name "MyCredential" 
    $null = Add-AzureRmAccount -Credential $Cred 

    $VmsToCreate = Get-AzureAutomationVariable -Name "VmsToCreate" 

    foreach ($VmName in $VmsToCreate) 
    { 
     # Do work first to create the VM (code not shown) 

     # Now add the VM 
     New-AzureRmVm -VM $Vm -Location "WestUs" -ResourceGroupName "ResourceGroup01" 

     # Checkpoint so that VM creation is not repeated if workflow suspends 
     $Cred = $null 
     Checkpoint-Workflow 
     $Cred = Get-AzureAutomationCredential -Name "MyCredential" 
     $null = Add-AzureRmAccount -Credential $Cred 
    } 
} 
Смежные вопросы