通过托管标识从 c# Azure 函数检索配置值的 Azure 应用程序配置不起作用
Posted
技术标签:
【中文标题】通过托管标识从 c# Azure 函数检索配置值的 Azure 应用程序配置不起作用【英文标题】:Azure App Configuration to retrieve configuration values from c# Azure function via Managed Identity is not working 【发布时间】:2021-01-10 09:10:00 【问题描述】:我创建了 Azure 应用配置并设置了键值对。我还通过 VS 2019 创建了一个 HTTP Azure 函数并编写了以下代码。
using Microsoft.Extensions.Configuration;
using Azure.Identity;
var config = new ConfigurationBuilder().AddAzureAppConfiguration(options =>
options.Connect(new Uri("https://xxx-xxx-azf-global-parameters.azconfig.io"),
new ManagedIdentityCredential());
).Build();
string str = config["AzfApp:Cloud"].ToString();
log.LogInformation("AzfApp:Cloud:" + config["AzfApp:Cloud"].ToString());
启用系统分配的 Azure 功能标识。我通过 ManagedIdentityCredential 使用的身份分配给 Azure 应用配置数据读取者和 Azure 应用配置数据所有者角色。但上面我的代码无法正常工作 Azure 门户。我已经通过日志信息捕获了错误。
错误消息:3 次尝试后重试失败。 (不知道这样的主机。)(不知道这样的主机。)(不知道这样的主机。)Source=Azure.CoreStackTrace:at Azure.Core.Pipeline.RetryPolicy。
请帮助解决这个问题。
【问题讨论】:
您的 URI 端点似乎不正确或托管身份没有App Configuration Data Reader
角色。
现在有更新吗?如果它对你有帮助,请接受它作为答案。
【参考方案1】:
我用你的代码在我的网站上进行了测试,效果很好。
转到 azure 应用配置并仔细检查您是否已将 Azure App Configuration Data Reader
分配给函数的标识。
输出截图如下:
【讨论】:
以上是关于通过托管标识从 c# Azure 函数检索配置值的 Azure 应用程序配置不起作用的主要内容,如果未能解决你的问题,请参考以下文章
使用托管标识从 Azure Logic 应用向 Azure Function 进行身份验证
Python Azure 函数 - 使用 Key Vault 进行 MSI 身份验证