gpt4 book ai didi

c# - 如何使用 AddKeyPerFile 在 linux 容器中加载 secret

转载 作者:行者123 更新时间:2023-12-04 15:44:16 24 4
gpt4 key购买 nike

我有一个 asp net core 项目,我正在 kubernetes 集群中的 linux 容器内部署它。我的 secret 安装在容器的/secrets 文件夹中,我找到了 https://github.com/aspnet/Configuration/tree/master/src/Config.KeyPerFile并尝试使用 builder.AddKeyPerFile("/secrets", false);加载 secret 。但它不起作用。 configuration["File1"] 返回空,其中 File1 是“/secrets”文件夹中的一个文件,其中包含一个 secret 。

当我在服务代码中执行以下内容时,我能够读取 secret 。

List<KeyValuePair<string, string>> secrets =
new List<KeyValuePair<string, string>>();

foreach (var secretFile in Directory.GetFiles("/secrets", "*.*", System.IO.SearchOption.AllDirectories))
{
secrets.Add(
new KeyValuePair<string, string>(
Path.GetFileName(secretFile), File.ReadAllText(secretFile)));
}

我试图找出如何为此使用 builder.AddKeyPerFile 扩展方法。

最佳答案

我正在使用 .Net Core 3.1,它可以工作。

new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddJsonFile("appsettings.Development.json", optional: true)
.AddKeyPerFile("/secret/", optional: true)
.Build();

所以我可以访问存储的 secret :
var file1 = configuration["File1"];

我还没有尝试过旧版本的 .Net Core,但肯定适用于 3.1。我唯一遇到的是路径必须是绝对的。

关于c# - 如何使用 AddKeyPerFile 在 linux 容器中加载 secret ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56566095/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com