Tutorial: Habilitar características condicionales con un filtro personalizado en una aplicación de Python
Las marcas de características pueden usar filtros de características para habilitarlas de forma condicional. Para obtener más información sobre los filtros de características, consulte Tutorial: Habilitación de características condicionales con filtros de características.
El ejemplo usado en este tutorial se basa en la aplicación de Python introducida en la administración de características inicio rápido. 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 este tutorial, 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.py
con 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 False
Ha agregado una clase
RandomFilter
que implementa la clase abstractaFeatureFilter
de la bibliotecaFeatureManagement
. La claseFeatureFilter
tiene 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.alias
en elRandomFilter
para 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
RandomFilter
al 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 más información sobre los filtros de características integrados, continúe con los siguientes tutoriales.