摘要
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_会被过虑掉。
结
下一节 配备系统之强种类配备。
之上仅仅本人梳理,若有不正确,望请指导,感谢。
关注不迷路
扫码下方二维码,关注宇凡盒子公众号,免费获取最新技术内幕!
温馨提示:如果您访问和下载本站资源,表示您已同意只将下载文件用于研究、学习而非其他用途。
评论0