Функция Azure Injection Dependecy Autofac SingleInstance

Я пошел по этим ссылкам. https://dontcodetired.com/blog/post/Azure-Functions-Dependency-Injection-with-Autofac

Привязка Autofac во время выполнения

Это работало нормально. Я хочу знать, что при масштабировании функции azure объект, внедренный в функцию azure, будет использоваться всеми экземплярами функции azure. В данном случае объектом является NaiveInvestmentAllocator.

Дайте мне знать, если у вас есть сомнения. Также я фактически реализовал комбинацию двух ссылок. Это похоже на то, что фабричный шаблон используется для получения объекта экземпляров из контейнера Autofac. Я могу поделиться кодом, если кто-то хочет, но я не думаю, что это необходимо.

Мой вопрос: если я реализовал первую ссылку, введенный объект используется всеми экземплярами одной и той же функции azure или нет?




Ответы (1)


Неа.

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

Если требуется иметь общее состояние для нескольких экземпляров приложения-функции, следует разгрузить постоянство состояния на что-то вроде Redis, Хранилище таблиц, Хранилище BLOB-объектов и т. д.

Например, вы можете использовать Azure Cache для Redis и внедрить client для того же в свой класс обслуживания.

Если вы хотите сохранить количество открытых подключений, обратите внимание, что limit для каждого экземпляра.

person PramodValavala-MSFT    schedule 03.03.2020