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

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

Для получения конфигурации сервисы Атомкод используют стандартные механизмы .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-контейнера.