Estoy tratando de conseguir mi .NET Core 3.1 aplicación para usar las variables de entorno cuando se ejecuta en Kubernetes y el retroceso a appsettings.json
cuando la variable de entorno no se establece allí.
Estoy usando esto en mi ConfigureServices
método en el archivo de inicio
var configuration = new ConfigurationBuilder()
.AddEnvironmentVariables()
.Build();
var dbname = configuration.GetSection("DB_NAME").Value;
Mi appsettings.json
el archivo tiene este
{
"AppSettings": {
"Data": {
"DB_NAME":"test_db"
}
}
}
Estoy configurando la variable de entorno mediante el comando siguiente en el símbolo del sistema.
setx DB_NAME ="Kube_test_db"
Cuando ejecuto la aplicación en Visual Studio, me sale el nombre de base como Kube_test_db
. Cuando puedo eliminar la variable de entorno de Usuario en Windows 10 configuración del sistema y ejecute de nuevo la aplicación en Visual Studio, esta línea devuelve null.
var dbname = configuration.GetSection("DB_NAME").Value;
Lo que me estoy perdiendo para obtener el valor para volver a caer a lo que está definido en el appsettings.json
archivo?
var dbname = configuration.GetSection("DB_NAME").Value;
avar dbname = configuration.GetSection("Appsettings:Data:DB_NAME").Value;
para obtener el valor de la appsettings.json. Esto no coincide con la variable de entorno que es sóloDB_NAME
. Si pongo la variable de entorno comoAppsettings:Data:DB_NAME
y ejecutar el código comodbname = configuration.GetSection("Appsettings:Data:DB_NAME").Value;
entonces yo todavía obtener el valor de la appsettings.json y no del ambiente.