Запуск функции Azure по расписанию

Завершено

Часто требуется выполнять определенную логику через заданные интервалы времени. Представьте себе, что вы владелец блога, и вы заметили, что ваши подписчики не читают последние записи. Вы решаете, что лучше всего будет рассылать им раз в неделю напоминание по электронной почте. Эта логика реализуется путем создания приложения-функции в Azure с триггером таймера для вызова функции еженедельно.

Что такое триггер по таймеру?

Триггер по таймеру — это триггер, выполняющий функцию через фиксированные интервалы времени. Чтобы создать триггер по таймеру, необходимо предоставить сведения для двух параметров.

  1. Имя параметра метки времени. Это просто идентификатор для доступа к триггеру в коде.
  2. Расписание, которое представляет собой выражение CRON, задающее интервал таймера.

Что такое выражение CRON

Выражение CRON — это строка, состоящая из шести полей, которые представляют набор значений времени.

Порядок этих шести полей в Azure: {second} {minute} {hour} {day} {month} {day of the week}.

Например, выражение CRON для создания триггера, активируемого каждые пять минут, будет следующим: 0 */5 * * * *.

Сначала эта строка может показаться запутанной. Мы вернемся к ней и подробно рассмотрим принципы ее построения, когда будем обсуждать выражения CRON.

Для создания выражения CRON необходимо иметь общее представление о некоторых специальных символах.

Специальный знак Значение Пример
* Выбирает все значения в поле Звездочка "*" в поле дня недели означает каждый день.
, Разделяет элементы в списке Запятая "1,3" в поле дня недели означает только понедельники (день 1) и среды (день 3).
- Задает диапазон Дефис "10-12" в поле часа означает диапазон с 10 до 12 часов.
/ Задает шаг приращения Косая черта "*/10" в поле минут означает шаг в 10 минут.

Теперь вернемся к исходному примеру выражения CRON. Попробуем разобрать его, разбив на отдельные поля.

0 */5 * * * *

Первое поле представляет секунды. Оно поддерживает значения от 0 до 59. Так как это поле содержит нуль, выбирается первое возможное значение, то есть одна секунда.

Второе поле представляет минуты. Значение "*/5" содержит два специальных символа. Во-первых, звездочка (*) означает «выбрать каждое значение в поле». Так как это поле представляет время в минутах, возможные значения — от 0 до 59. Второй специальный символ — это косая черта (/), которая представляет шаг приращения. В сочетании эти символы означают выбор каждого пятого значения из всех возможных значений (0–59). Это можно выразить проще: "каждые пять минут".

Остальные четыре поля числовым образом представляют час в 24-часовой день, день в месяце, месяц в 12-месячном году и день 7-дневной недели. Значки в этих полях означают выбор всех возможных значений. В этом примере мы выбираем "каждый час каждого дня каждого месяца".

В целом все выражение означает "в первую секунду каждой пятой минуты каждого часа каждого дня каждого месяца".

Создание триггера по таймеру

Триггер по таймеру можно создать на портале Azure. В приложении-функции выберите триггер таймера из списка шаблонов триггеров. Введите логику, которая должна выполняться. Укажите имя параметра метки времени и выражение CRON.

В этом модуле мы сосредоточимся на создании триггеров на портале, но вы также можете создавать триггеры программным способом с помощью основных инструментов, Visual Studio или Visual Studio Code.

Триггер таймера вызывает код функции в согласованном расписании. Чтобы определить расписание для триггера по таймеру, следует создать выражение CRON. Это строка, которая представляет набор значений времени.