У меня есть набор функций Azure , которые разрабатываются в Visual Studio.
Существует одна функция TimerTrigger , которая по умолчанию отключена с помощью DisableAttribute . В результате атрибут "disabled"
будет установлен на true
на портале Azure.
После выполнения специального условия запускается другая функция, которая обновляет файл TimerTrigger function.json
с "disabled": false
. Это запускает TimerTrigger .
Но когда выполняется другое условие, функция.json TimerTrigger обновляется с "disabled": true
, что не имеет никакого эффекта, TimerTrigger все еще срабатывает.
Обновление function.json выполняется как описано здесь
Как программно включить / отключить функцию Azure .
Я прочитал несколько вопросов на GitHub, но до сих пор нет ответа.
Я вижу следующие обходные пути:
- Попробуйте изменить файл host.json, каждый раз обновляя список функций. Но я не смог найти образец изменения файла host.json. Кроме того, я предполагаю, что это не очень хороший подход, так как все функции перезагружаются во время такого обновления, и в документации есть совет использовать этот подход только для локальной отладки.
https://docs.microsoft.com/en-us/azure/azure-functions/functions-host-json#functions.
- Bind DisableAttribute при настройке приложения. Но я считаю процесс обновления
app.settings
изощренным. Измените настройки приложения веб-сайта Azure из кода .
- Пересмотр архитектурного подхода.
Основная цель TimerTrigger - это включить его и начать вызывать какой-нибудь сервер, когда он не работает (ConnectionValidator). Как только сервер в порядке - отключение TimerTrigger и продолжение обычного рабочего процесса.
Есть идеи по этому поводу? Может быть, есть другой способ обойти это?