Inicio rápido: Agregar marcas de características a una aplicación de Python
En este inicio rápido, creará una marca de características en Azure App Configuration y la usará para controlar dinámicamente las aplicaciones de Python para crear una implementación de un extremo a otro de la administración de características.
La compatibilidad con la administración de características amplía la característica de configuración dinámica en App Configuration. Estos ejemplos de la compilación de inicio rápido en la aplicación Python introducida en el tutorial de configuración dinámica. Antes de continuar, finalice el inicio rápido y el tutorial para crear primero aplicaciones de Python con configuración dinámica.
Esta biblioteca no tiene ninguna dependencia en ninguna biblioteca de Azure. Se integran sin problemas con App Configuration mediante su proveedor de configuración de Python.
Requisitos previos
- Una cuenta de Azure con una suscripción activa. cree una de forma gratuita.
- Un almacén de App Configuration. Crear un almacén.
- Python 3.8 o posterior: para obtener información sobre cómo configurar Python en Windows, consulte la documentación Python en Windows; de lo contrario, consulte descargas de Python.
- Biblioteca azure-appconfiguration-provider 1.2.0 o posterior.
Agregar marca de características
Agregue una marca de característica denominada Beta al almacén de App Configuration y deje Etiqueta y descripción con sus valores predeterminados. Para obtener más información sobre cómo agregar marcas de características a un almacén mediante Azure Portal o la CLI, vaya a Creación de una marca de característica. En esta fase, la casilla Habilitar marca de característica debe desactivarse.
Aplicaciones de consola
Instale la Administración de características mediante el comando
pip install
.pip install featuremanagement
Cree un nuevo archivo de Python llamado
app.py
y agregue el código siguiente:from featuremanagement import FeatureManager from azure.identity import InteractiveBrowserCredential from azure.appconfiguration.provider import load import os from time import sleep endpoint = os.environ["APP_CONFIGURATION_ENDPOINT"] # Connecting to Azure App Configuration using an endpoint # credential is used to authenticate the client, the InteractiveBrowserCredential is used for this sample. It will open a browser window to authenticate the user. For all credential options see [credential classes](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/identity/azure-identity#credential-classes). # 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=InteractiveBrowserCredential(), feature_flag_enabled=True, feature_flag_refresh_enabled=True) feature_manager = FeatureManager(config) # Is always false print("Beta is ", feature_manager.is_enabled("Beta")) while not feature_manager.is_enabled("Beta"): sleep(5) config.refresh() print("Beta is ", feature_manager.is_enabled("Beta"))
Al iniciar la aplicación, se abrirá una ventana del explorador para autenticar al usuario. El usuario debe tener al menos el rol de App Configuration Data Reader
para acceder al almacén de App Configuration, consulte roles de App Configuration para obtener más información.
Establezca una variable de entorno denominada APP_CONFIGURATION_ENDPOINT y establézcala en el punto de conexión en el almacén de App Configuration. En la línea de comandos, ejecute el siguiente comando y reinicie el símbolo del sistema para que se aplique el cambio:
Para compilar y ejecutar la aplicación de forma local mediante el símbolo del sistema de Windows, ejecute el siguiente comando:
setx APP_CONFIGURATION_ENDPOINT "<endpoint-of-your-app-configuration-store>"
Reinicie el símbolo del sistema para permitir que el cambio surta efecto. Compruebe que se establece correctamente imprimiendo el valor de la variable de entorno.
Ejecute la aplicación de Python.
python app.py
En el portal de App Configuration, seleccione Administrador de características y cambie el estado de la marca de características Beta a Activada, con el botón de alternancia en la columna Habilitada.
Clave State Beta Activado Después de unos 30 segundos, que es el intervalo de actualización del proveedor, la aplicación imprimirá lo siguiente:
Beta is True
Aplicaciones web
En el ejemplo siguiente se muestra cómo actualizar una aplicación web existente mediante Azure App Configuration con actualización dinámica para usar también marcas de características. Consulte Configuración dinámica de Python para obtener un ejemplo más detallado de cómo usar la actualización dinámica para los valores de configuración. Antes de continuar, asegúrese de que tiene habilitada la marca de características Beta en el almacén de App Configuration.
En app.py
, configure el método de carga de Azure App Configuration para cargar además las marcas de características, junto con la habilitación de la actualización de las marcas de características.
from featuremanagement import FeatureManager
...
global azure_app_config, feature_manager
# Connecting to Azure App Configuration using an endpoint
# credential is used to authenticate the client, the InteractiveBrowserCredential is used for this sample. It will open a browser window to authenticate the user. For all credential options see [credential classes](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/identity/azure-identity#credential-classes).
# 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
azure_app_config = load(endpoint=endpoint, credential=InteractiveBrowserCredential(),
refresh_on=[WatchKey("sentinel")],
on_refresh_success=on_refresh_success,
refresh_interval=10, # Default value is 30 seconds, shortened for this sample
feature_flag_enabled=True,
feature_flag_refresh_enabled=True,
)
feature_manager = FeatureManager(config)
Actualice también las rutas para comprobar si hay marcas de características actualizadas.
@app.route("/")
def index():
...
context["message"] = azure_app_config.get("message")
context["beta"] = feature_manager.is_enabled("Beta")
...
Actualice la plantilla index.html
para usar las nuevas marcas de características.
...
<body>
<main>
<div>
<h1>{{message}}</h1>
{% if beta %}
<h2>Beta is enabled</h2>
{% endif %}
</div>
</main>
</body>
Una vez que haya actualizado y ejecutado la aplicación, puede ver la marca de características en acción, donde aparecerá el mensaje Beta is enabled
en la página, pero solo si la marca de características está habilitada en el almacén de App Configuration.
Puede encontrar un proyecto de ejemplo completo aquí.
Cada vez que se desencadenan estos puntos de conexión, se puede realizar una comprobación de actualización para asegurarse de que se usan los valores de configuración más recientes. La comprobación puede devolverse inmediatamente si el intervalo de actualización aún no se ha superado o si ya hay una actualización en curso.
Cuando se completa una actualización, todos los valores se actualizan a la vez, por lo que la configuración siempre es coherente dentro del objeto.
Limpieza de recursos
Si no quiere seguir usando los recursos que se han creado en este artículo, elimine el grupo de recursos que creó aquí para evitar cargos.
Importante
La eliminación de un grupo de recursos es irreversible. El grupo de recursos y todos los recursos que contiene se eliminan permanentemente. Asegúrese de que no elimina por accidente el grupo de recursos o los recursos equivocados. Si creó los recursos para este artículo en un grupo de recursos que contenga los recursos que desee conservar, elimine cada recurso de forma individual desde su panel respectivo, en lugar de eliminar el grupo de recursos.
- Inicie sesión en Azure Portal y después seleccione Grupos de recursos.
- En el cuadro de texto Filtrar por nombre, escriba el nombre del grupo de recursos.
- En la lista resultados, seleccione el nombre del grupo de recursos para ver la información general.
- Seleccione Eliminar grupo de recursos.
- Se le pedirá que confirme la eliminación del grupo de recursos. Escriba el nombre del grupo de recursos para confirmar y seleccione Eliminar.
Transcurridos unos instantes, el grupo de recursos y todos sus recursos se eliminan.
Pasos siguientes
En este inicio rápido, ha creado un almacén de App Configuration y lo ha usado para administrar características en una aplicación de Python mediante la biblioteca de administración de características.
- Más información sobre la administración de características.
- Administración de marcas de características.