覆盖容器中带有环境变量的点的 ASP.NET Core appsettings 键名称

Coa*_*ear 5 containers environment-variables appsettings asp.net-core

我正在尝试将旧版应用程序迁移到新的 .net 6 版本,我遇到的问题是该应用程序有一个第三方库,其中的密钥将在文件中查找appsettings.json

像这样的东西(注意键中的点):

{
    "one.special.key":"one value"
}
Run Code Online (Sandbox Code Playgroud)

我现在面临的问题是,我的新应用程序将在容器内运行,并且将使用环境变量注入密钥,我不认为容器环境(又名 - linux)接受带点的环境变量,只接受带点的环境变量。带有一个/双下划线的约定如下:one_special_key

我怎样才能覆盖一个appsetting.json带有点的键而some.key.with.dots=hello不是传统的键some_key_without_dots=hello

Coa*_*ear 0

在此 k8s PR 中找到了答案: https://github.com/kubernetes/kubernetes/pull/48986验证变得更加许可,并且允许传递基于点的环境变量名称。