Два триггера таймера в функции Azure с параметрами
У нас есть два триггера таймера для функции Azure - триггер A и триггер B. Если триггер A определен "первым", он запускается, а триггер B - нет. Аналогично, если триггер B определен первым, он запускается, а триггер A - нет.
Это приводит к двум вопросам:
- Может ли функция Azure иметь два триггера таймера? Ничего не могу найти в документации. Самое близкое, что я нашел, - это ответ SO, подразумевающий, что это невозможно.
- Каково хорошее решение этой проблемы, учитывая, что выражение NCRONTAB с разделителями-запятыми в соответствии с официальной документацией не сокращает его здесь из-за разных параметров?
Мы находимся в точке, где у нас возникает соблазн изменить триггеры таймера на триггеры API и иметь приложение с избыточной функцией для вызова таймера конечной точки с другими параметрами.
1 ответ
Обновить:
Как сказал Питер Бонс, "вызовите общий метод".
Оригинальный ответ:
Может ли функция Azure иметь два триггера таймера? Ничего не могу найти в документации. Самое близкое, что я нашел, - это ответ SO, подразумевающий, что это невозможно.
Если вы говорите о приложении Azure Function, то это возможно.
Но если вы говорите о единой лазурной функции, то вы не можете поместить два триггера в одну функцию.
Например, ниже работает хорошо:
Каково хорошее решение этой проблемы, учитывая, что выражение NCRONTAB с разделителями-запятыми в соответствии с официальной документацией не сокращает его здесь из-за разных параметров?
Выражения CRON не могут представлять все варианты использования, поэтому иногда необходимо разделить код на две функции в приложении-функции.
Если вам нужен "динамический" CRON, вы можете сделать что-то вроде ниже и изменить сводное значение:
{
"bindings": [
{
"name": "myTimer",
"type": "timerTrigger",
"direction": "in",
"schedule": "%test%"
}
]
}
Выше измените значение на портале, вы также можете установить переменную среды. Значение берется из env var.