Приложения-функции Azure с однократной инициализацией Python

Я использую приложения-функции Azure с Python. У меня есть два десятка функциональных приложений, все из которых используют Postgres DB и Custom Vision. Все приложения-функции настроены как HttpTriggers. Прямо сейчас, когда функция запускается, новый объект обработчика базы данных (или пользовательского обработчика видения) создается, используется и завершается, когда выполняется вызов приложения функции.

Создание экземпляров новых объектов при каждом поступающем запросе кажется очень контрпродуктивным. Есть ли способ создать экземпляры общих объектов один раз, а затем передать их функции при их вызове?


person wasp256    schedule 30.04.2019    source источник


Ответы (1)


Как правило, функции Azure предназначены для без сохранения состояния и не должны совместно использовать объекты от одного вызова к другому. Однако есть и исключения.


Совместное использование объектов подключения

Документы Azure рекомендуют для совместного использования неправильный шаблон экземпляра объектов подключения, которые предназначены для однократного открытия в приложении и повторного использования.

Чтобы это сработало для вас, нужно помнить о некоторых вещах, в основном:

Ключевым элементом этого антипаттерна является многократное создание и уничтожение экземпляров совместно используемого объекта. Если класс не является разделяемым (не потокобезопасным), то этот антипаттерн не применяется.

У них есть несколько пошаговых руководств, которые, вероятно, вам помогут. Поскольку ваш вопрос носит довольно общий характер, лучшее, что я могу сделать, это порекомендовать вам прочитать его и посмотреть, поможет ли это вам.


Долговечные функции

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

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

person MyNameIsCaleb    schedule 03.05.2019