簡體   English   中英

刷新Azure 基於Label的App配置

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM