需要使用rest api调用获取天蓝色的自动化Runbook错误

时间:2019-08-19 11:37:04

标签: azure azure-automation azure-runbook azure-rest-api

我正在使用Rest api方法启动Runbook。 使用rest API执行runbook后,我得到输出,但没有得到错误

我用来获取输出的API是

GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Automation/automationAccounts/{automationAccountName}/jobs/{jobName}/output?api-version=2017-05-15-preview

但没有获取任何API来获取错误。 在此链接(https://docs.microsoft.com/en-us/rest/api/automation/job/get中,我可以在那里看到ErrorResponse,但不知道如何使用它。

我需要rest api来获取Runbook中的错误。

2 个答案:

答案 0 :(得分:0)

首先,您在Job - GetJob - Get Output REST API中看到的“ ErrorResponse”基本上是关于该特定REST API操作的响应的。它与Azure自动化作业错误无关。

其次,AFAIK当前没有直接受支持的REST API来获取Azure自动化作业的错误信息。如果有兴趣,您可以将您的反馈作为功能请求here分享。但是,如果要获取Azure Automation作业的错误信息,则可以按照this文档中的说明将作业状态和作业流从Azure自动化转发到Azure Monitor日志,然后利用Azure Log Analytics REST API来获取Azure自动化作业的错误信息,您可能需要在其中提供如下所示的查询。

AzureDiagnostics 
| where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "JobStreams" and StreamType_s == "Error" and JobId_g == "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
| summarize AggregatedValue = count() by JobId_g

希望这会有所帮助!

更新

请在下面的屏幕截图中找到说明,以了解get output API仅捕获输出流内容。

方案1-作业只有错误流,但是没有输出流和get output API的输出

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

方案2-作业仅具有输出流,而没有错误流,并且没有获取输出API的输出

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

答案 1 :(得分:0)

我遇到了同样的情况,我的应用程序需要知道作业是否以错误结束。由于没有直接的方法可以做到这一点,我想出了一个解决方法。

第 1 步:我假设您有作业 ID。使用作业 api 获取作业名称。我认为 UI 没有显示作业名称。这就是为什么我必须使用作业 API 来获得相同的结果。例如。

https://management.azure.com/subscriptions/{SUBSCRIPTION_ID}/resourceGroups/{RESOURCE_GROUP_NAME}/providers/Microsoft.Automation/automationAccounts/{AUTOMATION_ACCOUNT_NAME}/jobs/{JOB_ID}/?api-version=2017-05-15-preview

第 2 步:将作业名称与作业流 API 结合使用。 例如。 https://management.azure.com/subscriptions/{SUBSCRIPTION_ID}/resourceGroups/{RESOURCE_GROUP}/providers/Microsoft.Automation/automationAccounts/{AUTOMATION_ACCOUNT_NAME}/jobs/{JOB_NAME}/streams/?&api-version=2017-05-15-preview

这将返回包括错误在内的所有输出。

<块引用>
 {"value" = [{
   "id": "...",
   "properties": 
    {
      "jobStreamId": "...",
      "summary": "Resource group not found",
      "time": "2021-04-05T13:37:04.3629685+00:00",
      "streamType": "Error"
    }
 }
]}

这里的官方文档定义了输出格式。 https://docs.microsoft.com/en-us/rest/api/automation/jobstream/listbyjob