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.
En esta guía, usará un filtro de selección de destino a fin de implementar una característica para públicos de destino para la aplicación Node.js. Para más información sobre el filtro de destino, vea Implementación de características en públicos de destino.
Prerrequisitos
- Una cuenta de Azure con una suscripción activa. cree una de forma gratuita.
- Un almacén de configuración de aplicaciones, como se muestra en el tutorial para crear un almacén.
- Una bandera de características beta con filtro de segmentación. Crear la marca de característica.
- Python 3.8 o posterior.
Creación de una aplicación web con una marca de característica
En esta sección, creará una aplicación web que use la marca de característica Beta para controlar el acceso a la versión beta de una página web.
Configuración de un proyecto de Python Flask
Cree una carpeta llamada
targeting-filter-tutorialy vaya a ella.mkdir targeting-filter-tutorial cd targeting-filter-tutorialCree un entorno virtual y actívelo.
# For Windows python -m venv venv venv\Scripts\activate # For macOS/Linux python -m venv venv source venv/bin/activateInstale los siguientes paquetes.
pip install azure-appconfiguration-provider pip install azure-identity pip install featuremanagement pip install flaskCree un nuevo archivo denominado app.py y agregue el código siguiente.
from flask import Flask app = Flask(__name__) if __name__ == "__main__": app.run(debug=True)
Conexión a Azure App Configuration
Actualice app.py y agregue el código siguiente.
from flask import Flask import os from azure.identity import DefaultAzureCredential from azure.appconfiguration.provider import load from featuremanagement import FeatureManager app = Flask(__name__) # Get the App Configuration endpoint from environment variables app_config_endpoint = os.environ.get("AZURE_APPCONFIG_ENDPOINT") # Declare App Configuration and feature manager variables azure_app_config = None feature_manager = None def initialize_config(): global azure_app_config, feature_manager # Load feature flags from App Configuration azure_app_config = load( endpoint=app_config_endpoint, credential=DefaultAzureCredential(), feature_flag_enabled=True, feature_flag_refresh_enabled=True ) # Create a feature manager with the loaded configuration feature_manager = FeatureManager(azure_app_config) # Flask route before the request to refresh configuration @app.before_request def refresh_config(): if azure_app_config: azure_app_config.refresh() if __name__ == "__main__": # Initialize configuration before starting the app initialize_config() app.run(debug=True)Se conecta a Azure App Configuration para cargar marcas de características, habilitar la actualización automática y crear un
FeatureManagerobjeto para acceder a las marcas de características más adelante. Elapp.before_requestdecorador garantiza que la configuración se actualice antes de cada solicitud.
Uso de la marca de características
Agregue el código siguiente al archivo app.py antes de la función principal para crear un controlador de ruta para la aplicación Flask. La aplicación sirve contenido diferente en función de si la marca de características beta está habilitada.
@app.route("/")
def home():
is_beta_enabled = feature_manager.is_enabled("Beta")
title = "Home Page"
message = "Welcome."
if is_beta_enabled:
title = "Beta Page"
message = "This is a beta page."
return f"""
<!DOCTYPE html>
<html>
<head><title>{title}</title></head>
<body style="display: flex; justify-content: center; align-items: center; min-height: 100vh; margin: 0;">
<h1 style="text-align: center; font-size: 5rem;">{message}</h1>
</body>
</html>
"""
Habilitación de la selección de destino para la aplicación web
Se requiere un contexto de segmentación al evaluar las funciones con la segmentación habilitada. En Python, debe crear un TargetingContext objeto y pasarlo al is_enabled método del administrador de características.
Actualice el archivo app.py para importar la TargetingContext clase y úsela en la ruta principal:
from flask import Flask, request
from featuremanagement import FeatureManager, TargetingContext
...
@app.route("/")
def home():
# Get targeting context from query parameters
user_id = request.args.get("userId", "")
groups_param = request.args.get("groups", "")
groups = groups_param.split(",") if groups_param else []
targeting_context = TargetingContext(user_id=user_id, groups=groups)
is_beta_enabled = feature_manager.is_enabled("Beta", targeting_context)
title = "Home Page"
message = "Welcome."
if is_beta_enabled:
title = "Beta Page"
message = "This is a beta page."
return f"""
<!DOCTYPE html>
<html>
<head><title>{title}</title></head>
<body style="display: flex; justify-content: center; align-items: center; min-height: 100vh; margin: 0;">
<h1 style="text-align: center; font-size: 5rem;">{message}</h1>
</body>
</html>
"""
if __name__ == "__main__":
# Initialize configuration before starting the app
initialize_config()
app.run(debug=True)
Filtro de selección de destino en acción
Establezca la variable de entorno denominada AZURE_APPCONFIG_ENDPOINT en el punto de conexión del almacén de App Configuration que se encuentra en la Información general del almacén en Azure Portal.
Si usa el símbolo del sistema de Windows, ejecute el siguiente comando y reinícielo para que se aplique el cambio:
setx AZURE_APPCONFIG_ENDPOINT "<AppConfigurationEndpoint>"Si usa PowerShell, ejecute el siguiente comando:
$Env:AZURE_APPCONFIG_ENDPOINT = "<AppConfigurationEndpoint>"Si usa macOS o Linux, ejecute el siguiente comando:
export AZURE_APPCONFIG_ENDPOINT='<AppConfigurationEndpoint>'Ejecute la aplicación.
python app.pyAbra el explorador y vaya a la dirección que se muestra en el terminal (de forma predeterminada, http://127.0.0.1:5000). Debería ver la vista predeterminada de la aplicación.
Agregue
userIdcomo parámetro de consulta en la dirección URL para especificar el identificador de usuario. Visitelocalhost:5000/?userId=test@contoso.com. Verá la página beta, porquetest@contoso.comse especifica como un usuario objetivo.
Visite
localhost:5000/?userId=testuser@contoso.com. No puede ver la página beta, ya quetestuser@contoso.comse especifica como un usuario excluido.
Pasos siguientes
Para más información sobre los filtros de características, continúe con los siguientes documentos.
Para obtener más información sobre la biblioteca de administración de características de Python, continúe con el siguiente documento.