#azure #cron #azure-functions
#azure #cron #azure-функции
Вопрос:
Я пытаюсь создать CRON для каждой минуты в моем триггере таймера функции Azure.
Согласно документации, я нашел это: https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-timer#cron-examples
"0 */1 * * * *"
не запускается вообще.
"*/1 * * * * *"
выполняется каждую секунду.
Где я ошибаюсь?
function.json
выглядит так:
{
"bindings": [
{
"name": "myTimer",
"type": "timerTrigger",
"direction": "in",
"schedule": "0 */1 * * * *"
}
],
"scriptFile": "../dist/TriggerWork/index.js"
}
Комментарии:
1. Как вы подтверждаете, что он не запускается каждую минуту? Это выглядит правильно, поэтому я спрашиваю
2. Да — я ждал > 1 минуты. И код — это всего лишь пример deafult согласно ссылке выше. Я вижу, что он регистрируется, когда я использую
"*/1 * * * * *"
3. Ах, я только что заметил в консоли:
The listener for function 'Functions.TriggerWork' was unable to start. [4/17/19 4:09:22 AM] The listener for function 'Functions.TriggerWork' was unable to start. Microsoft.WindowsAzure.Storage: Settings must be of the form "name=value".
4. Похоже, вы не настроили правильный ключ хранилища. Вы тестируете на локальном или на портале?
5. @GeorgeChen — извините, не понимаю. Он выполняется локально.
Ответ №1:
Я мог бы воспроизвести вашу проблему с {AzureWebJobsStorage}
записью строки подключения в local.settings.json
is каким-то образом не соответствует ее формату:
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "{AzureWebJobsStorage}",
"FUNCTIONS_WORKER_RUNTIME": "dotnet"
}
}
Для всех триггеров, кроме HTTP, требуется допустимая строка подключения AzureWebJobsStorage. Причина этого связана с масштабированием до нескольких виртуальных машин: если функция масштабируется до нескольких виртуальных машин и имеет несколько экземпляров, для координации требуется учетная запись хранилища, чтобы гарантировать, что одновременно выполняется только один экземпляр триггера таймера. Это создает некоторые трудности, если вы пытаетесь разрабатывать локально, но, к сожалению, в настоящее время это ограничение триггера таймера.
Для получения более подробной информации вы можете обратиться к этой аналогичной проблеме.
Комментарии:
1. извините, какое решение в итоге я не получил вашего ответа? Каким должен быть допустимый azurewebjobstorage?