Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Příznaky funkcí můžou používat filtry funkcí k podmíněnému povolení funkcí. Další informace ofiltrch
Příklad použitý v této příručce je založený na webové aplikaci Go Gin představené v rychlém startu pro správu funkcí. Než budete pokračovat, dokončete rychlý start a vytvořte webovou aplikaci Go Gin s příznakem funkce Beta . Po dokončení musíte přidat vlastní filtr funkcí do příznaku funkce Beta v Obchodě App Configuration Store.
V této příručce se dozvíte, jak implementovat vlastní filtr funkcí a použít filtr funkcí k podmíněnému povolení funkcí.
Prerequisites
- Vytvořte webovou aplikaci Go Gin s feature flagem.
- Přidání vlastního filtru funkcí do příznaku funkce
Implementace vlastního filtru funkcí
Přidali jste vlastní filtr funkcí s názvem Random s parametrem Percentage pro příznak funkce Beta v požadavcích. Dále implementujete filtr funkcí, který povolí příznak funkce Beta na základě pravděpodobnosti definované parametrem Procento .
Vytvořte
random_filter.gosoubor s následujícím kódem: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 }Přidali jste
RandomFilterstrukturu, která implementujeFeatureFilterrozhraní zfeaturemanagementknihovny. RozhraníFeatureFiltermá dvě metody:-
Name()vrátí název filtru Random, který odpovídá názvu filtru, který jste nastavili v příznaku funkce Beta v Azure App Configuration. -
Evaluate()je volána při vyhodnocování příznaku funkce. Filtrování funkcí aktivuje příznak funkce vrácenímtrue.
-
Aktualizujte svůj
main.gosoubor pro zaregistrováníRandomFilterpři vytváření správce funkcí:// ...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... }
Filtr funkcí v akci
Znovu spusťte aplikaci a několikrát aktualizujte prohlížeč. Bez ručního přepnutí příznaku funkce se nabídka Beta zobrazí náhodně na základě nastaveného procenta.
Next steps
Další informace o předdefinovaných filtrech funkcí najdete v následujících dokumentech.
Úplný přehled funkcí knihovny pro správu funkcí Go najdete v následujícím dokumentu.