Два триггера таймера в функции Azure с параметрами

У нас есть два триггера таймера для функции Azure - триггер A и триггер B. Если триггер A определен "первым", он запускается, а триггер B - нет. Аналогично, если триггер B определен первым, он запускается, а триггер A - нет.

Это приводит к двум вопросам:

  1. Может ли функция Azure иметь два триггера таймера? Ничего не могу найти в документации. Самое близкое, что я нашел, - это ответ SO, подразумевающий, что это невозможно.
  2. Каково хорошее решение этой проблемы, учитывая, что выражение NCRONTAB с разделителями-запятыми в соответствии с официальной документацией не сокращает его здесь из-за разных параметров?

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

1 ответ

Решение

Обновить:

Как сказал Питер Бонс, "вызовите общий метод".

Оригинальный ответ:

Может ли функция Azure иметь два триггера таймера? Ничего не могу найти в документации. Самое близкое, что я нашел, - это ответ SO, подразумевающий, что это невозможно.

Если вы говорите о приложении Azure Function, то это возможно.

Но если вы говорите о единой лазурной функции, то вы не можете поместить два триггера в одну функцию.

Например, ниже работает хорошо:

Каково хорошее решение этой проблемы, учитывая, что выражение NCRONTAB с разделителями-запятыми в соответствии с официальной документацией не сокращает его здесь из-за разных параметров?

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

Если вам нужен "динамический" CRON, вы можете сделать что-то вроде ниже и изменить сводное значение:

       {
  "bindings": [
    {
      "name": "myTimer",
      "type": "timerTrigger",
      "direction": "in",
      "schedule": "%test%"
    }
  ]
}

Выше измените значение на портале, вы также можете установить переменную среды. Значение берется из env var.

Другие вопросы по тегам