Установить другой атрибут таймера для функции azure - PullRequest
0 голосов
/ 28 мая 2020

Я хочу развернуть свое приложение-функцию Azure в различных средах (Тестирование, Приемка, Производство). Это функция, запускаемая по времени, которую нужно запускать в производственной среде каждую ночь. Однако я не хочу этого, когда я его тестирую и отлаживаю, т.е. когда он запускается в средах Dev и A cc. В настоящее время мой атрибут таймера выглядит следующим образом:

public class TimedAzFunction
{   
   // CTOR 
   public TimedAzFunction()
   { 
   }

   // How to set the timer (using CRON notation):
   // "0 30 3 * * 1-5" for prod
   // Runs every 5 mins: "0 */5 * * * *" for dev and acc
   [FunctionName("TimedAzFunction")]
   public async Task Run([TimerTrigger("0 */5 * * * *")]TimerInfo myTimer, ILogger log)  
   {
      // Code for function here
      // ...
   }
}

К сожалению, это означает, что мне нужно изменить его вручную, когда я хочу опубликовать sh его, что подвержено ошибкам.

Я попытался сделать что-то с локальными настройками и оценить значение, а затем создать объект TimerTrigger, но это не сработало. Как настроить таймер в зависимости от среды, в которой он работает, например, используя AZURE_FUNCTIONS_ENVIRONMENT и my local.settings.json? В частности, я хочу, чтобы функция запускалась каждую ночь в 3 часа ночи, а в средах Dev и A cc каждые 5 или 10 минут.

1 Ответ

4 голосов
/ 28 мая 2020

Вы можете добавить значение в «Настройки приложения» вашего приложения-функции на портале azure (в каждой среде вашей функции, такой как dev / prod). enter image description here

В коде функции просто отредактируйте код, как показано ниже: enter image description here

При развертывании функции с локального на azure, он будет активирован значением myTimerCron в ваших «Настройках приложения».

Надеюсь, это поможет ~

...