Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Bendera fitur dapat menggunakan filter fitur untuk mengaktifkan fitur secara kondisional. Untuk mempelajari selengkapnya tentang filter fitur, lihat Mengaktifkan fitur kondisional dengan filter fitur.
Contoh yang digunakan dalam panduan ini didasarkan pada aplikasi web Go Gin yang diperkenalkan dalam panduan cepat manajemen fitur. Sebelum melanjutkan lebih lanjut, selesaikan panduan memulai cepat untuk membuat aplikasi web Go Gin dengan penanda fitur Beta. Setelah selesai, Anda harus menambahkan filter fitur kustom ke bendera fitur Beta di penyimpanan App Configuration Anda.
Dalam panduan ini, Anda mempelajari cara menerapkan filter fitur kustom dan menggunakan filter fitur untuk mengaktifkan fitur secara kondisional.
Prerequisites
Menerapkan filter fitur kustom
Anda menambahkan filter fitur kustom bernama Acak dengan parameter Persentase untuk flag fitur Beta Anda sebagai prasyarat. Selanjutnya, Anda akan menerapkan filter fitur untuk mengaktifkan bendera fitur Beta berdasarkan kesempatan yang ditentukan oleh parameter Persentase .
Buat
random_filter.gofile dengan kode berikut: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 }Anda menambahkan sebuah
RandomFilterstruct yang mengimplementasikan antarmukaFeatureFilterdari pustakafeaturemanagement. AntarmukaFeatureFiltermemiliki dua metode:-
Name()mengembalikan nama filter Acak, yang cocok dengan nama filter yang Anda tetapkan di bendera fitur Beta di Azure App Configuration. -
Evaluate()dipanggil setiap kali bendera fitur dievaluasi. Filter fitur mengaktifkan flag fitur dengan mengembalikantrue.
-
Perbarui file
main.goAnda untuk mendaftarkanRandomFiltersaat membuat pengelola fitur:// ...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... }
Filter fitur sedang beraksi
Jalankan kembali aplikasi dan refresh browser beberapa kali. Tanpa mengubah bendera fitur secara manual, menu Beta muncul secara acak berdasarkan persentase yang Anda tetapkan.
Next steps
Untuk mempelajari selengkapnya tentang filter fitur bawaan, lanjutkan ke dokumen berikut.
Untuk ikhtisar lengkap pustaka pengelolaan fitur Go, silakan lihat dokumen berikut.