Inicio rápido: Uso de Azure Cache for Redis con una aplicación web de ASP.NET

En este inicio rápido usará Visual Studio 2019 para crear una aplicación web de ASP.NET que se conecte a Azure Redis Cache para almacenar y recuperar datos de la caché. Después implementará la aplicación en Azure App Service.

Ir al código en GitHub

Clone el repositorio https://github.com/Azure-Samples/azure-cache-redis-samples/tree/main/quickstart/aspnet en GitHub.

Requisitos previos

Creación de una caché

A continuación, creará la caché de la aplicación.

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

    Create a resource is highlighted in the left navigation pane.

  2. En la página Nuevo, seleccione Base de datos y, a continuación, seleccione Azure Cache for Redis.

    On New, Databases is highlighted, and Azure Cache for Redis is highlighted.

  3. En la página Nueva instancia de Redis Cache, configure las opciones de la nueva 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é.
    Tipo de caché Desplácese hacia abajo y seleccione un nivel. El nivel determina el tamaño, rendimiento y características disponibles para 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 seleccione el botón Siguiente: Avanzadas en la parte inferior de la página para ver la pestaña Avanzadas.

    Screenshot showing the Advanced tab in the working pane and the available option to select.

    • 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.
  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.

Recuperación del nombre de host, los puertos y las claves de acceso desde Azure Portal

Para conectar el servidor de Azure Cache for Redis, el cliente de dicha caché necesita el nombre de host, los puertos y una clave para la caché. Es posible que algunos clientes utilicen nombres ligeramente diferentes para estos elementos. Puede obtener el nombre de host, los puertos y las claves de Azure Portal.

  • Para obtener las claves de acceso, en el panel de navegación izquierdo de Azure Cache for Redis, seleccione Claves de acceso.

    Azure Cache for Redis keys

  • Para obtener el nombre de host y los puertos, en el panel de navegación izquierdo de Azure Cache for Redis, seleccione Propiedades. El nombre de host tiene el formato <nombre_DNS>.redis.cache.windows.net.

    Azure Cache for Redis properties

Para editar el archivo CacheSecrets.config

  1. Cree un archivo en el equipo llamado CacheSecrets.config. Colóquelo en una ubicación en la que no se pueda comprobar con el código fuente de la aplicación de ejemplo. En esta guía de inicio rápido, el archivo CacheSecrets.config se encuentra en C:\AppSecrets\CacheSecrets.config.

  2. Edite el archivo CacheSecrets.config. Después, agregue el siguiente contenido:

    <appSettings>
        <add key="CacheConnection" value="<cache-name>.redis.cache.windows.net,abortConnect=false,ssl=true,allowAdmin=true,password=<access-key>"/>
    </appSettings>
    
  3. Reemplace <cache-name> por su nombre de host de caché.

  4. Reemplace <access-key> por la clave principal de la caché.

    Sugerencia

    Puede usar la clave de acceso secundaria durante la rotación de claves como una clave alternativa mientras vuelve a generar la clave de acceso principal.

  5. Guarde el archivo.

Actualización de la aplicación MVC

En esta sección, puede ver una aplicación MVC que presenta una vista que muestra una prueba sencilla realizada para una instancia de Azure Cache for Redis.

Cómo se conecta el archivo web.config a la memoria caché

Cuando se ejecuta la aplicación localmente, la información de CacheSecrets.config se usa para conectarse a la instancia de Azure Redis Cache. Más adelante, se puede implementar esta aplicación en Azure. En ese momento, define una configuración de aplicación en Azure que la aplicación usa para recuperar la información de conexión de la caché en lugar de este archivo.

Como el archivo CacheSecrets.config no se ha implementado en Azure con la aplicación, solo lo usará al probar la aplicación localmente. Es importante mantener esta información lo más segura posible para impedir el acceso malintencionado a los datos de la caché.

Para actualizar el archivo web.config

  1. En el Explorador de soluciones, abra el archivo web.config.

    Web.config

  2. En el archivo web.config, puede establecer el elemento <appSettings> para ejecutar la aplicación localmente.

    <appSettings file="C:\AppSecrets\CacheSecrets.config">

El sistema en tiempo de ejecución de ASP.NET combina el contenido del archivo externo con las marcas del elemento <appSettings> . El entorno de ejecución omite el atributo de archivo si no se encuentra el archivo especificado. Los secretos (cadena de conexión a la caché) no se incluyen como parte del código fuente de la aplicación. Al implementar la aplicación web en Azure, el archivo CacheSecrets.config no se implementará.

Instalación de StackExchange.Redis

La solución necesita que se ejecute el paquete StackExchange.Redis. Instálelo, con este procedimiento:

  1. Para configurar la aplicación para que use el paquete NuGet StackExchange.Redis para Visual Studio, seleccione Herramientas > Administrador de paquetes NuGet > Consola del Administrador de paquetes.

  2. Ejecute el siguiente comando desde la ventana Package Manager Console:

    Install-Package StackExchange.Redis
    
  3. El paquete de NuGet se descarga y agrega las referencias de ensamblado necesarias para que la aplicación cliente tenga acceso a Azure Cache for Redis con el cliente StackExchange.Redis.

Conectar a la caché con RedisConnection

La clase RedisConnection administra la conexión a la caché. La conexión se realiza por primera vez en esta instrucción de ContosoTeamStats/Controllers/HomeController.cs:

   private static Task<RedisConnection> _redisConnectionFactory = RedisConnection.InitializeAsync(connectionString: ConfigurationManager.AppSettings["CacheConnection"].ToString()););

Se accede al valor del secreto CacheConnection mediante el proveedor de configuración del Administrador de secretos y se utiliza como parámetro de contraseña.

En RedisConnection.cs, verá que el espacio de nombres StackExchange.Redis se ha agregado al código. Esto es necesario para la clase RedisConnection.

using StackExchange.Redis;

El código RedisConnection garantiza que siempre haya una conexión en buen estado a la memoria caché mediante la administración de la instancia ConnectionMultiplexer desde StackExchange.Redis. La clase RedisConnection vuelve a crear la conexión cuando se pierde una conexión y no se puede volver a conectar automáticamente.

Para obtener más información, consulte StackExchange.Redis y el código en un repositorio de GitHub.

Vistas de diseño en el ejemplo

El diseño de página principal de este ejemplo se almacena en el archivo _Layout.cshtml. En esta página, se inician las pruebas de caché reales haciendo clic en la Prueba de Azure Cache for Redis de esta página.

  1. En el Explorador de soluciones, expanda la carpeta Vistas>Compartido. Después, abra el archivo _Layout.cshtml.

  2. Verá la siguiente línea en <div class="navbar-header">.

    @Html.ActionLink("Azure Cache for Redis Test", "RedisCache", "Home", new { area = "" }, new { @class = "navbar-brand" })
    

    screenshot of welcome page

Mostrar datos de la memoria caché

En la página principal, seleccione Prueba de Azure Cache for Redis para ver la salida de ejemplo.

  1. En el Explorador de soluciones, expanda la carpeta Vistas y, luego, haga clic con el botón derecho en la carpeta Inicio.

  2. Debería ver este código en el archivo RedisCache.cshtml.

    @{
        ViewBag.Title = "Azure Cache for Redis Test";
    }
    
    <h2>@ViewBag.Title.</h2>
    <h3>@ViewBag.Message</h3>
    <br /><br />
    <table border="1" cellpadding="10">
        <tr>
            <th>Command</th>
            <th>Result</th>
        </tr>
        <tr>
            <td>@ViewBag.command1</td>
            <td><pre>@ViewBag.command1Result</pre></td>
        </tr>
        <tr>
            <td>@ViewBag.command2</td>
            <td><pre>@ViewBag.command2Result</pre></td>
        </tr>
        <tr>
            <td>@ViewBag.command3</td>
            <td><pre>@ViewBag.command3Result</pre></td>
        </tr>
        <tr>
            <td>@ViewBag.command4</td>
            <td><pre>@ViewBag.command4Result</pre></td>
        </tr>
        <tr>
            <td>@ViewBag.command5</td>
            <td><pre>@ViewBag.command5Result</pre></td>
        </tr>
    </table>
    

Probar la aplicación localmente

De forma predeterminada, el proyecto está configurado para hospedar la aplicación localmente en IIS Express para pruebas y depuración.

Para ejecutar la aplicación localmente

  1. En Visual Studio, seleccione Depurar>Iniciar depuración para crear e iniciar la aplicación localmente para pruebas y depuración.

  2. En el explorador, seleccione Azure Redis Cache Test (Prueba de Azure Redis Cache) en la barra de navegación.

  3. En el ejemplo siguiente, la clave Message tenía anteriormente un valor almacenado en caché, que se estableció mediante la consola de Azure Redis Cache en el portal. La aplicación actualizó ese valor almacenado en caché. La aplicación también ejecutó los comandos PING y CLIENT LIST.

    Screenshot of simple test completed local

Publicación y ejecución en Azure

Cuando haya probado con éxito la aplicación localmente, puede implementarla en Azure y ejecutarla en la nube.

Para publicar la aplicación en Azure

  1. En Visual Studio, haga clic con el botón derecho en el nodo del proyecto en el Explorador de soluciones. Después, seleccione Publicar.

    Publish

  2. Seleccione Microsoft Azure App Service, después Crear nuevo y después seleccione Publicar.

    Publish to App Service

  3. En el cuadro de diálogo Crear servicio de aplicaciones, realice los cambios siguientes:

    Setting Valor recomendado Descripción
    Nombre de la aplicación Use el valor predeterminado. El nombre de la aplicación es el nombre de host de la aplicación cuando se implementa en Azure. El nombre puede tener un sufijo de marca de tiempo que se le agrega, si es necesario, para que sea único.
    Suscripción Elija la suscripción de Azure. En esta suscripción se cargan los costos de hospedaje relacionados. Si tiene varias suscripciones de Azure, compruebe que se selecciona la suscripción deseada.
    Grupos de recursos Use el mismo grupo de recursos donde creó la caché (por ejemplo, TestResourceGroup). El grupo de recursos le ayuda a administrar todos los recursos como un grupo. Más adelante, si desea eliminar la aplicación, puede eliminar simplemente el grupo.
    plan de App Service Seleccione Nuevo y después cree un nuevo plan de App Service llamado TestingPlan.
    Use la misma ubicación que utilizó al crear la caché.
    Elija Libre para el tamaño.
    Un plan de App Service define un conjunto de recursos de proceso con los que se ejecuta una aplicación web.

    App Service dialog box

  4. Después de definir la configuración del hospedaje de App Service, seleccione Crear.

  5. Supervise la ventana Salida en Visual Studio para ver el estado de la publicación. Cuando se haya publicado la aplicación, se registra la dirección URL de la aplicación:

    Publishing output

Adición de la configuración de aplicación para la caché

Cuando se publica la nueva aplicación, agregue una nueva configuración de aplicación. Esta configuración se usará para almacenar la información de conexión de caché.

Para agregar la configuración de aplicación

  1. Escriba el nombre de la aplicación en la barra de búsqueda en la parte superior de Azure Portal para buscar la nueva aplicación que ha creado.

    Find app

  2. Agregue una nueva configuración de aplicación llamada CacheConnection para la aplicación que se usará para conectarse a la caché. Use el mismo valor que configuró para CacheConnection en el archivo CacheSecrets.config. El valor contiene la clave de acceso y el nombre de host de la caché.

    Add app setting

Ejecutar la aplicación en Azure

  1. En el explorador, vaya a la dirección URL de la aplicación. La dirección URL aparece en los resultados de la operación de publicación en la ventana de salida de Visual Studio. También se proporciona en Azure Portal en la página de información general de la aplicación que creó.

  2. Seleccione Prueba de Azure Cache for Redis en la barra de navegación para probar el acceso a la memoria caché como hizo con la versión local.

Limpieza de recursos

Si sigue usando este inicio rápido, puede mantener los recursos que ha creado y reutilizarlos.

En caso contrario, si ya ha terminado con la aplicación de ejemplo de la guía de inicio rápido, puede eliminar los recursos de Azure creados en este tutorial 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 para hospedar este ejemplo en un grupo de recursos existente que contiene recursos que quiere conservar, puede eliminar cada recurso individualmente en la parte izquierda, 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. En el cuadro de texto Filtrar por nombre..., escriba el nombre del grupo de recursos. En las instrucciones de este artículo se usa un grupo de recursos llamado TestResources. En el grupo de recursos, en la lista de resultados, seleccione ... y, después, Eliminar grupo de recursos.

    Delete

  3. 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.

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

Pasos siguientes