Использование флагов функций конфигурации приложения Azure в функциях Azure

Я работаю над изучением следующих двух функций конфигурации приложения Azure в триггере Http функции Azure.

  1. Внешний перенос настроек приложения
  2. Флаги функций

Ниже показано, как я получаю ссылку на конфигурацию.

Итак, когда я использую _configuration["SomeAppSettingKey"], я могу получить значение. Итак, я смог достичь упомянутой выше функции №1.

Мой вопрос: как получить информацию о флаге функции? Я пробовал следующие способы.

Буду признателен, если кто-нибудь поможет мне понять, как получить его в Функциях Azure (я использую V3)? Было бы полезно использовать образец кода или любую ссылку на документацию.

Спасибо.

Update1: я могу десериализовать содержимое json, как показано ниже. Но правильно ли это?

Где FeatureManager - это класс, который я определил, как показано ниже.

2 ответа

Решение

Все , что тебе нужно, это позвонить UseFeatureFlags() функционировать как часть AddAzureAppConfigurationчтобы поставщик конфигурации приложения знал, что вы хотите использовать флаги функций. Пример можно найти по ссылке ниже. Он используетFunctionsStartupи внедрение зависимостей (DI) Функций Azure. Экземпляр менеджера функций помещается в DI.

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

По ссылке ниже показано, как получить экземпляр IFeatureManagerSnapshot из DI и используйте его как часть вызова функций Azure.

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

Десериализация 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.");
}
Другие вопросы по тегам