. NET Core 3.1 uygulamamın Kubernetes'te çalışırken ortam değişkenlerini kullanmasını ve geri dönmesini sağlamaya çalışıyorum appsettings.json
ortam değişkeni orada ayarlanmadığında.
Bu kullanarak benim olduğumu ConfigureServices
başlangıç dosyasındaki yöntem
var configuration = new ConfigurationBuilder()
.AddEnvironmentVariables()
.Build();
var dbname = configuration.GetSection("DB_NAME").Value;
Benim appsettings.json
dosyada bu var
{
"AppSettings": {
"Data": {
"DB_NAME":"test_db"
}
}
}
Komut isteminde aşağıdaki komutu kullanarak ortam değişkenini ayarlıyorum.
setx DB_NAME ="Kube_test_db"
Uygulamayı Visual Studio'da çalıştırdığımda db adını şu şekilde alıyorum Kube_test_db
. Windows 10 sistem ayarlarında Kullanıcı ortam değişkenini sildiğimde ve uygulamayı Visual Studio'da yeniden çalıştırdığımda, bu satır null değerini döndürür.
var dbname = configuration.GetSection("DB_NAME").Value;
Tanımlanan değere geri dönmek için değeri almak için neyi kaçırıyorum appsettings.json
dosya?
var dbname = configuration.GetSection("DB_NAME").Value;
-e doğruvar dbname = configuration.GetSection("Appsettings:Data:DB_NAME").Value;
appsettings değerini almak için.json. Bu, yalnızca ortam değişkeni ile eşleşmiyorDB_NAME
. Ortam değişkenini şu şekilde koyarsamAppsettings:Data:DB_NAME
ve kodu şu şekilde çalıştırındbname = configuration.GetSection("Appsettings:Data:DB_NAME").Value;
sonra hala appsettings'den değeri alıyorum.json ve çevreden değil.