簡體   English   中英

Azure 應用程序配置的功能標志在 Azure 函數中的使用

[英]Usage of Azure App Configuration's Feature Flags in Azure Functions

我正在探索 Azure 函數的 Http 觸發器中 Azure 應用程序配置的以下 2 個功能

  1. 外部化應用程序設置
  2. 功能標志

下面是我如何獲得配置的參考

在此處輸入圖像描述

因此,當我使用 _configuration["SomeAppSettingKey"] 時,我能夠檢索該值。 所以,我能夠實現上面提到的#1 功能。

我的問題是,我們如何檢索功能標志信息? 我嘗試了以下方法。

在此處輸入圖像描述

如果有人能幫助我理解如何在 Azure 函數(我使用的是 V3)中檢索它,我將不勝感激? 示例代碼或對文檔的任何參考都會有所幫助。

謝謝。

Update1:我可以反序列化 json 內容,如下所示。 但是,這是正確的方法嗎?

在此處輸入圖像描述

其中 FeatureManager 是我定義的 class,如下所示。

在此處輸入圖像描述

您只需調用UseFeatureFlags() function 作為AddAzureAppConfiguration的一部分,讓應用配置提供程序知道您想要使用功能標志。 可以在下面的鏈接中找到一個示例。 它使用 Azure 函數的FunctionsStartup和依賴注入 (DI)。 特性管理器的一個實例被放入 DI。

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

下面的鏈接顯示了如何從 DI 獲取IFeatureManagerSnapshot實例並將其用作 Azure 函數調用的一部分。

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

反序列化 JSON 不是一個好主意,每次添加新密鑰時都需要修改 class。

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.");
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM