在我的函数应用程序(.NET 7.0,独立工作线程)中,我有一个使用 API 密钥的特定依赖项,该依赖项需要放入秘密存储中。我正在使用用户机密进行本地开发,但在配置依赖注入服务时,我一直困惑于如何访问这些机密值:
// secrets.json
{
"apiKey": "1234567890"
}
Run Code Online (Sandbox Code Playgroud)
// Program.cs
var host = new HostBuilder()
.ConfigureFunctionsWorkerDefaults()
.ConfigureServices(s =>
{
string apiKey = ???; // how to access user secrets here?
s.AddScoped<IMyDependency>(sp => new MyDependency(apiKey));
});
.Build();
}
host.Run();
Run Code Online (Sandbox Code Playgroud)
Microsoft 提供了有关使用用户机密的指南:
但是这些解决方案都没有提供我所需要的,这是在设置依赖项注入时访问用户秘密值的一种方法。相反,推荐的解决方案使配置值本身注入依赖项,这是我无法使用的。
我尝试过的事情:
Environment.GetEnvironmentVariable,它不返回值。builder.AddUserSecrets。我不知道这是否有必要这样做,但即使有必要,我仍然不知道在设置 DI 时如何访问配置。