Compartir a través de


Inicio rápido: Enrutamiento de eventos de Azure Cache for Redis al punto de conexión web mediante la CLI de Azure

Azure Event Grid es un servicio de eventos para la nube. En esta guía de inicio rápido, va a usar la CLI de Azure para suscribirse a Azure Cache for Redis, desencadenar un evento y ver los resultados.

Por lo general, se envían eventos a un punto de conexión que procesa los datos del evento y realiza acciones. Sin embargo, para simplificar la guía de inicio rápido, enviará eventos a una aplicación web que recopilará y mostrará los mensajes. Al completar los pasos descritos en esta guía de inicio rápido, verá que los datos de eventos se han enviado a la aplicación web.

Si no tiene una suscripción a Azure, cree una cuenta gratuita de Azure antes de empezar.

Azure Cloud Shell

En Azure se hospeda Azure Cloud Shell, un entorno de shell interactivo que puede utilizar mediante el explorador. Puede usar Bash o PowerShell con Cloud Shell para trabajar con los servicios de Azure. Puede usar los comandos preinstalados de Cloud Shell para ejecutar el código de este artículo sin tener que instalar nada en su entorno local.

Para iniciar Azure Cloud Shell:

Opción Ejemplo o vínculo
Seleccione Pruébelo en la esquina superior derecha de un bloque de código o de comandos. Solo con seleccionar Pruébelo no se copia automáticamente el código o comando en Cloud Shell. Captura de pantalla que muestra un ejemplo de la opción Pruébelo para Azure Cloud Shell.
Vaya a https://shell.azure.com o seleccione el botón Iniciar Cloud Shell para abrir Cloud Shell en el explorador. Botón para iniciar Azure Cloud Shell.
Seleccione el botón Cloud Shell en la barra de menús de la esquina superior derecha de Azure Portal. Captura de pantalla que muestra el botón de Cloud Shell en Azure Portal

Para usar Azure Cloud Shell:

  1. Inicie Cloud Shell.

  2. Seleccione el botón Copiar en un bloque de código (o bloque de comandos) para copiar el código o comando.

  3. Pegue el código o comando en la sesión de Cloud Shell. Para ello, seleccione Ctrl+Mayús+V en Windows y Linux, o bien seleccione Cmd+Mayús+V en macOS.

  4. Seleccione Intro para ejecutar el código o comando.

Si decide instalar y usar la CLI localmente, esta guía de inicio rápido requiere la ejecución de la versión más reciente de la CLI de Azure (2.0.70 o posterior). Para encontrar la versión, ejecute az --version. Si necesita instalarla o actualizarla, vea Instalación de la CLI de Azure.

Si no usa Cloud Shell, primero debe iniciar sesión con az login.

Crear un grupo de recursos

Los temas de Event Grid se implementan como recursos individuales de Azure y se deben aprovisionar en un grupo de recursos de Azure. Un grupo de recursos de Azure es una colección lógica en la que se implementan y administran los recursos de Azure.

Para crear un grupo de recursos, use el comando az group create.

En el ejemplo siguiente, se crea un grupo de recursos denominado <resource_group_name> en la ubicación westcentralus. Reemplace <resource_group_name> por un nombre único para grupo de recursos.

az group create --name <resource_group_name> --location westcentralus

Creación de una instancia de caché

#/bin/bash

# Create a Basic C0 (256 MB) Azure Cache for Redis instance
az redis create --name <cache_name> --resource-group <resource_group_name> --location westcentralus --sku Basic --vm-size C0

Creación de un punto de conexión de mensaje

Antes de suscribirse al tema, vamos a crear el punto de conexión para el mensaje de evento. Normalmente, el punto de conexión realiza acciones en función de los datos del evento. Para simplificar esta guía de inicio rápido, se implementa una aplicación web pregenerada que muestra los mensajes de los eventos. La solución implementada incluye un plan de App Service, una aplicación web de App Service y el código fuente desde GitHub.

Reemplace <your-site-name> por un nombre único para la aplicación web. El nombre de la aplicación web debe ser único, ya que es parte de la entrada DNS.

sitename=<your-site-name>

az deployment group create \
  --resource-group <resource_group_name> \
  --template-uri "https://raw.githubusercontent.com/Azure-Samples/azure-event-grid-viewer/main/azuredeploy.json" \
  --parameters siteName=$sitename hostingPlanName=viewerhost

La implementación puede tardar unos minutos en completarse. Después de que la implementación se haya realizado correctamente, puede ver la aplicación web para asegurarse de que se está ejecutando. En un explorador web, vaya a: https://<your-site-name>.azurewebsites.net

Debería ver el sitio, que no muestra ningún mensaje actualmente.

Habilitar el proveedor de recursos de Event Grid

  1. Si aún no ha usado anteriormente Event Grid en su suscripción de Azure, puede que tenga que registrar el proveedor de recursos de Event Grid. Ejecute el siguiente comando para registrar el proveedor:

    az provider register --namespace Microsoft.EventGrid
    
  2. El registro puede tardar unos instantes en finalizar. Para comprobar el estado, ejecute el comando siguiente:

    az provider show --namespace Microsoft.EventGrid --query "registrationState"
    

    Cuando registrationState sea Registered, estará preparado para continuar.

Suscripción a la instancia de Azure Cache for Redis

En este paso, se va a suscribir a un tema para indicar a Event Grid los eventos a los que desea hacer seguimiento y el lugar al que se enviarán. En el ejemplo siguiente se suscribirá a la instancia de Azure Cache for Redis que ha creado y pasará la dirección URL de la aplicación web como el punto de conexión de la notificación de eventos. Reemplace <event_subscription_name> por un nombre para la suscripción de eventos. En <resource_group_name> y <cache_name>, use los valores que creó anteriormente.

El punto de conexión de la aplicación web debe incluir el sufijo /api/updates/.

cacheId=$(az redis show --name <cache_name> --resource-group <resource_group_name> --query id --subscription <subscription_id> --output tsv)
endpoint=https://$sitename.azurewebsites.net/api/updates

az eventgrid event-subscription create \
  --source-resource-id $cacheId \
  --name <event_subscription_name> \
  --endpoint $endpoint

Vuelva a la aplicación web y observe que se ha enviado un evento de validación de suscripción. Seleccione el icono del ojo para expandir los datos del evento. Event Grid envía el evento de validación para que el punto de conexión pueda verificar que desea recibir datos de eventos. La aplicación web incluye código para validar la suscripción.

El visor de Azure Event Grid.

Desencadenamiento de un evento desde Azure Cache for Redis

Ahora, vamos a desencadenar un evento para ver cómo Event Grid distribuye el mensaje al punto de conexión. Vamos a exportar los datos almacenados en la instancia de Azure Cache for Redis. De nuevo, utilice los valores {cache_name} y {resource_group_name} que creó anteriormente.

az redis export  --ids '/subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/Microsoft.Cache/Redis/{cache_name}' \
    --prefix '<prefix_for_exported_files>' \
    --container '<SAS_url>'  

Ha desencadenado el evento y Event Grid ha enviado el mensaje al punto de conexión que configuró al realizar la suscripción. Vaya a la aplicación web para ver el evento que acaba de enviar.

[{
"id": "e1ceb52d-575c-4ce4-8056-115dec723cff",
  "eventType": "Microsoft.Cache.ExportRDBCompleted",
  "topic": "/subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/Microsoft.Cache/Redis/{cache_name}",
  "data": {
    "name": "ExportRDBCompleted",
    "timestamp": "2020-12-10T18:07:54.4937063+00:00",
    "status": "Succeeded"
  },
  "subject": "ExportRDBCompleted",
  "dataversion": "1.0",
  "metadataVersion": "1",
  "eventTime": "2020-12-10T18:07:54.4937063+00:00"
}]

Limpieza de recursos

Si tiene pensado continuar trabajando con esta instancia de Azure Cache for Redis y la suscripción a eventos, no elimine los recursos creados en esta guía de inicio rápido. Si no piensa continuar trabajando, use el siguiente comando para eliminar los recursos creados en esta guía de inicio rápido.

Sustituya <resource_group_name> por el nombre del grupo de recursos que ha creado.

az group delete --name <resource_group_name>

Pasos siguientes

Ahora que sabe cómo crear suscripciones a temas y eventos, obtenga más información sobre los eventos de Azure Cache for Redis y lo que Event Grid puede ayudarle a hacer: