Snažím se dostat můj .NET Jádro 3.1 aplikace pro použití proměnné prostředí, když běží v Kubernetes a záložních appsettings.json
když proměnná není nastavena.
Používám to v mé ConfigureServices
metoda, při spuštění, soubor
var configuration = new ConfigurationBuilder()
.AddEnvironmentVariables()
.Build();
var dbname = configuration.GetSection("DB_NAME").Value;
Můj appsettings.json
tento soubor má
{
"AppSettings": {
"Data": {
"DB_NAME":"test_db"
}
}
}
Já jsem nastavení proměnné prostředí pomocí následujícího příkazu na příkazovém řádku.
setx DB_NAME ="Kube_test_db"
Při spuštění aplikace v aplikaci Visual Studio, mám db název jako Kube_test_db
. Když jsem odstranit Uživatelské proměnné prostředí v systému Windows 10 systému windows a znovu spustit aplikaci v Visual Studio, tento řádek vrátí null.
var dbname = configuration.GetSection("DB_NAME").Value;
Co mi tu chybí, aby si hodnotu k pádu zpátky na to, co je definováno v appsettings.json
souboru?
var dbname = configuration.GetSection("DB_NAME").Value;
kvar dbname = configuration.GetSection("Appsettings:Data:DB_NAME").Value;
získat hodnotu z appsettings.json. To neodpovídá proměnná prostředí, která je pouzeDB_NAME
. Když jsem dal proměnné prostředí jakoAppsettings:Data:DB_NAME
a spustit kód jakodbname = configuration.GetSection("Appsettings:Data:DB_NAME").Value;
pak jsem ještě dostat hodnotu z appsettings.json a ne z prostředí.