Azure自动化中的工作流程不起作用。在Hybrid Runbook Worker上运行我得到:
运行Login-AzureRmAccount登录。
在Azure工作程序上运行相同内容与上面相同,但会导致作业失败并显示错误
无法恢复工作流作业,因为无法完全保存持久性数据,或者保存的持久性数据已损坏。您必须重新启动工作流程。 (密钥无法在指定状态下使用。)
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
}
答案 0 :(得分:1)
来自Azure Automation PowerShell Workflow文档:
由于在调用Suspend-Workflow活动之后或最后一个检查点之后不会保留用户名凭据,因此您需要将凭据设置为null,然后在调用Suspend-Workflow或checkpoint后再从资产商店中检索它们。否则,您可能会收到以下错误消息:无法恢复工作流作业,因为无法完全保存持久性数据,或者已保存的持久性数据已损坏。您必须重新启动工作流程。
以下是如何正确执行此操作的示例:
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
}
}