Использование флагов функций конфигурации приложения Azure в функциях Azure
Я работаю над изучением следующих двух функций конфигурации приложения Azure в триггере Http функции Azure.
- Внешний перенос настроек приложения
- Флаги функций
Ниже показано, как я получаю ссылку на конфигурацию.
Итак, когда я использую _configuration["SomeAppSettingKey"], я могу получить значение. Итак, я смог достичь упомянутой выше функции №1.
Мой вопрос: как получить информацию о флаге функции? Я пробовал следующие способы.
Буду признателен, если кто-нибудь поможет мне понять, как получить его в Функциях Azure (я использую V3)? Было бы полезно использовать образец кода или любую ссылку на документацию.
Спасибо.
Update1: я могу десериализовать содержимое json, как показано ниже. Но правильно ли это?
Где FeatureManager - это класс, который я определил, как показано ниже.
2 ответа
Все , что тебе нужно, это позвонить UseFeatureFlags()
функционировать как часть AddAzureAppConfiguration
чтобы поставщик конфигурации приложения знал, что вы хотите использовать флаги функций. Пример можно найти по ссылке ниже. Он используетFunctionsStartup
и внедрение зависимостей (DI) Функций Azure. Экземпляр менеджера функций помещается в DI.
По ссылке ниже показано, как получить экземпляр IFeatureManagerSnapshot
из DI и используйте его как часть вызова функций Azure.
Десериализация 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.");
}