Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Las marcas de características pueden usar filtros de características para habilitarlas de forma condicional. Para más información sobre los filtros de características, consulte Habilitación de características condicionales con filtros de características.
El ejemplo usado en esta guía se basa en la aplicación Python que se describió en el inicio rápido de administración de características. Antes de seguir adelante, complete el inicio rápido para crear una aplicación Python con una marca de característica Beta. Una vez completado, debe agregar un filtro de características personalizado a la marca de característica beta en el almacén de App Configuration.
En esta guía, aprenderá a implementar un filtro de características personalizado y a usar el filtro de características para habilitarlas de forma condicional.
Requisitos previos
- Cree una aplicación de Python con una marca de característica.
- Agregar un filtro de características personalizado a la marca de característica
Implementación de un filtro de características personalizado
Ha agregado un filtro de características personalizado denominado Aleatorio con un parámetro de porcentaje para la marca de característica beta en los requisitos previos. A continuación, se implementa el filtro de características para habilitar el indicador de características Beta en función de la probabilidad definida por el parámetro Porcentaje.
Agregue un archivo
RandomFilter.pycon el código siguiente.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 FalseHa agregado una clase
RandomFilterque implementa la clase abstractaFeatureFilterde la bibliotecaFeatureManagement. La claseFeatureFiltertiene un único método denominadoevaluate, al que se llama cada vez que se evalúa una marca de característica. Enevaluate, un filtro de características habilita una marca de característica devolviendotrue.Ha decorado un
FeatureFilter.aliasen elRandomFilterpara proporcionar al filtro un alias Random, que coincide con el nombre de filtro que estableció en la marca de característica beta en Azure App Configuration.Abra el archivo app.py y registre el
RandomFilteral crearFeatureManager. Además, modifique el código para que no se actualice automáticamente y también para acceder a la marca de características de Beta varias veces, como se muestra a continuación.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"))
Filtro de características en acción
Al ejecutar la aplicación, el proveedor de configuración cargará el indicador de características Beta desde Azure App Configuration. El resultado del método is_enabled("Beta") se imprimirá en la consola. Como el RandomFilter es implementado y utilizado por la marca de características Beta, el resultado será True el 50 por ciento de las veces y False el otro 50 por ciento de las veces.
Al ejecutar la aplicación se verá que la marca de la característica Beta a veces está habilitada y a veces no.
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
Pasos siguientes
Para obtener más información sobre los filtros de características integrados, continúe con los siguientes documentos.