Sto cercando di ottenere il mio .NET Core 3.1 app per utilizzare le variabili di ambiente durante l'esecuzione in Kubernetes e di riserva appsettings.json
quando la variabile di ambiente non ci si.
Sto usando questo nel mio ConfigureServices
metodo nel file di avvio
var configuration = new ConfigurationBuilder()
.AddEnvironmentVariables()
.Build();
var dbname = configuration.GetSection("DB_NAME").Value;
Il mio appsettings.json
il file è questo
{
"AppSettings": {
"Data": {
"DB_NAME":"test_db"
}
}
}
Sto impostando la variabile di ambiente utilizzando il seguente comando nel prompt dei comandi.
setx DB_NAME ="Kube_test_db"
Quando si esegue l'applicazione in Visual Studio, ho il db nome Kube_test_db
. Quando si elimina la variabile d'ambiente Utente su Windows 10 impostazioni di sistema ed eseguire nuovamente l'applicazione in Visual Studio, questa riga restituisce null.
var dbname = configuration.GetSection("DB_NAME").Value;
Quello che mi manca per ottenere il valore di cadere di nuovo a ciò che è definito il appsettings.json
il file?
var dbname = configuration.GetSection("DB_NAME").Value;
pervar dbname = configuration.GetSection("Appsettings:Data:DB_NAME").Value;
per ottenere il valore da appsettings.json. Questo non corrisponde alla variabile di ambiente che è soloDB_NAME
. Se ho messo la variabile di ambiente comeAppsettings:Data:DB_NAME
ed eseguire il codicedbname = configuration.GetSection("Appsettings:Data:DB_NAME").Value;
poi ho ancora ottenere il valore da appsettings.json e non dall'ambiente.