Лазерный таймер функции настройки через настройки приложения

Я работаю над заданием таймера функций 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