如何使 Azure 自动化 Runbook 失败?

How to fail an Azure Automation Runbook?

有什么方法可以使 Azure Automation Runbook 以 'Failed' 状态结束?即使引发异常,Runbook 仍以 'Complete' 状态结束。您可以进入状态为 "Complete" 的 Runbook 作业并查看抛出的异常。

但是,有没有一种方法可以显式使 Azure Runbook 失败,例如,如果您捕获异常并希望整个 Runbook 失败,那么状态将以 "Failed" 结束?

catch块中,需要再次使用throw语句。

Runbook 中的示例代码:

try
{
   $wc = new-object System.Net.WebClient
   $wc.DownloadFile("http://www.contoso.com/MyDoc.doc")
}
catch
{
    # explicitly use throw here
    throw "I have some errors."
}

运行完成后,在作业状态:

我在所有 PowerShell 脚本中使用 $errorActionPreference = "Stop",包括 Azure Automation Runbook,否则正常的 PowerShell 处理 ("Continue") 将导致无法处理和报告错误。