Запланированный Azure WebJob, развернутый через Git, приводит к заданию по запросу

У меня есть Git -Enabled ASP.NET WebApp с одним ассоциированным Azure WebJob. Когда я развертываю это через Visual Studio, все в порядке, но это довольно сложно в среде непрерывной доставки, поэтому я хотел бы опубликовать веб-приложение и веб-приложение через Git.

Через Azure Tooling я связал свой проект WebJob, и я получил файл "webjobs-list.json" в проекте WebApp:

{
"$schema": "http://schemastore.org/schemas/json/webjobs-list.json",
"WebJobs": [{
  "filePath": "../CodeInside.Hub.Job/CodeInside.Hub.Job.csproj"
  }]
}


webjobs-list.json Источник

Внутри проекта приложения консоли я получил файл "webjob-publish-settings.json" с этим контентом:

{
"$schema": "http://schemastore.org/schemas/json/webjob-publish-settings.json",
"webJobName": "Hub-Crawler",
"startTime": "2014-11-25T02:00:00+01:00",
"endTime": null,
"jobRecurrenceFrequency": "Day",
"interval": 1,
"runMode": "Scheduled"
}

webjob-publish-settings.json

Как вы видите, "runMode" установлен в "Scheduled", и все отлично, когда я развертываю его через Visual Studio.

Но без Visual Studio я получил это "по запросу" WebJob: enter image description here

В настоящее время это не поддерживается или что может быть проблемой?

Полный .sln можно найти на GitHub

Ответы

Ответ 1

Наконец, есть решение для развертывания запланированных веб-приложений с развертыванием git.

Этот блог содержит сведения.

В решении используется планировщик kudu в отличие от планировщика Azure, поэтому портал Azure по-прежнему показывает задание как "On Demand", но он выполняет за расписание, и портал показывает историю точно.

Ответ 2

В самом деле, проблема в том, что сценарий еще недостаточно хорошо поддерживается. В частности, при публикации через git (или GitHub/Bitbucket) файл webjob-publish-settings.json игнорируется.

Один способ обхода - публиковать один раз с помощью VS только для создания планировщика, а затем использовать git впоследствии.

В конце концов, этот сценарий будет разрешен с использованием шаблонов Azure Resource Manager, которые определяют как WebSite, так и планировщик. Технически это можно сделать сегодня, но документации там еще мало.