مشاركة عبر


تمكين الميزات الشرطية باستخدام عامل تصفية مخصص في تطبيق Python

يمكن أن تستخدم علامات الميزات عوامل تصفية الميزات لتمكين الميزات بشكل مشروط. لمعرفة المزيد حول عوامل تصفية الميزات، راجع تمكين الميزات الشرطية باستخدام عوامل تصفية الميزات.

يستند المثال المستخدم في هذا الدليل إلى تطبيق Python المقدم في التشغيل السريع لإدارة الميزات. قبل المتابعة، أكمل التشغيل السريع لإنشاء تطبيق Python مع علامة ميزة Beta . بمجرد الانتهاء، يجب إضافة عامل تصفية ميزة مخصص إلى علامة ميزة Beta في متجر App Configuration.

في هذه المقالة، ستتعلم كيفية تنفيذ عامل تصفية ميزة مخصص واستخدام عامل تصفية الميزة لتمكين الميزات بشكل مشروط.

المتطلبات الأساسية

تنفيذ عامل تصفية ميزة مخصص

لقد أضفت عامل تصفية ميزة مخصصا يسمى Random مع معلمة النسبة المئوية لعلامة ميزة Beta في المتطلبات الأساسية. بعد ذلك، يمكنك تنفيذ عامل تصفية الميزة لتمكين علامة ميزة Beta استنادا إلى الفرصة المحددة بواسطة معلمة النسبة المئوية .

  1. أضف ملفا RandomFilter.py باستخدام التعليمات البرمجية التالية.

    import random
    from featuremanagement import FeatureFilter
    
    @FeatureFilter.alias("Random")
    class RandomFilter(FeatureFilter):
    
        def evaluate(self, context, **kwargs):
            value = context.get("parameters", {}).get("Value", 0)
            if value < random.randint(0, 100):
                return True
            return False
    

    لقد أضفت RandomFilter فئة تنفذ FeatureFilter الفئة المجردة من المكتبة FeatureManagement . FeatureFilter تحتوي الفئة على أسلوب واحد يسمى evaluate، والذي يتم استدعاؤه كلما تم تقييم علامة ميزة. في evaluate، يمكن عامل تصفية الميزة علامة ميزة عن طريق إرجاع true.

    لقد قمت بتزيين FeatureFilter.alias إلى لمنح عامل التصفية RandomFilter اسما مستعارا عشوائيا، والذي يطابق اسم عامل التصفية الذي قمت بتعيينه في علامة ميزة بيتا في تكوين تطبيق Azure.

  2. افتح ملف app.py وسجل RandomFilter عند إنشاء FeatureManager. أيضا، قم بتعديل التعليمات البرمجية لعدم التحديث تلقائيا وللوصول أيضا إلى علامة ميزة Beta عدة مرات، كما هو موضح أدناه.

    from featuremanagement import FeatureManager
    from azure.appconfiguration.provider import load
    from azure.identity import DefaultAzureCredential
    import os
    
    endpoint = os.environ.get("APPCONFIGURATION_ENDPOINT_STRING")
    
    # Connect to Azure App Configuration using and Endpoint and Azure Entra ID
    # feature_flag_enabled makes it so that the provider will load feature flags from Azure App Configuration
    # feature_flag_refresh_enabled makes it so that the provider will refresh feature flags
    # from Azure App Configuration, when the refresh operation is triggered
    config = load(endpoint=endpoint, credential=DefaultAzureCredential(), feature_flag_enabled=True)
    
    feature_manager = FeatureManager(config, feature_filters=[RandomFilter()])
    
    for i in range(0, 10):
        print("Beta is", feature_manager.is_enabled("Beta"))
    

عامل تصفية الميزة قيد التنفيذ

عند تشغيل التطبيق، سيقوم موفر التكوين بتحميل علامة ميزة Beta من Azure App Configuration. ستتم طباعة نتيجة is_enabled("Beta") الأسلوب إلى وحدة التحكم. RandomFilter كما يتم تنفيذها واستخدامها بواسطة علامة ميزة بيتا، ستكون True النتيجة 50 في المئة من الوقت و50 False في المئة الأخرى من الوقت.

سيؤدي تشغيل التطبيق إلى إظهار تمكين علامة ميزة Beta في بعض الأحيان، وفي بعض الأحيان لا يتم تمكينها.

Beta is True
Beta is False
Beta is True
Beta is True
Beta is True
Beta is False
Beta is False
Beta is False
Beta is True
Beta is True

الخطوات التالية

لمعرفة المزيد حول عوامل تصفية الميزات المضمنة، تابع إلى المستندات التالية.