Необходимо получить ошибку runbook автоматизации Azure с помощью rest api call

Я использую метод Rest API для запуска Runbook. Я получаю вывод после выполнения runbook с использованием rest API, но не получаю ошибок с этим

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, но не знаю, как его использовать.

Мне нужно отдохнуть API, чтобы получить ошибки в Runbook.

2 ответа

Я столкнулся с той же ситуацией, когда моему приложению нужно было знать, закончилось ли задание с ошибками или нет. Поскольку нет прямого способа сделать это, я нашел обходной путь.

Шаг 1: Я предполагаю, что у вас есть идентификатор вакансии. Используйте API задания, чтобы получить название задания . Я не думаю, что пользовательский интерфейс отображает название задания. Вот почему мне пришлось использовать 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-предварительный просмотр

Шаг 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-15-превью

Это вернет все выходные данные, включая ошибку.

       {"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

Во-первых, ErrorResponse, который вы видите в Job - Get или Job - Get Output, REST API в основном говорит об ответной реакции этой конкретной операции REST API. Он не связан с ошибкой задания автоматизации Azure.

Во-вторых, в AFAIK в настоящее время нет напрямую поддерживаемого API REST для получения информации об ошибках задания Azure Automation. Если вы заинтересованы, вы можете поделиться своим отзывом в качестве запроса функции здесь. Однако если вы хотите получить информацию об ошибках задания Azure Automation, то мы можем перенаправить состояние задания и потоки заданий из журналов Azure Automation в журналы Azure Monitor, как описано в этом документе, а затем использовать API REST Azure Log Analytics для получения информации об ошибках задания Azure Automation, где вы можете Возможно, придется предоставить запрос, как показано ниже.

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 - Задание имеет только поток ошибок, но не имеет выходного потока и API-интерфейса get output:

Сценарий 2. У задания есть только выходной поток, но нет потока ошибок и выходных данных API get output:

Другие вопросы по тегам