Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Featureflags können Featurefilter verwenden, um Features bedingt zu aktivieren. Weitere Informationen zu Featurefiltern finden Sie unter Aktivieren von bedingten Features mit Featurefiltern.
Das in diesem Handbuch verwendete Beispiel basiert auf der Go Gin-Webanwendung, die in der Schnellstartanleitung für die Featureverwaltung eingeführt wurde. Bevor Sie fortfahren, führen Sie den Schnellstart zum Erstellen einer Go Gin-Webanwendung mit einem Beta-Feature-Flag aus. Nach Abschluss müssen Sie dem Beta-Featureflag in Ihrem App Configuration-Speicher einen benutzerdefinierten Featurefilter hinzufügen.
In diesem Handbuch erfahren Sie, wie Sie einen benutzerdefinierten Featurefilter implementieren und den Featurefilter verwenden, um Features bedingt zu aktivieren.
Prerequisites
- Erstellen Sie eine Go Gin-Webanwendung mit einer Featurekennzeichnung.
- Hinzufügen eines benutzerdefinierten Featurefilters zum Featureflag
Implementieren eines benutzerdefinierten Featurefilters
Sie haben einen benutzerdefinierten Featurefilter namens Random mit einem Prozentsatz-Parameter für Ihr Betafeature-Flag in den Voraussetzungen hinzugefügt. Als Nächstes implementieren Sie den Featurefilter, um das Beta-Featureflag basierend auf der durch den Percentage-Parameter definierten Chance zu aktivieren.
Erstellen Sie eine
random_filter.go-Datei mit dem folgenden Code: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 }Sie haben eine
RandomFilterStruktur hinzugefügt, die dieFeatureFilterSchnittstelle aus derfeaturemanagementBibliothek implementiert. DieFeatureFilterSchnittstelle verfügt über zwei Methoden:Name()gibt den Filternamen Random zurück, der dem Filternamen entspricht, den Sie im Featureflagge "Beta" in der Azure App-Konfiguration festgelegt haben.Evaluate()wird immer aufgerufen, wenn ein Feature-Flag ausgewertet wird. Ein Feature-Filter ermöglicht ein Feature-Flag, indem estruezurückgibt.
Aktualisieren Sie die
main.goDatei, umRandomFilterbeim Erstellen des Feature-Managers zu registrieren.// ...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... }
Featurefilter in Aktion
Starten Sie die Anwendung neu, und aktualisieren Sie den Browser ein paar Mal. Ohne das manuelle Umschalten der Feature-Flag wird das Beta-Menü basierend auf dem von Ihnen festgelegten Prozentsatz zufällig angezeigt.
Next steps
Wenn Sie mehr über die eingebauten Featurefilter erfahren möchten, fahren Sie mit den folgenden Dokumenten fort.
Lesen Sie das folgende Dokument für eine vollständige Funktionsübersicht der Go-Feature-Management-Bibliothek.