Comparteix a través de


Inicio rápido: Uso de Azure Cache for Redis con Python

En este inicio rápido incorporará Azure Redis Cache en un script de Python para acceder a una caché dedicada y segura, a la que se puede acceder desde cualquier aplicación de Azure.

Ir al código en GitHub

Si quiere pasar directamente al código, consulte Inicio rápido: Uso de Azure Cache for Redis en Python en GitHub.

Requisitos previos

Creación de una instancia de Azure Redis Cache

  1. Para crear una instancia de caché, inicie sesión en Azure Portal y seleccione Crear un recurso.

    Crear un recurso está resaltado en el panel de navegación izquierdo.

  2. En la página Introducción, escriba Azure Cache for Redis en el cuadro de búsqueda. Seleccione Crear.

    Captura de pantalla de Azure Marketplace con Azure Cache for Redis en el cuadro de búsqueda y Crear resaltado con un cuadro rojo.

  3. En la página Nueva instancia de Redis Cache, configure las opciones de la caché.

    Configuración Elegir un valor Descripción
    Suscripción Desplácese hacia abajo y seleccione su suscripción. La suscripción en la que se creará esta nueva instancia de Azure Cache for Redis.
    Grupos de recursos Desplácese hacia abajo y seleccione un grupo de recursos o Crear nuevo y escriba un nombre nuevo para el grupo de recursos. Nombre del grupo de recursos en el que se van a crear la caché y otros recursos. Al colocar todos los recursos de la aplicación en un grupo de recursos, puede administrarlos o eliminarlos fácilmente.
    Nombre DNS Escriba un nombre único. El nombre de la memoria caché debe ser una cadena de entre 1 y 63 caracteres, y solo puede contener números, letras o guiones. El nombre debe comenzar y terminar por un número o una letra y no puede contener guiones consecutivos. El nombre de host de la instancia de caché es <DNS name>.redis.cache.windows.net.
    Ubicación Desplácese hacia abajo y seleccione una ubicación. Selecciona una región cerca de otros servicios que usan la memoria caché.
    SKU de la caché Despliegue y seleccione una SKU. La SKU determina los parámetros de tamaño, rendimiento y características que están disponibles para la memoria caché. Para más información, consulte la introducción a Azure Redis Cache.
    Tamaño de la caché Despliegue y seleccione un tamaño de la memoria caché Para más información, consulte la introducción a Azure Redis Cache.
  4. Seleccione la pestaña Redes o elija el botón Redes situado en la parte inferior de la página.

  5. En la pestaña Redes, seleccione el método de conectividad.

  6. Seleccione la pestaña Siguiente: Avanzadas o el botón Siguiente: Avanzadas en la parte inferior de la página para ver la pestaña Avanzadas.

    Captura de pantalla que muestra la pestaña Opciones avanzadas en el panel de trabajo y la opción que se puede seleccionar.

    • En cachés básicas o estándar, cambie la selección a un puerto que no sea TLS. También puede seleccionar si desea habilitar la Autenticación de Microsoft Entra.
    • En el caso de una caché Premium, configure las opciones para un puerto que no sea TLS, la agrupación en clústeres, la identidad administrada y la persistencia de datos. También puede seleccionar si desea habilitar la Autenticación de Microsoft Entra.

    Importante

    Para lograr una seguridad óptima, Microsoft recomienda usar Microsoft Entra ID con identidades administradas para autorizar solicitudes en la memoria caché siempre que sea posible. La autorización con Microsoft Entra ID e identidades administradas proporciona más seguridad y facilidad de uso que la autorización con claves compartidas. Para más información acerca del uso de identidades administradas con las memorias caché, consulte Uso de Microsoft Entra ID para la autenticación de la memoria caché.

  7. Seleccione el botón Siguiente: Opciones avanzadas o elija el botón Siguiente: Etiquetas situado en la parte inferior de la página.

  8. Opcionalmente, en la pestaña Etiquetas, escriba el nombre y el valor si desea clasificar el recurso.

  9. Seleccione Revisar + crear. Pasará a la pestaña Revisar y crear, donde Azure valida la configuración.

  10. Tras aparecer el mensaje verde Validación superada, seleccione Crear.

Se tarda un tiempo en crear una memoria caché. Puede supervisar el progreso en la página Información general de Azure Cache for Redis. Cuando Estado se muestra como En ejecución, la memoria caché está lista para su uso.

Instalación de la biblioteca redis-py

Redis-py es una interfaz de Python para Azure Redis Cache. Use la herramienta de paquetes de Python, pip, para instalar el paquete redis-py desde un símbolo del sistema.

En el ejemplo siguiente se usa pip3 para Python 3 para instalar redis-py en Windows 11 desde un símbolo del sistema de administrador.

Captura de pantalla de un terminal que muestra una instalación de la interfaz redis-py para Azure Cache for Redis.

Creación de un script de Python para acceder a la memoria caché

Cree un script de Python para que use Microsoft Entra ID o claves de acceso para conectarse a una instancia de Azure Cache for Redis. Se recomienda usar Microsoft Entra ID.

Habilitación de la autenticación de Microsoft Entra ID en la memoria caché

Si ya tiene una memoria caché, lo primero es comprobar si se ha habilitado la autenticación de Microsoft Entra. Si no es así, habilítela. Se recomienda usar Microsoft Entra ID para las aplicaciones.

  1. En Azure Portal, seleccione la instancia de Azure Cache for Redis en la que desea usar la autenticación basada en tokens de Microsoft Entra.

  2. Seleccione Autenticación en el menú Recurso.

  3. Actualice el panel de trabajo para ver si está activada Habilitar la autenticación de Microsoft Entra. Si es así, puede continuar.

  4. Seleccione Habilitar autenticación de Microsoft Entra y escriba el nombre de un usuario válido. Al usuario que escriba se le asigna automáticamente una directiva de acceso del propietario de datos de forma predeterminada al seleccionar Guardar. También puede escribir una identidad administrada o una entidad de servicio para conectarse a la instancia de caché.

    Captura de pantalla que muestra la autenticación seleccionada en el menú de recursos y la habilitación de la autenticación de Microsoft Entra activada.

  5. Se muestra un cuadro de diálogo emergente en el que se le pregunta si desea actualizar la configuración e informa de que tarda varios minutos. Seleccione .

    Importante

    Una vez completada la operación de habilitación, los nodos de la instancia de caché se reinician para cargar la nueva configuración. Se recomienda realizar esta operación durante la ventana de mantenimiento o fuera del horario comercial pico. Esta operación puede tardar hasta 30 minutos.

Para obtener información sobre el uso de Microsoft Entra ID con la CLI de Azure, consulte las páginas de referencias para la identidad.

Instalación de la biblioteca de autenticación de Microsoft

  1. Instale la biblioteca de autenticación de Microsoft (MSAL). Esta biblioteca permite adquirir tokens de seguridad de la identidad de Microsoft para autenticar a los usuarios.

  2. Puede usar la biblioteca cliente de identidad de Azure de Python disponible que usa MSAL para proporcionar compatibilidad con la autenticación de tokens. Instale esta biblioteca utilizando pip:

pip install azure-identity

Creación de un script de Python con Microsoft Entra ID

  1. Cree un nuevo archivo de texto, agregue el siguiente script y guarde el archivo como PythonApplication1.py.

  2. Reemplace <Your Host Name> por los valores de su instancia de Azure Cache for Redis. Su nombre de host tiene el formato <DNS name>.redis.cache.windows.net.

  3. Reemplace <Your Username> por los valores de su usuario de Microsoft Entra ID.

    import redis
    from azure.identity import DefaultAzureCredential
    
    scope = "https://redis.azure.com/.default"
    host = "<Your Host Name>"
    port = 6380
    user_name = "<Your Username>"
    
    
    def hello_world():
        cred = DefaultAzureCredential()
        token = cred.get_token(scope)
        r = redis.Redis(host=host,
                        port=port,
                        ssl=True,    # ssl connection is required.
                        username=user_name,
                        password=token.token,
                        decode_responses=True)
        result = r.ping()
        print("Ping returned : " + str(result))
    
        result = r.set("Message", "Hello!, The cache is working with Python!")
        print("SET Message returned : " + str(result))
    
        result = r.get("Message")
        print("GET Message returned : " + result)
    
        result = r.client_list()
        print("CLIENT LIST returned : ")
        for c in result:
            print(f"id : {c['id']}, addr : {c['addr']}")
    
    if __name__ == '__main__':
        hello_world()
    
  4. Antes de ejecutar el código de Python desde un terminal, asegúrese de autorizar el terminal para usar Microsoft Entra ID.

    azd auth login

  5. Ejecute PythonApplication1.py con Python. Debería ver resultados parecidos a este ejemplo:

    Captura de pantalla de un terminal que muestra un script de Python para probar el acceso a la memoria caché.

Creación de un script de Python mediante la reautenticación

Los tokens de acceso de Microsoft Entra ID tienen una duración limitada, cuyo promedio es 75 minutos. Para mantener una conexión a la memoria caché, es preciso actualizar el token. En este ejemplo se muestra cómo hacerlo mediante Python.

  1. Cree un archivo de texto y agregue el siguiente script. Luego, guarde el archivo como PythonApplication2.py.

  2. Reemplace <Your Host Name> por los valores de su instancia de Azure Cache for Redis. Su nombre de host tiene el formato <DNS name>.redis.cache.windows.net.

  3. Reemplace <Your Username> por los valores de su usuario de Microsoft Entra ID.

    import time
    import logging
    import redis
    from azure.identity import DefaultAzureCredential
    
    scope = "https://redis.azure.com/.default"
    host = "<Your Host Name>"
    port = 6380
    user_name = "<Your Username>"
    
    def re_authentication():
        _LOGGER = logging.getLogger(__name__)
        cred = DefaultAzureCredential()
        token = cred.get_token(scope)
        r = redis.Redis(host=host,
                        port=port,
                        ssl=True,   # ssl connection is required.
                        username=user_name,
                        password=token.token,
                        decode_responses=True)
        max_retry = 3
        for index in range(max_retry):
            try:
                if _need_refreshing(token):
                    _LOGGER.info("Refreshing token...")
                    tmp_token = cred.get_token(scope)
                    if tmp_token:
                        token = tmp_token
                    r.execute_command("AUTH", user_name, token.token)
                result = r.ping()
                print("Ping returned : " + str(result))
    
                result = r.set("Message", "Hello!, The cache is working with Python!")
                print("SET Message returned : " + str(result))
    
                result = r.get("Message")
                print("GET Message returned : " + result)
    
                result = r.client_list()
                print("CLIENT LIST returned : ")
                for c in result:
                    print(f"id : {c['id']}, addr : {c['addr']}")
                break
            except redis.ConnectionError:
                _LOGGER.info("Connection lost. Reconnecting.")
                token = cred.get_token(scope)
                r = redis.Redis(host=host,
                                port=port,
                                ssl=True,   # ssl connection is required.
                                username=user_name,
                                password=token.token,
                                decode_responses=True)
            except Exception:
                _LOGGER.info("Unknown failures.")
                break
    
    
    def _need_refreshing(token, refresh_offset=300):
        return not token or token.expires_on - time.time() < refresh_offset
    
    if __name__ == '__main__':
        re_authentication()
    
  4. Ejecute PythonApplication2.py con Python. Debería ver resultados parecidos a este ejemplo:

    Captura de pantalla de un terminal que muestra un script de Python para probar el acceso a la memoria caché.

    A diferencia del primer ejemplo, si el token expira, este ejemplo lo actualiza automáticamente.

Limpieza de recursos

Si desea seguir usando los recursos que creó en este artículo, mantenga el grupo de recursos.

De lo contrario, si ya ha terminado con los recursos, puede eliminar el grupo de recursos de Azure que ha creado para evitar cargos.

Importante

La eliminación de un grupo de recursos es irreversible. Cuando elimine un grupo de recursos, todos los recursos contenidos en él se eliminan permanentemente. Asegúrese de no eliminar por accidente el grupo de recursos o los recursos equivocados. Si ha creado los recursos en un grupo de recursos existente que contiene recursos que desea conservar, puede eliminar cada recurso individualmente en lugar de eliminar el grupo de recursos.

Para eliminar un grupo de recursos

  1. Inicie sesión en Azure Portal y después seleccione Grupos de recursos.

  2. Seleccione el grupo de recursos que desea eliminar.

    Si hay muchos grupos de recursos, use el cuadro Filtro para cualquier campo... y escriba el nombre del grupo de recursos que creó para este artículo. Seleccione el grupo de recursos en la lista de resultados.

    Captura de pantalla que muestra una lista de grupos de recursos para eliminar en el panel de trabajo.

  3. Seleccione Eliminar grupo de recursos.

  4. Se le pedirá que confirme la eliminación del grupo de recursos. Escriba el nombre del grupo de recursos para confirmar y, después, seleccione Eliminar.

    Captura de pantalla que muestra un formulario que requiera el nombre del recurso para confirmar la eliminación.

Transcurridos unos instantes, el grupo de recursos y todos sus recursos se eliminan.