Încerc să-mi iau .NET Core 3.1 aplicație pentru a utiliza variabile de mediu atunci când rulează în Kubernetes și de rezervă pentru appsettings.json
atunci când variabila de mediu nu a stabilit acolo.
Eu sunt, folosind acest lucru în mea ConfigureServices
metoda în fișierul de pornire
var configuration = new ConfigurationBuilder()
.AddEnvironmentVariables()
.Build();
var dbname = configuration.GetSection("DB_NAME").Value;
Mea appsettings.json
acest fișier a
{
"AppSettings": {
"Data": {
"DB_NAME":"test_db"
}
}
}
Sunt setarea variabilei de mediu utilizând următoarea comandă la promptul de comandă.
setx DB_NAME ="Kube_test_db"
Când am rula aplicație în Visual Studio, am pb nume ca Kube_test_db
. Când am șterge Utilizatorul mediu variabile pe Windows 10 setările de sistem și rulați aplicația din nou în Visual Studio, această linie returnează null.
var dbname = configuration.GetSection("DB_NAME").Value;
Ce îmi lipsește pentru a obține valoarea de a cădea înapoi la ceea ce este definit în appsettings.json
de fișiere?
var dbname = configuration.GetSection("DB_NAME").Value;
pentru avar dbname = configuration.GetSection("Appsettings:Data:DB_NAME").Value;
pentru a obține valoarea de appsettings.json. Acest lucru nu se potrivește cu variabila de mediu care este doarDB_NAME
. Dacă am pus variabila de mediu caAppsettings:Data:DB_NAME
și rula cod cadbname = configuration.GetSection("Appsettings:Data:DB_NAME").Value;
apoi am mai iau valoare de la appsettings.json și nu din mediu.