Compartir vía


Uso de Azure Event Grid para enrutar eventos de Blob Storage a un punto de conexión web (Azure Portal)

Event Grid es un servicio totalmente administrado que le permite administrar fácilmente eventos en muchos servicios y aplicaciones de Azure diferentes. Simplifica la creación de aplicaciones controladas por eventos y sin servidor. Para obtener información general sobre el servicio, consulte ¿Qué es Azure Event Grid?

En este artículo, se usa Azure Portal para realizar las siguientes tareas:

  1. Crear una cuenta de Blob Storage.
  2. Suscribirse a los eventos de ese almacenamiento de blobs.
  3. Desencadenar un evento mediante la carga de un archivo en Blob Storage.
  4. Ver el resultado en una aplicación web de controlador. Por lo general, se envían eventos a un punto de conexión que procesa los datos del evento y realiza acciones. Para simplificar, los eventos se envían a una aplicación web que recopila y muestra los mensajes.

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

Cuando haya terminado, verá que los datos del evento se han enviado a la aplicación web.

Screenshot that shows the sample Azure Event Grid Viewer app with an event.

Crear una cuenta de almacenamiento

  1. Inicie sesión en el portal de Azure.

  2. Para crear una instancia de Blob Storage, seleccione Crear un recurso.

  3. En Buscar, escriba Cuenta de almacenamiento y seleccione Cuenta de almacenamiento en la lista de resultados.

    Screenshot showing the search for Storage account on the Create a resource page.

  4. En la página Cuenta de almacenamiento, seleccione Crear para empezar a crear la cuenta de almacenamiento. Para suscribirse a eventos, cree una cuenta de almacenamiento de uso general v2 o una cuenta de Blob Storage.

  5. En la página Crear cuenta de almacenamiento, siga estos pasos:

    1. Seleccione su suscripción a Azure.

    2. En Grupo de recursos, cree un nuevo grupo de recursos o seleccione uno existente.

    3. Escriba el nombre de la cuenta de almacenamiento.

    4. Seleccione la Región en la que quiere que se cree la cuenta de almacenamiento.

    5. En Redundancia, seleccione Almacenamiento con redundancia local (LRS) en la lista desplegable.

    6. Seleccione Revisaral final de la página.

      Screenshot showing the Create a storage account page.

    7. En la página Revisar, revise la configuración y seleccione Crear.

      Nota

      Solo las cuentas de almacenamiento de tipo StorageV2 (uso general v2) y BlobStorage admiten la integración de eventos. Storage (uso general v1)no admite la integración con Event Grid.

  6. La implementación tarda unos minutos en completarse. En la página Implementación, seleccione Ir al recurso.

    Screenshot showing the deployment succeeded page with a link to go to the resource.

  7. En la página Cuenta de almacenamiento, seleccione Eventos en el menú de la izquierda.

    Screenshot showing the Events page for an Azure storage account.

  8. Mantenga abierta esta página en el explorador web.

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

Antes de suscribirse a los eventos de Blob Storage, vamos a crear el punto de conexión para el mensaje del evento. Normalmente, el punto de conexión realiza acciones en función de los datos del evento. Para simplificar este inicio rápido, se implementa una aplicación web precompilada 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.

  1. Seleccione Deploy to Azure (Implementar en Azure) para implementar la solución en su suscripción.

    Button to deploy the Resource Manager template to Azure.

  2. En la página Implementación personalizada, siga estos pasos:

    1. En Grupo de recursos, seleccione el grupo de recursos que usó para crear la cuenta de almacenamiento. Le resultará más fácil limpiar una vez que haya terminado con el tutorial si elimina el grupo de recursos.

    2. En Nombre del sitio, escriba el nombre de la aplicación web.

    3. En Nombre del plan de hospedaje, escriba el nombre del plan de App Service que se va a usar para hospedar la aplicación web.

    4. Seleccione Revisar + crear.

      Screenshot showing the Custom deployment page.

  3. En la página Revisar y crear, seleccione Crear.

  4. La implementación tarda unos minutos en completarse. En la página Implementación, seleccione Ir al grupo de recursos.

    Screenshot showing the deployment succeeded page with a link to go to the resource group.

  5. En la página Grupo de recursos, en la lista de recursos, seleccione la aplicación web que ha creado. En esta lista también se ven el plan de App Service y la cuenta de almacenamiento.

    Screenshot that shows the selection of web app in the resource group.

  6. En la página App Service de la aplicación web, seleccione la dirección URL para ir al sitio web. La dirección URL debe tener este formato: https://<your-site-name>.azurewebsites.net.

    Screenshot that shows the selection of link to navigate to web app.

  7. Confirme que ve el sitio, pero que aún no se han publicado eventos en él.

    View new site.

    Importante

    Mantenga abierta la ventana del visor de Azure Event Grid para poder ver los eventos a medida que se publican.

Registro del proveedor de recursos de Event Grid

A menos que haya usado Event Grid antes, deberá registrar el proveedor de recursos de Event Grid. Si ha usado Event Grid anteriormente, vaya a la siguiente sección.

En Azure Portal, realice los siguientes pasos:

  1. En el menú de la izquierda, seleccione Suscripciones.

  2. Seleccione la suscripción que desea usar para Event Grid en la lista de suscripciones.

  3. En la página Suscripción, seleccione Proveedores de recursos en Configuración del menú izquierdo.

  4. Busque Microsoft.EventGrid y confirme que el estado es No registrado.

  5. Seleccione Microsoft.EventGrid en la lista de proveedores.

  6. Seleccione Registrar en la barra de comandos.

    Image showing the registration of Microsoft.EventGrid provider with the Azure subscription.

  7. Actualice para asegurarse de que el estado de Microsoft.EventGrid se cambia a Registrado.

    Image showing the successful registration of Microsoft.EventGrid provider with the Azure subscription.

Suscripción a Blob Storage

Suscríbase a un tema que indique a Event Grid los eventos cuyo seguimiento desea realizar y el lugar al que deben enviarse los eventos.

  1. Si ha cerrado la página Cuenta de almacenamiento, vaya a la cuenta de Azure Storage que ha creado anteriormente. En el menú de la izquierda, seleccione Todos los recursos y seleccione su cuenta de almacenamiento.

  2. En la página Cuenta de almacenamiento, seleccione Eventos en el menú de la izquierda.

  3. Seleccione Más opciones y Webhook. Al enviar eventos a la aplicación de visor, usará un webhook para el punto de conexión.

    Screenshot showing the selection of Web Hook on the Events page.

  4. En la página Crear suscripción de eventos, realice los siguientes pasos:

    1. Escriba un nombre para la suscripción a eventos.

    2. Escriba un nombre para el tema del sistema. Para obtener información acerca de los temas del sistema, consulte Introducción a los temas del sistema.

      Screenshot showing the Create Event Subscription page with a name for the system topic.

    3. En Webhook, seleccione Tipo de punto de conexión.

      Screenshot showing the Create Event Subscription page with Web Hook selected as an endpoint.

  5. En Punto de conexión, elija Seleccione un punto de conexióny escriba la dirección URL de la aplicación web y agregue api/updates a la dirección URL de la página principal (por ejemplo, https://spegridsite.azurewebsites.net/api/updates) y seleccione Confirmar selección.

    Screenshot showing the Select Web Hook page.

  6. Ahora, en la página Crear suscripción de eventos, seleccione Crear.

    Screenshot showing the Create Event Subscription page with all fields selected.

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

    Screenshot showing the Event Grid Viewer with the subscription validation event.

Ahora, vamos a desencadenar un evento para ver cómo Event Grid distribuye el mensaje al punto de conexión.

Envío de un evento al punto de conexión

Desencadenará un evento para Blob Storage mediante la carga de un archivo. El archivo no necesita ningún contenido específico.

  1. En Azure Portal, vaya a la cuenta de Blob Storage y seleccione Contenedores en el menú de la izquierda.

  2. Seleccione + Contenedor. Asigne un nombre al contenedor, use cualquier nivel de acceso y seleccione Crear.

    Screenshot showing the New container page.

  3. Seleccione el nuevo contenedor.

    Screenshot showing the selection of the container.

  4. Para cargar un archivo, seleccione Cargar. En la página Cargar blob, busque y seleccione el archivo que desea cargar para las pruebas y, después, seleccione Cargar en la página.

    Screenshot showing Upload blob page.

  5. Busque el archivo de prueba y cárguelo.

  6. Ha desencadenado el evento y Event Grid ha enviado el mensaje al punto de conexión que configuró al realizar la suscripción. El mensaje está en formato JSON y contiene una matriz con uno o más eventos. En el ejemplo siguiente, el mensaje JSON contiene una matriz con un evento. Vea la aplicación web y observe que se ha recibido un evento de blob creado.

    Screenshot showing the Event Grid Viewer page with the Blob Created event.

Limpieza de recursos

Si piensa seguir trabajando con este evento, no limpie los recursos creados en este artículo. De lo contrario, elimine los recursos que ha creado en este artículo.

Seleccione el grupo de recursos y seleccione Eliminar grupo de recursos.

Pasos siguientes

Ahora que sabe cómo crear suscripciones a temas personalizados y eventos, aprenda más acerca de cómo puede ayudarle Event Grid: