我们有FeatureFlag:IsServiceNeeded,在Azure应用程序配置的功能管理器中没有设置标签。我们通过设置缓存间隔在内置方法 AddAzureAppConfiguration 中使用。
我们正在使用 .net core 3.1 Web api 和 Azure 应用程序配置的功能管理器。
我们在应用程序初始化期间启用了 IsServiceNeeded,几个小时后,我们禁用了 IsServiceNeed。我们等待了一整天,但没有看到差异,因为下面返回 true 而不是 false。由于我们在 program.cs 文件中的配置方式,我们预计它每 3 分钟更新一次。
await _featureManager.IsEnabledAsync("IsServiceNeeded")
Run Code Online (Sandbox Code Playgroud)
如果您发现下面有任何奇怪的地方,请告诉我。提前致谢,
这是我们正在使用它的代码片段。
程序.cs文件
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureAppConfiguration((context, config) =>
{
var configurationRoot = config.Build();
var appConfigConString = configurationRoot["AppConfigConnectionString"];
config.AddAzureAppConfiguration(options => options.Connect(appConfigConString).UseFeatureFlags(featureFlagOptions => {
**featureFlagOptions.CacheExpirationInterval = TimeSpan.FromMinutes(3);**
}));
})
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
}
Run Code Online (Sandbox Code Playgroud)
Startup.cs 文件
public class Startup
{ …Run Code Online (Sandbox Code Playgroud) azure .net-core asp.net-core azure-app-configuration feature-flags
我想跳过 flagsmith 的 TLS 验证。
注意:我使用的是flagsmithv3 go sdk。
这是我当前的代码:
func InitializeFlagsmith() *flagsmith.Client {
apiKey := "ser..."
customerAPIEndpoint := "https://example.com/api/v1/"
// Create Flagsmith client options
options := []flagsmith.Option{
flagsmith.WithBaseURL(customerAPIEndpoint),
flagsmith.WithLocalEvaluation(context.Background()),
flagsmith.WithEnvironmentRefreshInterval(60 * time.Second),
}
// Initialize Flagsmith client with custom options
flagsmithClient := flagsmith.NewClient(apiKey, options...)
return flagsmithClient
}
Run Code Online (Sandbox Code Playgroud)
我检查了flagsmith代码,所以我发现了这一点,如何更改 &Client 中的客户端?
// NewClient creates instance of Client with given configuration.
func NewClient(apiKey string, options ...Option) *Client {
c := &Client{
apiKey: apiKey,
config: defaultConfig(),
client: flaghttp.NewClient(),
}
c.client.SetHeaders(map[string]string{
"Accept": …Run Code Online (Sandbox Code Playgroud) Azure Functions 应用程序,运行时 v3。
该应用程序有一个FunctionsStartup类,它首先在其方法中启用 Azure 应用程序配置ConfigureAppConfiguration:
builder.ConfigurationBuilder.AddAzureAppConfiguration(options =>
{
options
.Connect(appConfigurationConnectionString)
.UseFeatureFlags();
});
Run Code Online (Sandbox Code Playgroud)
在其Configure方法中,它启用功能管理,并添加 Azure 应用程序配置服务(以便我们可以在运行时刷新设置):
builder.Services
.AddAzureAppConfiguration()
.AddFeatureManagement()
.AddFeatureFilter<ContextualTargetingFilter>();
Run Code Online (Sandbox Code Playgroud)
在 Azure 门户上有一个已启用的功能标志,称为CardExpirationNotice。该代码用于IFeatureManagerSnapshot检查该功能是否启用:
feature = nameof(Features.CardExpirationNotice);
var isEnabled = await _featureManagerSnapshot.IsEnabledAsync(feature);
Run Code Online (Sandbox Code Playgroud)
isEnabled是false,并且输出此日志消息:
找不到功能“CardExpirationNotice”的功能声明。
我尝试在 local.settings.json 中本地配置一个标志:
"FeatureManagement__CardExpirationNotice": true
Run Code Online (Sandbox Code Playgroud)
然后isEnabled是true,因此我可以将问题缩小到 Azure 应用程序配置,并排除功能管理实现。
我正在使用 LaunchDarkly 进行功能标志管理,但我不知道从哪里获取当前用户的密钥。以下是其 React SDK 的 LD 文档中的示例:
import { withLDProvider } from 'launchdarkly-react-client-sdk';
export default withLDProvider({
clientSideID: 'your-client-side-id',
user: {
"key": "aa0ceb",
"name": "Grace Hopper",
"email": "gracehopper@example.com"
},
options: { /* ... */ }
})(YourApp);
Run Code Online (Sandbox Code Playgroud)
我如何得到这个key?键 和 和有什么不一样clientSideID?
.net-core ×1
asp.net-core ×1
azure ×1
flagsmith ×1
go ×1
javascript ×1
launchdarkly ×1
reactjs ×1
tls1.2 ×1