Лазерный таймер функции настройки через настройки приложения
Я работаю над заданием таймера функций Azure, мне нужно получить выражение cron из настроек appsettings. Пожалуйста, дайте мне знать, как я могу получить значение из настроек приложения в функциях Azure. Я хочу запустить свою лазурную функцию с 9:00 до 12:00 PM каждые 30 минут \
{
"disabled": false,
"bindings": [
{
"name": "timerInfo",
"type": "timerTrigger",
"direction": "in",
"schedule": "0 * * * * *"
}
]
}
Ответы
Ответ 1
Установите расписание как "schedule": "%EmailScheduleTriggerTime%"
, а затем в appsetting.json или local.settings.json вы можете установить значение EmailScheduleTriggerTime как "0 30 9-12 * * *"
{
"IsEncrypted": false,
"Values": {
"EmailScheduleTriggerTime": "0 30 9-12 * * *", //Run every 30 minutes from 9:00 to 12:00
},
"ConnectionStrings": {
"DefaultConnection": ""
}
}
[FunctionName("TimerfunctionApp")]
public static void Run([TimerTrigger("%EmailScheduleTriggerTime%")] TimerInfo TInfo, TraceWriter log)
Ответ 2
Если вы используете инструментарий VS2017 Functions и определяете свою функцию в .NET-проекте (а не непосредственно на портале Azure), вы можете выбрать интервал от AppSettings
с помощью синтаксиса %
:
[FunctionName("MyTimerFunction")]
public static void Run([TimerTrigger("%TimerInterval%")] TimerInfo myTimer, TraceWriter log, ..
Затем в настройках вашего приложения укажите требуемый интервал формата CRON, например. в local.settings.json
{
"Values" : {
"TimerInterval" : "0 30 9-12 * * *"
}
}
Ответ 3
Мы можем использовать "schedule": "0 */30 9-12 * * *"
, более подробную информацию о таймеру Azure Functions см. в официальном документе azure .
Значение расписания - это выражение CRON, которое включает эти шесть полей:
{секунда} {мин.} {час} {день} {месяц} {день недели}
Примечание:
Часовой пояс по умолчанию, используемый с выражениями CRON, Скоординированное универсальное время (UTC). Чтобы иметь выражение CRON на основе другого часового пояса, создайте новый параметр приложения для своего функционального приложения с именем WEBSITE_TIME_ZONE