Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Les indicateurs de fonctionnalités peuvent utiliser des filtres de fonctionnalités pour activer des fonctionnalités de manière conditionnelle. Pour en savoir plus sur les filtres de fonctionnalités, consultez Activer des fonctionnalités conditionnelles avec des filtres de fonctionnalités.
L’exemple utilisé dans ce guide est basé sur l’application web Go Gin introduite dans le guide de démarrage rapide de gestion des fonctionnalités. Avant de continuer, suivez le guide de démarrage rapide pour créer une application web Go Gin avec un indicateur de fonctionnalité bêta . Une fois terminé, vous devez ajouter un filtre de fonctionnalités personnalisé à l’indicateur de fonctionnalité Beta dans votre magasin App Configuration.
Dans ce guide, vous allez apprendre à implémenter un filtre de fonctionnalités personnalisé et à utiliser le filtre de fonctionnalités pour activer les fonctionnalités de manière conditionnelle.
Prerequisites
- Créez une application web Go Gin avec un indicateur de fonctionnalité.
- Ajouter un filtre de fonctionnalité personnalisé à l’indicateur de fonctionnalité
Implémenter un filtre de fonctionnalité personnalisé
Vous avez ajouté un filtre de fonctionnalités personnalisé nommé Random avec un paramètre Pourcentage pour votre indicateur de fonctionnalité bêta dans les conditions préalables. Ensuite, vous allez implémenter le filtre de fonctionnalités pour activer l’indicateur de fonctionnalité Beta en fonction de la chance définie par le paramètre Percentage.
Créez un fichier
random_filter.goavec le code suivant :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 }Vous avez ajouté un
RandomFilterstruct qui implémente l’interfaceFeatureFilterà partir de lafeaturemanagementbibliothèque. L’interfaceFeatureFiltera deux méthodes :Name()retourne le nom de filtre Random, qui correspond au nom de filtre que vous avez défini dans l’indicateur de fonctionnalité Bêta dans Azure App Configuration.Evaluate()est appelé chaque fois qu’un indicateur de fonctionnalité est évalué. Un filtre de fonctionnalité active un indicateur de fonctionnalité en retournanttrue.
Mettez à jour votre fichier
main.goafin d'enregistrerRandomFilterlors de la création du gestionnaire de fonctionnalités.// ...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... }
Filtre de fonctionnalités en action
Relancez l’application et actualisez le navigateur quelques fois. Sans activer ou désactiver manuellement l’indicateur de fonctionnalité, le menu Bêta s’affiche de façon aléatoire en fonction du pourcentage défini.
Next steps
Pour en savoir plus sur les filtres de fonctionnalités intégrés, consultez les documents suivants.
Pour une vue d'ensemble complète des fonctionnalités de la bibliothèque Go de gestion de fonctionnalités, consultez le document suivant.