Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Özellik bayrakları, özellikleri koşullu olarak etkinleştirmek için özellik filtrelerini kullanabilir. Özellik filtreleri hakkında daha fazla bilgi edinmek için bkz . Özellik filtreleri ile koşullu özellikleri etkinleştirme.
Bu kılavuzda kullanılan örnek, özellik yönetimi hızlı başlangıcında sunulan Go Gin web uygulamasını temel alır. Devam etmeden önce Beta özellik bayrağı ile bir Go Gin web uygulaması oluşturmak için hızlı başlangıç kılavuzunu tamamlayın. Tamamlandıktan sonra, Uygulama Yapılandırma deponuzdaki Beta özellik bayrağına özel bir özellik filtresi eklemeniz gerekir.
Bu kılavuzda, özel bir özellik filtresi uygulamayı ve özellikleri koşullu olarak etkinleştirmek için özellik filtresini kullanmayı öğreneceksiniz.
Prerequisites
Özel özellik filtresi uygulama
Önkoşullarda Beta özellik bayrağınız için Yüzde parametresine sahip Random adlı özel bir özellik filtresi eklediniz. Ardından, Yüzde parametresi tarafından tanımlanan şansa göre Beta özellik bayrağını etkinleştirmek için özellik filtresini uygulayacaksınız.
Aşağıdaki kodla bir
random_filter.godosya oluşturun:package main import ( "fmt" "math/rand" "time" "github.com/microsoft/Featuremanagement-Go/featuremanagement" ) type RandomFilter struct{} func (f *RandomFilter) Name() string { return "Random" } func (f *RandomFilter) Evaluate(evalCtx featuremanagement.FeatureFilterEvaluationContext, appCtx any) (bool, error) { percentage, ok := evalCtx.Parameters["Percentage"].(float64) if !ok { return false, fmt.Errorf("invalid parameter type for Percentage: expected float64, got %T", evalCtx.Parameters["Percentage"]) } rand.Seed(time.Now().UnixNano()) randomValue := rand.Intn(100) return randomValue <= int(percentage), nil }featuremanagementkitaplığındakiFeatureFilterarabirimini uygulayan birRandomFilteryapı eklediniz. ArabiriminFeatureFilteriki yöntemi vardır:-
Name(), Azure Uygulama Yapılandırması'ndaki Beta özellik bayrağında ayarladığınız filtre adıyla eşleşen Rastgele filtre adını döndürür. -
Evaluate(), bir özellik bayrağı değerlendirildiğinde çağrılır. Özellik filtresi,truedöndürerek özellik bayrağını etkinleştirir.
-
main.godosyasını, özellik yöneticisini oluşturduğunuzdaRandomFilterkaydedecek şekilde güncelleyin:// ...existing code... func main() { ctx := context.Background() // Load Azure App Configuration appConfig, err := loadAzureAppConfiguration(ctx) if err != nil { log.Fatalf("Error loading Azure App Configuration: %v", err) } // Create feature flag provider featureFlagProvider, err := azappconfig.NewFeatureFlagProvider(appConfig) if err != nil { log.Fatalf("Error creating feature flag provider: %v", err) } // Register custom filters options := &featuremanagement.Options{ Filters: []featuremanagement.FeatureFilter{ &RandomFilter{}, }, } // Create feature manager with custom filters featureManager, err := featuremanagement.NewFeatureManager(featureFlagProvider, options) if err != nil { log.Fatalf("Error creating feature manager: %v", err) } // ...existing code... }
Özellik filtresi çalışır durumda
Uygulamayı yeniden başlatın ve tarayıcıyı birkaç kez yenileyin. Özellik bayrağını manuel olarak açmadan, Beta menüsü, belirlediğiniz yüzdeye göre rastgele olarak görünür.
Next steps
Yerleşik özellik filtreleri hakkında daha fazla bilgi edinmek için aşağıdaki belgelere geçin.
Go özellik yönetimi kütüphanesinin tüm özellikleri için aşağıdaki belgede devam edin.