Перейти к основному содержимому

Управление конфигурацией сервиса

Для получения конфигурации сервисы Платформы используют стандартные механизмы .NET, а именно:

  • провайдеры источников конфигурации;
  • интерфейс IConfiguration для доступа к параметрам конфигурации.

Базовые классы сервиса Платформы подключают предопределенный список провайдеров конфигурации в порядке, указанном в следующей таблице.

№ п/пИсточникКомментарии
1Файл appsettings.jsonИспользуется с учетом типа среды, например, Development
2Переменные средыИспользуется для задания параметров, используемых при запуске сервиса до доступа к сервису конфигураций
3Сервис конфигурации ПлатформыПри необходимости этот источник можно отключить с помощью свойства UseDiscoveryConfiguration класса StartParameters
4Дополнительные файлы конфигурацииНеобязательный источник. Список дополнительных файлов конфигурации можно задать с помощью свойства AdditionalConfigurationFilesNames класса StartParameters
5Переменные среды (повторно)Используется последним с целью переопределить параметры с помощью переменных среды, определенные в любом предыдущем источнике
примечание

Если сервис конфигурации Платформы включен в список источников конфигурации с помощью параметра класса StartParameters, при запуске разрабатываемый сервис будет ожидать доступности сервиса конфигурации и продолжит запуск только после получения конфигурации из этого источника.

При локальной отладке разрабатываемого сервиса удобнее использовать файл(ы) конфигурации appsettings.json, appsettings.Development.json или указывать параметры через переменные среды, например, используя файл launchSettings.json. Сервис конфигурации можно отключить.

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

подсказка

Файлы конфигурации appsettings.json, appsettings.Development.json не должны попадать в образ Docker-контейнера, поэтому перед упаковкой сервиса в образ Docker-контейнера рекомендуется удалить эти файлы.