在 Invoke-AzVMRunCommand 错误时将 Azure 自动化状态设置为失败以触发警报
Posted
技术标签:
【中文标题】在 Invoke-AzVMRunCommand 错误时将 Azure 自动化状态设置为失败以触发警报【英文标题】:Set Azure Automation Status as failed on Invoke-AzVMRunCommand error to trigger an alert 【发布时间】:2021-09-16 13:09:58 【问题描述】:我在自动化运行手册中运行此命令。有时,如果 VM 停止,该命令会出错。基于此错误,我希望自动化运行手册的状态为“失败”而不是已完成。但是运行手册给出了“已完成”状态。因此,我无法使用 Azure Monitor(检查状态值)触发警报。如何在 Runbook 中出现此类错误时将 Runbook 状态设置为“失败”?
$result=Invoke-AzVMRunCommand -ResourceGroupName $VMResourceGroupName -VMName $VMname -ScriptPath ScriptToRun.ps1 -CommandId 'RunPowerShellScript'
if ($result.value.Message -like '*error*')
throw $result.value.Message
【问题讨论】:
【参考方案1】:你可以参考THIS类似的问题。答案也应该适合您的情况。
【讨论】:
【参考方案2】:您的代码错误。这是正确的。 throw 将使 Runbook 失败。有问题的代码在 VM 中运行时适用(而不是通过自动化运行手册)
$result=Invoke-AzVMRunCommand -ResourceGroupName $VMResourceGroupName -VMName $VMname -ScriptPath ScriptToRun.ps1 -CommandId 'RunPowerShellScript'
if(!$result)
throw "Error Occured"
else
Write-Output "Succeeded"
【讨论】:
以上是关于在 Invoke-AzVMRunCommand 错误时将 Azure 自动化状态设置为失败以触发警报的主要内容,如果未能解决你的问题,请参考以下文章