Запланированный 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, так и планировщик. Технически это можно сделать сегодня, но документации там еще мало.
Ответ 3
До тех пор, пока у Azure не будет более подходящего механизма, вы можете изучить сценарий с помощью PowerShell. Смотрите: Создайте запланированный Azure WebJob с PowerShell