Всем привет.
Приходится переводить сервисы из .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)
по которым система конфигурации сама сможет забайндить конфигурацию на поля??
Сори что может сумбурно как-то но в какую сторону копать?