在 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 自动化状态设置为失败以触发警报的主要内容,如果未能解决你的问题,请参考以下文章

报错解决telnet时报错:无法打开到主机的连接,在端口23连接失败

MYSQL查看多线程复制报错详情

oralce报错注入(转自某个奇安信大佬)

AlwaysOn配置时在连接步骤时报错(35250)

性能测试坑 ① 无法查看结果树的报错内容,分析报错内容

报错解决Windows添加路由时报错:请求的操作需要提升