[英]Refreshing Azure App Configuration Based on Label
我創建了一個 Azure 應用程序配置並向其添加了幾個功能門按照文檔,我向每個添加了不同的 label 以表示不同的環境。
當我沒有定義標簽和功能時,Program.cs 中的以下代碼片段有效
config.AddAzureAppConfiguration(options =>
{
options.Connect(connectionString)
.Select(KeyFilter.Any)
.ConfigureRefresh(refresh =>
refresh.Register(KeyFilter.Any, true)
.SetCacheExpiration(TimeSpan.FromSeconds(10)));
options.UseFeatureFlags();
});
});
我所說的工作是指功能加載和更改 Azur 應用程序配置中的功能會導致在 10 到 15 秒內更改為熱更改。
對於每個功能,我都有以下標簽“開發”、“登台”、“生產”
我可以使用以下代碼在啟動時加載正確的鍵
config.AddAzureAppConfiguration(options =>
{
options.Connect(connectionString)
.Select(KeyFilter.Any, "Staging") // For example
.ConfigureRefresh(refresh =>
refresh.Register(KeyFilter.Any, true)
.SetCacheExpiration(TimeSpan.FromSeconds(10)));
options.UseFeatureFlags();
});
});
這將加載正確的密鑰,但更新 Azure 門戶中的值不會刷新。
嘗試了幾種不同的技術,但如果我指定了 label,刷新永遠不會更新。
這是限制還是我的術語有誤。
我還嘗試了其他幾種方法,例如
refresh.Register(KeyFilter.Any,"Staging", true)
refresh.Register("SpecificKey","Staging", true)
但是刷新似乎不起作用。
任何幫助都會很棒
謝謝
添加了更多調查
這是我的應用程序商店的示例,我只使用 FeatureGates
當我有任何 label 時,刷新停止工作,盡管初始加載有效。
這是我當前的配置代碼
config.AddAzureAppConfiguration(options =>
{
options.Connect(connectionString);
options.Select(KeyFilter.Any, "Staging");
options.UseFeatureFlags(featureFlagOptions =>
{
featureFlagOptions.CacheExpirationInterval = TimeSpan.FromSeconds(30);
});
});
如果我從功能門和代碼中刪除 label“Staging”,那么我的應用程序每 30 秒刷新一次。
我還在我將上傳的控制台應用程序上演示了這種行為
如果你有一個 label,有沒有人找到一種方法讓功能管理標志自動刷新?
您是否錯過了文檔中的以下內容?
當沒有參數傳遞給 UseFeatureFlags 方法時,它會加載應用程序配置存儲中沒有 label 的所有功能標志。 功能標志的默認刷新到期時間為 30 秒。 您可以通過 FeatureFlagOptions 參數自定義此行為。 例如,以下代碼片段僅加載以 TestApp: 開頭的功能標志,在它們的鍵名中具有 label dev。 該代碼還將刷新過期時間更改為 5 分鍾。 請注意,此刷新過期時間與常規鍵值的刷新過期時間不同。
options.UseFeatureFlags(featureFlagOptions =>
{
featureFlagOptions.Select("TestApp:*", "dev");
featureFlagOptions.CacheExpirationInterval = TimeSpan.FromMinutes(5);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.