Ответ 1
Между Azure Scheduler и Azure WebJobs существует тесная связь. В частности, Azure WebJobs не имеет внутренней поддержки для планирования, WebJobs полагается на Планировщика Azure для вызова на веб-сайт *.scm.azurewebsites.net
.
Таким образом, для этих сервисов можно использовать командлеты PowerShell для настройки Azure WebJobs для запуска по расписанию с использованием Azure Scheduler.
$location = "North Europe";
$site = New-AzureWebsite -Location $location `
-Name "amido-test-website";
$job = New-AzureWebsiteJob -Name $site.Name `
-JobName "amido-test-job" `
-JobType Triggered `
-JobFile ~\Desktop\test.zip;
$jobCollection = New-AzureSchedulerJobCollection `
-Location $location `
-JobCollectionName "amido-test-job-collection";
$authPair = "$($site.PublishingUsername):$($site.PublishingPassword)";
$pairBytes = [System.Text.Encoding]::UTF8.GetBytes($authPair);
$encodedPair = [System.Convert]::ToBase64String($pairBytes);
New-AzureSchedulerHttpJob `
-JobCollectionName $jobCollection[0].JobCollectionName `
-JobName "test" `
-Method POST `
-URI "$($job.Url)\run" `
-Location $location `
-StartTime "2014-01-01" `
-Interval 1 `
-Frequency Minute `
-EndTime "2015-01-01" `
-Headers @{ `
"Content-Type" = "text/plain"; `
"Authorization" = "Basic $encodedPair"; `
};
Это немного длиннее, поэтому на английском языке выше script делает следующее:
- Создает новый веб-сайт Azure.
- Создает и загружает новый WebJob.
- Создает новую коллекцию заданий планировщика Azure.
- Генерирует значение заголовка базовой аутентификации HTTP.
- Создает новый HTTP-задание Azure Scheduler, который выполняет аутентифицированный запрос в API *.scm.azurewebsites.net.
Надеюсь, это избавит некоторых других разработчиков от царапин на голове, пытаясь понять это.