我在 AKS 上部署了 .NET 6 Web Api,并且我正在尝试使用动态配置从 Azure 应用程序配置重新加载设置,而无需重新启动 Pod。
部署 Pod 后,我的应用程序会拾取对 Azure 应用程序配置 上的设置所做的更改(部署 Pod 后不久)。但是,如果我第二天来,假设我更新了 Azure 应用程序配置上的设置,那么 Web Api 不会拾取此。 功能标志更新也会发生同样的情况。
代码和设置:程序.cs
builder.Host.ConfigureAppConfiguration(config =>
{
config.AddAzureAppConfiguration(option =>
option.Connect(appConfigConnString)
.ConfigureRefresh(refreshOptions =>
{
refreshOptions.Register("AppSettings:TestReloadTesting", refreshAll: true);
refreshOptions.SetCacheExpiration(TimeSpan.FromSeconds(5));
})
.ConfigureKeyVault(kv => kv.SetCredential(new DefaultAzureCredential(defaultAzureCredentialOptions)))
.UseFeatureFlags(options =>
{
options.Label = "Feature-flag-label";
options.CacheExpirationInterval = TimeSpan.FromSeconds(5);
})
);
});
builder.Services.AddAzureAppConfiguration();
builder.Services.AddFeatureManagement(builder.Configuration.GetSection("FeatureManagement"));
...........
var app = builder.Build();
app.UseAzureAppConfiguration();
app.UseFeatureAvailability();
...........
[HttpGet("TestAppSetting")]
public ActionResult<Result> GetTestAppSettingReload()
{
var result = _appsettings.TestReloadTesting;
return new Result{ TestReloadTesting = result };
}
[HttpGet("TestFeature")]
public async Task<ActionResult<string>> GetTestFearureFlag()
{
var result = await _featureManager.IsEnabledAsync("feature-name");
return Ok(result);
}
我没有收到任何错误,我查看了文档,但没有找到任何与之相关的内容。
builder.Configuration.AddAzureAppConfiguration(option =>
option.Connect(connectionString)
.ConfigureRefresh(refreshOptions =>
{
refreshOptions.Register("TestApp:Settings", refreshAll: true);
refreshOptions.SetCacheExpiration(TimeSpan.FromSeconds(5));
})
.UseFeatureFlags(options =>
{
options.Label = "Feature-flag-label";
options.CacheExpirationInterval = TimeSpan.FromSeconds(5);
}));