Snažím sa dostať môj .NET Core 3.1 aplikáciu používať premenné prostredia, keď beží v Kubernetes a fallback na appsettings.json
pri premennej prostredia nie je nastavené tam.
Ja používam to v mojom ConfigureServices
postup pri spustení súboru
var configuration = new ConfigurationBuilder()
.AddEnvironmentVariables()
.Build();
var dbname = configuration.GetSection("DB_NAME").Value;
Môj appsettings.json
súbor má tento
{
"AppSettings": {
"Data": {
"DB_NAME":"test_db"
}
}
}
Ja som nastavenie premennej prostredia pomocou nasledujúceho príkazu na príkazovom riadku.
setx DB_NAME ="Kube_test_db"
Keď som spustiť aplikáciu Visual Studio, ktorý som si db meno ako Kube_test_db
. Keď som na odstránenie Používateľa premennej prostredia na Windows 10 systémové nastavenia a spustiť aplikáciu znova v Visual Studio, tento riadok sa vráti hodnotu null.
var dbname = configuration.GetSection("DB_NAME").Value;
Čo mám chýba dostať hodnota klesne späť na to, čo je definované v appsettings.json
súbor?
var dbname = configuration.GetSection("DB_NAME").Value;
navar dbname = configuration.GetSection("Appsettings:Data:DB_NAME").Value;
ak chcete získať hodnotu z appsettings.json. Táto nezhoduje premennej prostredia, ktoré je lenDB_NAME
. Ak som dal premennej prostredia akoAppsettings:Data:DB_NAME
a spustiť kód akodbname = configuration.GetSection("Appsettings:Data:DB_NAME").Value;
potom som ešte dostať sa hodnota z appsettings.json, a nie z prostredia.