问题描述
在 Azure 功能管理器中使用功能切换提供了在创建功能时配置标签的选项,在 .NET 中使用该标签我能找到的唯一选项是在配置 Azure 应用程序配置时在启动期间设置标签,这可以是这样做:
config.AddAzureAppConfiguration(
options =>
{
options.Connect(settings.GetConnectionString("Config"))
.UseFeatureFlags(o =>
{
o.Label = "Test";
o.CacheExpirationInterval = TimeSpan.FromSeconds(1);
});
},
这种方法的问题是在运行时我们无法更改标签,因为它是在启动期间预先配置的。
问题是我们如何管理不同的标签,假设我有 100 个标签,我希望我的应用程序根据其标签评估功能切换,但我无法找到实现这一目标的方法。
为了评估功能切换,我们像这样调用功能管理器
await _featureManager.IsEnabledAsync(setting);
解决方法
我会说你不能,这不是一件坏事。标签在那里,因此您可以将一个特征标志保存两次,可能使用不同的值和过滤器。例如:
- MyFlag(标签:测试)真
- MyFlag(标签:生产)false
或
- MyFlag(标签:美国)真
- MyFlag(标签:asia)错误
因此,您应该使用标签为不同阶段或不同区域或您可能拥有的任何其他用例保存一个特征的不同值。您不应该在正在运行的应用程序中在标签之间切换。