gpt4 book ai didi

.net - 如何在 Azure Function v1 (.NET Framework) 中使用 Azure App Configuration 服务

转载 作者:行者123 更新时间:2023-12-05 03:59:10 25 4
gpt4 key购买 nike

TL;DR:如何使用 Azure Function v1 中的托管服务标识通过 Azure App Configuration 进行配置?

我正在尝试使用 .NET Framework 从 Azure Function v1 中使用 Azure App Configuration。理想情况下,我想利用 ConfigurationBuilders .

这意味着在开发机器上运行时使用 SimpleJsonConfigBuilder 类,而在 Azure 中托管时使用 AzureAppConfigurationBuilder

我已经将它用于我们的 Web API 项目,但在涉及 Azure Functions 时我遇到了困难。

在我看来,问题是 Azure Function 主机正在使用自己的 web.config,因此无法使用我在 Web 项目中使用的配置进行修改。

<configuration>
<configSections>
<section name="configBuilders" type="System.Configuration.ConfigurationBuildersSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" restartOnExternalChanges="false" requirePermission="false" />
</configSections>
<configBuilders>
<builders>
<add name="Environment" type="Microsoft.Configuration.ConfigurationBuilders.EnvironmentConfigBuilder, Microsoft.Configuration.ConfigurationBuilders.Environment, Version=1.0.0.0, Culture=neutral" />
<add name="Json" optional="true" mode="Greedy" jsonFile="~/App_Data/settings.json" type="Microsoft.Configuration.ConfigurationBuilders.SimpleJsonConfigBuilder, Microsoft.Configuration.ConfigurationBuilders.Json, Version=1.0.0.0, Culture=neutral" />
<add name="AzureViaConnectionString" optional="true" mode="Greedy" connectionString="${AppConfigConnectionString}" type="Microsoft.Configuration.ConfigurationBuilders.AzureAppConfigurationBuilder, Microsoft.Configuration.ConfigurationBuilders.AzureAppConfiguration" />
<add name="AzureViaMsi" optional="true" mode="Greedy" endPoint="${AppConfigEndpoint}" type="Microsoft.Configuration.ConfigurationBuilders.AzureAppConfigurationBuilder, Microsoft.Configuration.ConfigurationBuilders.AzureAppConfiguration" />
</builders>
</configBuilders>
<appSettings configBuilders="Environment,Json">
...

即使我不使用 xml 配置(我假设这是不可能的),是否有办法像 ConfigBuilders 那样修改 ConfigurationManager.AppSettings

ConfigurationManager.AppSettings 在我访问时是只读的,所以我不能自己更新它。

我们确实有一个 IAppSettings 接口(interface),我已经为其编写了一个实现来使用 Azure App Configuration REST api。但是,这意味着将与服务关联的 secret 存储在通常的功能应用程序设置中,而不是能够使用托管服务标识。

此外,函数运行时需要一些其他设置才能执行我的任何代码,这意味着我无法从标准位置移动所有设置。

迁移到 Azure Functions V2 目前不可行。

最佳答案

1.安装包 Microsoft.Extensions.Configuration.AzureAppConfiguration

2.在VS中创建Function.net,使用代码如下:

public static async Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)]HttpRequestMessage req, TraceWriter log)
{
log.Info("C# HTTP trigger function processed a request.");
var builder = new ConfigurationBuilder();
builder.AddAzureAppConfiguration(Environment.GetEnvironmentVariable("ConnectionString"));
var config = builder.Build();
string message = config["TestApp:Settings:Messagejoey"];
return message == null
? req.CreateResponse(HttpStatusCode.BadRequest, "Please pass a name on the query string or in the request body")
: req.CreateResponse(HttpStatusCode.OK, "Hello " + message);
}

3.结果截图: enter image description here4.我用过的包: enter image description here

更多详情,可以引用这个article (它也适用于.net框架)。

关于.net - 如何在 Azure Function v1 (.NET Framework) 中使用 Azure App Configuration 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57483204/

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