You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过C#代码在Azure App Configuration中创建可用的Feature Flag(功能标志)

解决方案

问题根因

  • 你创建的配置项未遵循Azure App Configuration功能标志的格式规范,主要有两处错误:
    • 配置Key没有添加功能标志专属前缀.appconfig.featureflag/,导致功能管理器无法识别提取功能标志名称
    • 配置Value为自定义值,不符合功能标志要求的固定JSON结构,字段缺失导致界面显示错误

解决方法

推荐使用官方封装的专用类创建,避免手动拼接格式出错:

步骤1:安装必要NuGet包

  • Azure.Data.AppConfiguration(1.1.0及以上版本)
  • Microsoft.FeatureManagement(2.4.0及以上版本)

步骤2:调用专用类创建功能标志

using Azure.Data.AppConfiguration;
using Microsoft.FeatureManagement;

// 初始化配置客户端
var client = new ConfigurationClient(_configuration.GetConnectionString("AppConnectionString"));

// 直接传入功能标志名称和启用状态,框架会自动处理前缀、内容类型和JSON结构
var featureFlag = new FeatureFlagConfigurationSetting("自定义功能标志名称", isEnabled: true);
// 可选配置:功能描述、启用规则、过滤器等
featureFlag.Description = "业务测试功能开关";
// 示例:配置50%流量启用的灰度规则
featureFlag.Conditions.ClientFilters.Add(new FeatureFilterConfiguration
{
    Name = "Percentage",
    Parameters = new Dictionary<string, object> { { "Value", 50 } }
});

// 提交创建
client.SetConfigurationSetting(featureFlag);

手动构造方式(无需额外依赖FeatureManagement包)

如果不想引入额外包,也可以手动拼接符合规范的配置项:

var client = new ConfigurationClient(_configuration.GetConnectionString("AppConnectionString"));
// 1. Key必须加固定前缀,前缀后的内容为功能标志显示名称
string featureFlagName = "TestFeature";
string key = $".appconfig.featureflag/{featureFlagName}";
// 2. Value必须符合固定JSON结构
string value = System.Text.Json.JsonSerializer.Serialize(new
{
    id = featureFlagName,
    description = "手动创建的功能标志",
    enabled = true,
    conditions = new
    {
        client_filters = Array.Empty<object>()
    }
});

var settingToCreate = new ConfigurationSetting(key, value);
settingToCreate.ContentType = "application/vnd.microsoft.appconfig.ff+json;charset=utf-8";
client.SetConfigurationSetting(settingToCreate);

内容的提问来源于stack exchange,提问作者vikas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 00:27:03