Azure AppConfiguration(在本地使用DefaultAzureCredential)不返回任何密钥



当我在函数中注入IConfiguration时,它找不到任何只存在于我的"Azure应用程序配置";。

我有一个函数App(V3(,它使用DefaultAzureCredential访问应用程序配置。我在本地调试中运行这个,因此需要一个默认凭据。我还有多个Tenant,所以我必须在DefaultAzureCredentialOptions上设置VisualStudioTenantId和SharedTokenCacheTenantId。我的Visual studio用户也被赋予了";应用程序配置数据读取器";以便能够调试。

当连接到应用程序配置时,我没有得到任何错误。编辑添加:我已设置AppConfiguration以通过AzureAD进行身份验证。

参见以下代码:

public override async void ConfigureAppConfiguration(IFunctionsConfigurationBuilder builder)
{
var credOptions = new DefaultAzureCredentialOptions();
var tenantId = Environment.GetEnvironmentVariable("Tenant_Id");
credOptions.VisualStudioTenantId = tenantId;

credOptions.SharedTokenCacheTenantId = tenantId;
var cred = new DefaultAzureCredential(credOptions);
/*Works but requires SharedTokenCacheTenantId*/
var secretClient = new SecretClient(new Uri(vaultURI), cred);
var secret = await secretClient.GetSecretAsync("<secret name>");
/*Works but where are my keys when I try to access them?*/
builder.ConfigurationBuilder.AddAzureAppConfiguration(options =>
{
options.Connect(new Uri(appConfigURI), cred);

}).Build(); //Should I be building this??
}

在我的功能

public FunctName(IConfiguration configuration)
{
_configuration = configuration;
}

当我访问属性时

var prop = _configuration["PropertyName"];

这里有一个使用IFunctionsConfigurationBuilder的函数应用程序示例https://github.com/Azure/AppConfiguration/blob/main/examples/DotNetCore/AzureFunction/FunctionApp/Startup.cs。我建议你看一看,看看是否有遗漏的部分。

标题提到";在本地使用DefaultAzureCredential";。这是否意味着,如果您使用连接字符串,这将按预期工作?

请注意asyncvoid ConfigureAppConfiguration。这导致我的ConfigureAppConfiguration无法同步执行,导致configure在填充之前添加了我的应用程序配置。

相关内容

  • 没有找到相关文章

最新更新