إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
يمكن أن تستخدم علامات الميزات عوامل تصفية الميزات لتمكين الميزات بشكل مشروط. لمعرفة المزيد حول عوامل تصفية الميزات، راجع تمكين الميزات الشرطية باستخدام عوامل تصفية الميزات.
يعتمد المثال المستخدم في هذا الدليل على تطبيق الويب Go Gin الذي تم تقديمه في التشغيل السريع لإدارة الميزات. قبل المتابعة ، أكمل التشغيل السريع لإنشاء تطبيق ويب Go Gin بعلامة ميزة تجريبية . بمجرد الانتهاء، يجب إضافة عامل تصفية ميزة مخصص إلى علامة ميزة Beta في متجر App Configuration.
في هذا الدليل، تتعلم كيفية تنفيذ عامل تصفية ميزات مخصص واستخدام عامل تصفية الميزات لتمكين الميزات بشكل مشروط.
Prerequisites
تنفيذ عامل تصفية ميزة مخصص
لقد أضفت عامل تصفية ميزة مخصص باسم عشوائي مع معلمة النسبة المئوية لعلامة الميزة التجريبية في المتطلبات الأساسية. بعد ذلك، ستقوم بتنفيذ عامل تصفية الميزة لتمكين علامة ميزة Beta استنادا إلى الفرصة المحددة بواسطة معلمة النسبة المئوية .
random_filter.goإنشاء ملف باستخدام التعليمات البرمجية التالية: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 }لقد أضفت بنية
RandomFilterتنفذ الواجهةFeatureFilterمن المكتبةfeaturemanagement. تحتوي الواجهةFeatureFilterعلى طريقتين:-
Name()إرجاع اسم عامل التصفية عشوائي، والذي يطابق اسم عامل التصفية الذي قمت بتعيينه في علامة الميزة التجريبية في تكوين تطبيق Azure. -
Evaluate()عندما يتم تقييم علامة الميزة. يتيح عامل تصفية الميزات علامة الميزة عن طريق إرجاعtrue.
-
قم بتحديث ملفك
main.goلتسجيل عندRandomFilterإنشاء مدير الميزات:// ...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... }
عامل تصفية الميزة قيد التنفيذ
أعد تشغيل التطبيق وحدث المتصفح عدة مرات. بدون تبديل علامة الميزة يدويا، تظهر القائمة التجريبية بشكل عشوائي بناء على النسبة المئوية التي تحددها.
Next steps
لمعرفة المزيد حول عوامل تصفية الميزات المضمنة، تابع إلى المستندات التالية.
للحصول على ملخص الميزات الكامل لمكتبة إدارة ميزات Go، تابع إلى المستند التالي.