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 modificar una aplicación web de ASP.NET que se conecte a Azure Cache for Redis para almacenar y obtener datos de la caché. Después implementará la aplicación en Azure App Service.
Ir al código
En este artículo se describe cómo modificar el código de una aplicación de ejemplo para crear una aplicación de trabajo que se conecte a Azure Cache for Redis.
Si desea ir directamente al código de ejemplo, consulte el ejemplo de inicio rápido de ASP.NET en GitHub.
Requisitos previos
- Suscripción a Azure. Crear una cuenta gratuita
- Visual Studio 2019 con las cargas de trabajo ASP.NET y desarrollo web y desarrollo de Azure.
Creación de una caché
Luego cree la caché que se usará con la aplicación.
Para crear una caché, inicie sesión en Azure Portal. En el menú de Azure Portal, seleccione Crear un recurso.
En el panel Comenzar, escriba Azure Cache for Redis en la barra de búsqueda. En los resultados de la búsqueda, encuentre Azure Cache for Redis y, a continuación, seleccioneCrear.
En el panel Nueva Redis Cache, en la pestaña Aspectos básicos, configure las siguientes opciones para la memoria caché:
Configuración Acción Descripción Suscripción Seleccione la suscripción a Azure. La suscripción que se va a usar para crear la nueva instancia de Azure Cache for Redis. Grupo de recursos 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 va a crear la memoria 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 caché debe ser una cadena de 1 a 63 caracteres que contenga solo números, letras y 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 Seleccione una ubicación. Una región de Azure cercana a otros servicios que usan la memoria caché. SKU de la caché Seleccione una SKU. La SKU determina los parámetros de tamaño, rendimiento y característica que están disponibles para la memoria caché. Para más información, consulte la introducción a Azure Cache for Redis. Tamaño de la caché Seleccione un tamaño de caché. Para más información, consulte la introducción a Azure Cache for Redis. Seleccione la pestaña Redes o Siguiente: Redes.
En la pestaña Redes, seleccione un método de conectividad que se usará para la memoria caché.
Seleccione la pestaña Opciones avanzadas o Siguiente: Opciones avanzadas.
En el panel Opciones avanzadas, compruebe o seleccione un método de autenticación en función de la siguiente información:
- De manera predeterminada, para una nueva caché Básica, Estándar o Premium, la Autenticación de Microsoft Entra está habilitada y la Autenticación de claves de acceso está deshabilitada.
- Para las cachés Básica o Estándar, puede elegir la selección de un puerto que no sea TLS.
- Para las cachés Estándar y Premium, puede habilitar las zonas de disponibilidad. No puede deshabilitar las zonas de disponibilidad una vez creada la caché.
- 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.
Importante
Para obtener una seguridad óptima, se recomienda usar Microsoft Entra ID con identidades administradas para autorizar solicitudes en la memoria caché, si es posible. La autorización mediante Microsoft Entra ID y las identidades administradas proporciona una seguridad y facilidad de uso superiores a la autorización mediante claves de acceso compartidas. Para más información sobre el uso de identidades administradas con la memoria caché, consulte Uso de Microsoft Entra ID para la autenticación de caché.
(Opcional) Seleccione la pestaña Etiquetas o Siguiente: Etiquetas.
(Opcional) En la pestaña Etiquetas, escriba un nombre de etiqueta y un valor si desea clasificar el recurso de caché.
Seleccione el botón Revisar y crear.
En la pestaña Revisar y crear, Azure valida automáticamente la configuración.
Tras aparecer el mensaje verde Validación superada, seleccione Crear.
Se produce una nueva implementación de caché durante varios minutos. Puede supervisar el progreso de la implementación en el panel Información general de Azure Cache for Redis. Cuando Estado muestra En ejecución, la memoria caché está lista para usarse.
Obtención del nombre de host, los puertos y la clave de acceso
Para conectarse al servidor de Azure Cache for Redis, el cliente de la caché necesita el nombre de host, los puertos y una clave de acceso de 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 en Azure Portal.
Para obtener una clave de acceso para la memoria caché:
- En Azure Portal, acceda a la caché.
- En el menú Servicio, en Configuración, seleccione Autenticación.
- En el panel Autenticación, seleccione la pestaña Claves de acceso.
- Para copiar el valor de una clave de acceso, seleccione el icono Copiar en el campo de clave.
Para obtener el nombre de host y los puertos de la memoria caché:
- En Azure Portal, acceda a la caché.
- En el menú Servicio, seleccione Información general.
- En Información esencial, para Nombre de host, seleccione el icono Copiar para copiar el valor del nombre de host. El valor del nombre de host tiene el formato
<DNS name>.redis.cache.windows.net
. - En Puertos, seleccione el icono Copiar para copiar los valores de puerto.
Editar el archivo CacheSecrets.config
Cree un archivo en su 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. Para este inicio rápido, el archivo CacheSecrets.config se encuentra en la carpeta C:\AppSecrets\.
Edite el archivo CacheSecrets.config para agregar el contenido siguiente.
En el código:
Reemplace
<cache-name>
por su nombre de host de caché.Reemplace
<access-key>
por la clave de acceso 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.
<appSettings> <add key="CacheConnection" value="<cache-name>.redis.cache.windows.net,abortConnect=false,ssl=true,allowAdmin=true,password=<access-key>"/> </appSettings>
Guarde el archivo.
Actualización de la aplicación MVC
En esta sección, una aplicación Modelo-Vista-Controlador (MVC) muestra una prueba sencilla para la conexión a 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 usar el archivo de configuración.
Dado que el archivo CacheSecrets.config no se implementa en Azure con la aplicación, solo se usa 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é.
Actualización del archivo web.config
En el Explorador de soluciones, abra el archivo web.config.
En el archivo web.config, establezca 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 requiere que se ejecute el paquete StackExchange.Redis
.
Para instalar el paquete de StackExchange.Redis
:
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.
En la ventana de la Consola del Administrador de paquetes, ejecute el siguiente comando:
Install-Package StackExchange.Redis
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 mediante el cliente StackExchange.Redis
.
Conexión a la caché con RedisConnection
La clase RedisConnection
administra la conexión a la caché. La conexión se realiza primero en esta instrucción que se encuentra en 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, puede ver que el espacio de nombres StackExchange.Redis se agrega al código. La clase RedisConnection
requiere el espacio de nombres.
using StackExchange.Redis;
El código RedisConnection
garantiza que siempre haya una conexión correcta a la memoria caché. La conexión se administra a través de la instancia ConnectionMultiplexer
de 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.
Comprobar las 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 seleccionando Prueba de Azure Cache for Redis de esta página.
En el Explorador de soluciones, seleccione Vistas y, a continuación, haga clic con el botón derecho en la carpeta Compartido. Después, abra el archivo _Layout.cshtml.
Compruebe que la línea siguiente está en
<div class="navbar-header">
:@Html.ActionLink("Azure Cache for Redis Test", "RedisCache", "Home", new { area = "" }, new { @class = "navbar-brand" })
Mostrar datos de la memoria caché
En la página principal, seleccione Prueba de Azure Cache for Redis en la barra de navegación para ver la salida de ejemplo.
En el Explorador de soluciones, seleccione Vistas y, a continuación, haga clic con el botón derecho en la carpeta Inicio.
Compruebe que el siguiente código está 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:
En Visual Studio, seleccione Depurar>Iniciar depuración para crear e iniciar la aplicación localmente para pruebas y depuración.
En el explorador, seleccione Azure Redis Cache Test (Prueba de Azure Redis Cache) en la barra de navegación.
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 comandosPING
yCLIENT LIST
.
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:
En el Explorador de soluciones de Visual Studio, haga clic con el botón derecho en el nodo del proyecto y seleccione Publicar.
Seleccione Microsoft Azure App Service>Crear nuevo>Publicar.
En el cuadro de diálogo Crear servicio de aplicaciones, realice los cambios siguientes:
Configuración Acción 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 para que el nombre de la aplicación sea único. Suscripción Seleccione la suscripción a 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 que desea usar. Grupo de recursos Use el mismo grupo de recursos que usó para crear la memoria caché (por ejemplo, TestResourceGroup). El grupo de recursos le ayuda a administrar todos los recursos como un grupo. Más adelante, cuando quiera eliminar la aplicación, puede eliminar el grupo de recursos para eliminar todos los recursos relacionados. plan de App Service Seleccione Nuevo y después cree un nuevo plan de App Service llamado TestingPlan.
Use el mismo valor para Ubicación que usó al crear la memoria caché.
En tamaño, seleccione Libre.Un plan de App Service define un conjunto de recursos de proceso con los que se ejecuta una aplicación web. Después de definir la configuración del host de App Service, seleccione Crear.
En la ventana Salida, compruebe el estado de publicación. Una vez publicada la aplicación, la dirección URL de la aplicación aparece como salida:
Agregar una opción de configuración de aplicación para la caché
Una vez publicada la nueva aplicación, agregue una nueva configuración de aplicación en Azure Portal. Esta configuración almacena la información de conexión de caché.
Para agregar la configuración de aplicación:
En Azure Portal, escriba el nombre de la aplicación en la barra de búsqueda.
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 usó para
CacheConnection
en el archivo CacheSecrets.config. El valor contiene la clave de acceso y el nombre de host de la caché.
Ejecutar la aplicación en Azure
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 Salida de Visual Studio. También aparece en Azure Portal, en el panel Información general de la aplicación.
En la barra de navegación de la página web, seleccione Prueba de Azure Cache for Redis para probar el acceso a la memoria caché como hizo con la versión local.
Limpieza de recursos
Si desea seguir usando los recursos que creó en este artículo, mantenga el grupo de recursos.
De lo contrario, para evitar cargos relacionados con los recursos, si ha terminado de usarlos, puede eliminar el grupo de recursos de Azure que creó.
Advertencia
La eliminación de un grupo de recursos es irreversible. Cuando elimine un grupo de recursos, todos los recursos del grupo 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 tiene recursos que desea conservar, puede eliminar cada recurso individualmente en lugar de eliminar el grupo de recursos.
Eliminación de un grupo de recursos
Inicie sesión en Azure Portal y después seleccione Grupos de recursos.
Seleccione el grupo de recursos que se eliminará.
Si hay muchos grupos de recursos, en Filtro para cualquier campo, escriba el nombre del grupo de recursos que creó para completar este artículo. En la lista de resultados de búsqueda, seleccione el grupo de recursos.
Seleccione Eliminar grupo de recursos.
En el panel Eliminar un grupo de recursos, escriba el nombre del grupo de recursos para confirmar y, a continuación, seleccione Eliminar.
En unos instantes, el grupo de recursos y todos sus recursos se eliminan.