Получить идентификатор или имя запуска Azure Webjob при внешнем запуске

Когда я запускаю веб-работу, используя остальные api: /api/triggeredwebjobs/{имя задания}/run?arguments={arguments}

Мне нужно знать, была ли запущенная программа запущена успешно или нет, и сейчас я запрашиваю самый последний результат из истории, используя.../api/triggeredwebjobs/{job name}/history

Теперь, есть ли способ получить {id} задания сразу после моего вызова? Потому что, очевидно, нет никакого способа быть уверенным, что последняя история - это работа, которую я только что выполнил. Или есть другой способ добиться цели?

Благодарю.

3 ответа

Вы можете назвать это где угодно в вашем коде, и это работает! (Не в отладке, но когда опубликовано)

Console.Out.WriteLine("RUN NAME : " + Environment.GetEnvironmentVariable("WEBJOBS_RUN_ID"));

Мы только что добавили поддержку для этого в API WebJobs. Это работает так, что когда вы отправляете запрос POST для запуска WebJob, вы теперь возвращаете атрибут местоположения с URL-адресом для подробностей запуска, который был запущен. например

Location: https://mysite.scm.azurewebsites.net/api/triggeredwebjobs/SomeJob/history/201605192149381933

Затем вы можете запросить этот URL для отслеживания пробега, например,

{
  "id": "201605192149381933",
  "name": "201605192149381933",
  "status": "Success",
  "start_time": "2016-05-19T21:49:38.1933956Z",
  "end_time": "2016-05-19T21:49:39.4826458Z",
  "duration": "00:00:01.2892502",
  "output_url": "https://mysite.scm.azurewebsites.net/vfs/data/jobs/triggered/SomeJob/201605192149381933/output_log.txt",
  "error_url": null,
  "url": "https://mysite.scm.azurewebsites.net/api/triggeredwebjobs/SomeJob/history/201605192149381933",
  "job_name": "SomeJob",
  "trigger": "External - ARMClient/1.1.1.0"
}

Да, мы добавили новый механизм связывания в библиотеку расширений, чтобы вы могли получить идентификатор экземпляра - ExecutionContext. Смотрите пример здесь в примерах репо расширений. Чтобы использовать эту привязку, вам нужно вставить бета1 предварительный выпуск пакета Microsoft.Azure.WebJobs.Extensions и добавить config.UseCore() в код запуска (как показывает пример приложения). Это было добавлено на основе другого запроса, похожего на ваш.

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