从外部触发时获取Azure Webjob运行的ID或名称

时间:2015-09-25 14:16:48

标签: azure azure-webjobs

当我使用其余的api启动webjob时: / api / triggeredwebjobs / {job name} / run?arguments = {arguments}

我需要知道调用的程序是否成功运行,现在我使用... / api / triggeredwebjobs / {job name} / history

请求历史记录的最新结果

现在,有没有办法在我调用之后获取作业的{id}?因为显然没有办法确定最新的历史是我刚刚开始的工作。还是有另一种方法可以完成任务吗?

感谢。

3 个答案:

答案 0 :(得分:2)

是的,我们在扩展库中添加了一个新的活页夹,以便您获取实例ID - ExecutionContext 。请参阅extensions repo示例中的example here。要使用此绑定,您必须引入beta1 Microsoft.Azure.WebJobs.Extensions预发行包,并将config.UseCore()添加到您的启动代码(如示例应用程序所示)。这是根据与您类似的另一个问题添加的。

答案 1 :(得分:2)

你可以在你的代码中的任何地方调用它,它的工作原理! (不是在调试中,但在发布时)

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

答案 2 :(得分:2)

我们刚刚在WebJobs API中添加了对此的支持。它的工作方式是,当您发送POST请求以触发WebJob时,您现在返回一个位置属性,其中包含已启动的运行详细信息的URL。 e.g。

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