पाठ 14 / 26
Configuration और Environments
appsettings.json, environment variables और user secrets से settings पढ़ें।
Settings की परतें
Configuration परतों में है: appsettings.json, फिर appsettings.{Environment}.json, फिर user secrets (Development में), फिर environment variables, फिर command-line arguments। बाद वाले स्रोत पहले वालों को override करते हैं।
Values पढ़ना और सेट करना
Nested keys कोड में : और environment variable के नाम में __ से लिखी जाती हैं। dotnet user-secrets development के secrets को repo से बाहर रखता है।
// appsettings.json: { "Shop": { "PageSize": 20 } }
var pageSize = builder.Configuration.GetValue<int>("Shop:PageSize");
// Shell:
// dotnet user-secrets init
// dotnet user-secrets set "ConnectionStrings:Default" "Server=...;Password=..."
// export Shop__PageSize=50 # overrides appsettings.jsonSecrets कभी commit न करें
Passwords, API keys और signing keys appsettings.json में नहीं रखे जाते। Local में user secrets और production में environment variables या secret manager उपयोग करें।
त्वरित जाँच: एक ही key appsettings.json और environment variable दोनों में हो तो कौन जीतता है?
- appsettings.json
- ऐप जिसे पहले पढ़े
- कोई नहीं; error आता है
- Environment variable
Answer
Environment variable — Environment variables JSON files के बाद जुड़ते हैं, इसलिए वे उन्हें override करते हैं।