0

我正在探索 Azure Function's Http Trigger 中 Azure App Configuration 的以下 2 个功能

  1. 外部化应用程序设置
  2. 功能标志

下面是我如何获得配置的参考

在此处输入图像描述

因此,当我使用 _configuration["SomeAppSettingKey"] 时,我能够检索该值。所以,我能够实现上面提到的#1 功能。

我的问题是,我们如何检索功能标志信息?我尝试了以下方法。

在此处输入图像描述

如果有人可以帮助我了解如何在 Azure Functions 中检索它(我正在使用 V3),我将不胜感激?示例代码或对文档的任何参考都会有所帮助。

谢谢。

Update1:​​我可以反序列化 json 内容,如下所示。但是,这是正确的方法吗?

在此处输入图像描述

其中 FeatureManager 是我定义的一个类,如下所示。

在此处输入图像描述

4

2 回答 2

2

您只需要调用UseFeatureFlags()函数作为AddAzureAppConfiguration让应用程序配置提供程序知道您要使用功能标志的一部分。可以在下面的链接中找到一个示例。它使用FunctionsStartupAzure Functions 的依赖注入 (DI)。特性管理器的一个实例被放入 DI。

https://github.com/Azure/AppConfiguration/blob/master/examples/DotNetCore/AzureFunction/FunctionApp/Startup.cs

下面的链接显示了如何IFeatureManagerSnapshot从 DI 获取实例并将其用作 Azure Functions 调用的一部分。

https://github.com/Azure/AppConfiguration/blob/master/examples/DotNetCore/AzureFunction/FunctionApp/ShowBetaFeature.cs

于 2020-04-13T20:44:07.990 回答
-1

反序列化 JSON 不是一个好主意,每次添加新密钥时都需要修改类。

private static IConfiguration Configuration { set; get; }

static Function1()
{
    var builder = new ConfigurationBuilder();
    builder.AddAzureAppConfiguration(Environment.GetEnvironmentVariable("ConnectionString"));
    Configuration = builder.Build();
}

public static async Task<IActionResult> Run(
    [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req, ILogger log)
{
    log.LogInformation("C# HTTP trigger function processed a request.");

    string keyName = "TestApp:Settings:Message";
    string message = Configuration[keyName];

    return message != null
        ? (ActionResult)new OkObjectResult(message)
        : new BadRequestObjectResult($"Please create a key-value with the key '{keyName}' in App Configuration.");
}
于 2020-04-13T07:22:15.540 回答