C# 是否在azure函数中使用AddSecretClient DI扩展?
我正在尝试为我的azure函数配置一些依赖项。我需要能够访问(除其他外)azure keyvault。目前,我正在手动访问它,并且必须自己进行依赖性注入。这感觉不太对劲,我想找个更好的方法把它连接起来。我发现这似乎很理想 太好了,我想这么做。问题是这些扩展似乎不支持Azure函数中实现的特定DI。具体来说,C# 是否在azure函数中使用AddSecretClient DI扩展?,c#,azure,dependency-injection,azure-functions,nuget-package,C#,Azure,Dependency Injection,Azure Functions,Nuget Package,我正在尝试为我的azure函数配置一些依赖项。我需要能够访问(除其他外)azure keyvault。目前,我正在手动访问它,并且必须自己进行依赖性注入。这感觉不太对劲,我想找个更好的方法把它连接起来。我发现这似乎很理想 太好了,我想这么做。问题是这些扩展似乎不支持Azure函数中实现的特定DI。具体来说,AddSecretClient预期的类型与注入Configure(iffunctionshostbuilder builder)的生成器之间存在不兼容: [程序集:函数启动(类型(启动))]
AddSecretClient
预期的类型与注入Configure(iffunctionshostbuilder builder)
的生成器之间存在不兼容:
[程序集:函数启动(类型(启动))]
名称空间快照
{
[不包括CODECODECOVERAGE]
公共类启动:函数启动
{
公共覆盖无效配置(IFunctionsHostBuilder)
{
注册人TTP客户(建造商);
builder.Services.AddLogging();
//错误
builder.AddSecretClient(新Uri(“”);
}
}
}
类型
'Microsoft.Azure.Functions.Extensions.DependencyInjection.IFunctionsHostBuilder'
不能用作泛型类型中的类型参数“TBuilder”,或
方法
'SecretClientBuilderExtensions.AddSecretClient(TBuilder,
Uri)”。不存在来自的隐式引用转换
'Microsoft.Azure.Functions.Extensions.DependencyInjection.IFunctionsHostBuilder'
转到“Azure.Core.Extensions.IAzureClientFactoryBuilderWithCredential”
那么,这些扩展是否有Azure函数版本,或者我是否必须推出自己的扩展?因为
AddAzureClients
是IServiceCollection
上的一种扩展方法,
您可能需要执行以下操作:
builder.Services.AddAzureClients(clientBuilder=>
{
//添加KeyVault客户端
clientBuilder.AddSecretClient(keyVaultUrl);
//添加存储帐户客户端
AddBlobServiceClient(storageUrl);
//默认情况下使用环境凭据
使用凭证(新环境凭证());
});
您是否尝试了builder.Services.AddAzureClients(clientBuilder=>)
?是的,这就是我在@juunas缺少的内容。是否要添加答案?我很乐意被证明是错的,但我在任何地方都找不到这个记录。。。
public void ConfigureServices(IServiceCollection services)
{
services.AddAzureClients(builder =>
{
// Add a KeyVault client
builder.AddSecretClient(keyVaultUrl);
// Add a storage account client
builder.AddBlobServiceClient(storageUrl);
// Use the environment credential by default
builder.UseCredential(new EnvironmentCredential());
});
services.AddControllers();
}