Получить идентификатор или имя запуска 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() в код запуска (как показывает пример приложения). Это было добавлено на основе другого запроса, похожего на ваш.