Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A funkciójelzők funkciószűrőkkel feltételesen engedélyezhetik a funkciókat. A funkciószűrőkkel kapcsolatos további információkért lásd : Feltételes szolgáltatások engedélyezése funkciószűrőkkel.
Az ebben az útmutatóban használt példa a szolgáltatásfelügyeleti rövid útmutatóban bemutatott Go Gin webalkalmazáson alapul. A folytatás előtt végezze el a Go Gin-webalkalmazás bétaverziós funkciójelzővel való létrehozásához szükséges rövid útmutatót. Ha végzett, hozzá kell adnia egy egyéni funkciószűrőt az Alkalmazáskonfigurációs áruház bétafunkció-jelzőjéhez .
Ebben az útmutatóban megtudhatja, hogyan implementálhat egyéni funkciószűrőt, és hogyan használhatja a funkciószűrőt a szolgáltatások feltételes engedélyezéséhez.
Prerequisites
- Go Gin-webalkalmazás létrehozása funkciójelölővel.
- Egyéni funkciószűrő hozzáadása a funkciójelölőhöz
Egyéni funkciószűrő implementálása
Az előfeltételek között egy Véletlenszerű nevű egyéni funkciószűrőt adott hozzá a béta funkciózászlóhoz a százalékos paraméterrel. Ezután implementálja a funkciószűrőt, hogy engedélyezze a bétaverzió funkciójelzőjét a Százalék paraméter által meghatározott esély alapján.
Hozzon létre egy
random_filter.gofájlt a következő kóddal: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 }Hozzáadott egy
RandomFilterstruktúrát, amely implementálja aFeatureFilterinterfészt afeaturemanagementkönyvtárból. AzFeatureFilterinterfésznek két módszere van:-
Name()A Véletlenszerű szűrőnevet adja vissza, amely megegyezik az Azure App Configuration bétafunkció-jelölőjében beállított szűrőnévvel. -
Evaluate()a funkciójelző kiértékelésekor meghívja. A funkciószűrő a visszaadással engedélyezi a funkciójelzőttrue.
-
Frissítse a
main.gofájlt aRandomFilterregisztrálásához a funkciókezelő létrehozásakor.// ...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... }
Funkciószűrő működés közben
Indítsa újra az alkalmazást, és frissítse a böngészőt néhányszor. A funkciójelző kézi kapcsolása nélkül a Béta menü véletlenszerűen jelenik meg az Ön által beállított százalék alapján.
Next steps
A beépített funkciószűrőkről az alábbi dokumentumokban olvashat bővebben.
A Go funkciókezelő könyvtár teljes funkciólistáját a következő dokumentummal folytathatja.