.net core 实践:环境配置优化

摘要

docker是互联网技术微服务架构中的神器,每次使用它都会设置环境变量,其中包含系统变量。我们需要识别这些变量并做出相应的选择,以适应不同的环境。

正文

分类整理 .net core 实践活动篇—————配备系统之自然环境配备[九]

序言

在现如今在互联网技术微服务架构较为可用的状况下,docker 可以说一个神器。每一次大家装包docker的情况下全是可用docker 的环境变量,那麼环境变量里边会设定系统变量,这个时候必须大家的运用可以鉴别到这种系统变量并做出相对应的挑选。

可用情景:

docker 软件环境

k8s 软件环境

由于她们全是防护体制的,因此系统变量可以充分发挥其很好的功效。

文章正文

引进:microsoft.extensions.configuration.environmentVariables 这一包。

设定系统变量:

相匹配的lauchSettings.json 以下:

{
  "profiles": {
    "ConfigureDemo": {
      "commandName": "Project",
      "commandLineArgs": "-k1=value4",
      "environmentVariables": {
        "section1__key2": "value2",
        "key1": "value1"
      }
    }
  }
}

这一section1__key2,section1和key2 中间是2个_,做为她们的分层次标记。

编码:

IConfigurationBuilder builder = new ConfigurationBuilder();
builder.AddEnvironmentVariables();

var configurationRoot = builder.Build();
Console.WriteLine($"key1:{configurationRoot["key1"]}");

var section = configurationRoot.GetSection("section1");
Console.WriteLine($"key2:{section["key2"]}");

运作結果:

无尽套娃方式也是可用的,前边基本原理早已讲过去了,这儿只演试编码。

{
  "profiles": {
    "ConfigureDemo": {
      "commandName": "Project",
      "commandLineArgs": "-k1=value4",
      "environmentVariables": {
        "section1__key2": "value2",
        "key1": "value1",
        "section2__section3__key3": "value3"
      }
    }
  }
}

编码:

IConfigurationBuilder builder = new ConfigurationBuilder();
builder.AddEnvironmentVariables();

var configurationRoot = builder.Build();
Console.WriteLine($"key1:{configurationRoot["key1"]}");

var section = configurationRoot.GetSection("section1");
Console.WriteLine($"key2:{section["key2"]}");

var section2 = configurationRoot.GetSection("section2");
var section3 = section2.GetSection("section3");
Console.WriteLine($"key3:{section3["key3"]}");

除开上边的__能够 做为section的分层次符以外,:也是能够 的。

下边演试作为前缀过虑:

{
  "profiles": {
    "ConfigureDemo": {
      "commandName": "Project",
      "commandLineArgs": "-k1=value4",
      "environmentVariables": {
        "key1": "value1",
        "k8s_key2": "value2" 
      }
    }
  }
}

编码:

IConfigurationBuilder builder = new ConfigurationBuilder();
builder.AddEnvironmentVariables("k8s_");

var configurationRoot = builder.Build();

Console.WriteLine($"key1:{configurationRoot["key1"]}");
Console.WriteLine($"key2:{configurationRoot["key2"]}");

結果:

就是并不是k8s_会被过虑掉。

下一节 配备系统之强种类配备。

之上仅仅本人梳理,若有不正确,望请指导,感谢。

关注不迷路

扫码下方二维码,关注宇凡盒子公众号,免费获取最新技术内幕!

温馨提示:如果您访问和下载本站资源,表示您已同意只将下载文件用于研究、学习而非其他用途。
文章版权声明 1、本网站名称:宇凡盒子
2、本站文章未经许可,禁止转载!
3、如果文章内容介绍中无特别注明,本网站压缩包解压需要密码统一是:yufanbox.com
4、本站仅供资源信息交流学习,不保证资源的可用及完整性,不提供安装使用及技术服务。点此了解
5、如果您发现本站分享的资源侵犯了您的权益,请及时通知我们,我们会在接到通知后及时处理!提交入口
0

评论0

请先

站点公告

🚀 【宇凡盒子】全网资源库转储中心

👉 注册即送VIP权限👈

👻 全站资源免费下载✅,欢迎注册!

记得 【收藏】+【关注】 谢谢!~~~

立即注册
没有账号?注册  忘记密码?

社交账号快速登录