Приложения-функции Azure с одноразовой инициализацией Python - PullRequest
1 голос
/ 30 апреля 2019

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

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

1 Ответ

1 голос
/ 03 мая 2019

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


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

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

Есть некоторые вещи, которые нужно иметь в виду, чтобы это работало на вас, в основном:

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

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


Прочные функции

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...