.NET Core composite configuration
От: Jericho113 Украина  
Дата: 18.12.20 13:12
Оценка:
Всем привет.

Приходится переводить сервисы из .NET на .NET Core 3.1 ( почему не на .NET 5 потому что он не LTS)

И вот возникли небольшие проблемы с миграцией конфигурации...
Она размазана по appsettings.{dev/qa/prod}.json -там хранятся всякие несекьюрные вещи типа урлов внешних сервисов и всяких там таймаутов и т.п.
Все пароли, серваки и т.п. уехали в AWS SystemManager Paramter Store — это девопсы выбирали такое хранилище вместе с безопасниками — девелоперов поставили перед фактом.
т.е в JSON конфигурации сейчас вот такое

// JSON Config  - appsettings.Dev.json
InternalServiceSettings:{
    URL="https://aa/bb/cc",
    User="", // уехало в AWS SM Param Store  по ключу /Dev/InternalServiceSettings/User
    Password=""// уехало в AWS SM Param Store по ключу /Dev/InternalServiceSettings/User/Password
 }

В консольной аппликухе есть класс
public class InternalServiceSettings 
{
    public string URL{get;set;} 
    public string User{get;set;} 
    public string Password{get;set;}
}

в который раньше всасывались сеттинги из json как
 var settings= new InternalServiceSettings();
    configuration.Bind("InternalServiceSettings",settings);


Что есть — вычитка всего из AWS Param Store и потом ручное распихивание в коде по полям которые не заполнены...
Т.е. все вычитать из JSON конфига, потом полезть в AWS ParamStore и оттуда достать все и потом руками в коде распихать по нужным полям.

Хотелось бы что бы
Как- либо все вычитанное из AWS ParamStore вместить в .NET Core Configuration т.е. что бы оно уже было доступно как будто это локальный конфиг.
Байндить значения из конфига на инстанс класса как и ранее..

Может как-то можно поля класса разметить аттрибутами которые определяют ключи (/Dev/InternalServiceSettings/User /Dev/InternalServiceSettings/User/Password)
по которым система конфигурации сама сможет забайндить конфигурацию на поля??

Сори что может сумбурно как-то но в какую сторону копать?
NetDigitally yours ....
.net core configuration aws
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.