Laboratorio 09: Publicación y suscripción a eventos de Event Grid

Interfaz de usuario de Microsoft Azure

Dada la naturaleza dinámica de las herramientas en la nube de Microsoft, puede experimentar cambios en la interfaz de usuario de Azure que se producen después del desarrollo de este contenido de entrenamiento. Como resultado, es posible que las instrucciones y los pasos del laboratorio no se alineen correctamente.

Microsoft actualiza este curso de entrenamiento cuando la comunidad nos alerta de los cambios necesarios. Sin embargo, las actualizaciones en la nube se producen con frecuencia, por lo que es posible que se produzcan cambios en la interfaz de usuario antes de que se actualice este contenido de entrenamiento. Si esto ocurre, adáptese a los cambios y, a continuación, trabaje con ellos en los laboratorios según sea necesario.

Instructions

Antes de comenzar

Inicio de sesión al entorno de laboratorio

Inicie sesión en la máquina virtual (VM) de Windows 11 con las credenciales siguientes:

  • Nombre de usuario: Admin
  • Contraseña: Pa55w.rd

Nota: El instructor le proporcionará instrucciones para conectarse al entorno de laboratorio virtual.

Revisión de las aplicaciones instaladas

Busque la barra de tareas en el escritorio de Windows 11. La barra de tareas contiene los iconos de las aplicaciones que usará en este laboratorio, entre los que se incluyen:

  • Microsoft Edge
  • Microsoft Visual Studio Code

Escenario de laboratorio

En este laboratorio, comenzará con una aplicación web de prueba de concepto, hospedada en un contenedor, que se usará para suscribirse a Event Grid. Esta aplicación le permitirá enviar eventos y recibir mensajes de confirmación de que los eventos se realizaron correctamente.

Diagrama de la arquitectura

Diagrama de arquitectura que muestra un usuario que publica y se suscribe a eventos de Event Grid.

Ejercicio 1: Creación de recursos de Azure

Tarea 1: Abra Azure Portal

  1. En la barra de tareas, seleccione el icono de Microsoft Edge.

  2. En la ventana del explorador abierto, vaya a Azure Portal en https://portal.azure.com y, a continuación, inicie sesión con la cuenta que va a usar para este laboratorio.

    Nota: Si es la primera vez que inicia sesión en Azure Portal, se le ofrecerá un paseo por el portal. Seleccione Introducción para omitir el paseo y empezar a usar el portal.

Tarea 2: Apertura de Azure Cloud Shell

  1. En Azure Portal, seleccione el icono Cloud Shell, icono Cloud Shell, para abrir una instancia de Cloud Shell. Si Cloud Shell tiene como valor predeterminado una sesión de PowerShell, seleccione Cambiar a Bash en el menú de Cloud Shell y, a continuación, seleccione Confirmar.

    Nota: El icono Cloud Shell se representa mediante un signo “mayor que” (>) y un carácter de subrayado (_).

    Si es la primera vez que inicia Cloud Shell, se le mostrará una serie de mensajes para crear el recurso. Realice las acciones que aparecen en la siguiente tabla:

    Prompt Action
    Bienvenido a Azure Cloud Shell Seleccione Bash.
    Introducción Seleccione Montar cuenta de almacenamiento, a continuación seleccione la suscripción a la cuenta de almacenamiento en el menú desplegable y, por último, seleccione Aplicar.
    Montaje de una cuenta de almacenamiento Seleccione Vamos a crear una cuenta de almacenamiento para usted y, a continuación, seleccione Siguiente.
  2. En Azure Portal, en el símbolo del sistema de Cloud Shell, ejecute el siguiente comando para obtener la versión de la herramienta Interfaz de la línea de comandos de Azure (CLI de Azure):

     az --version
    

Tarea 3: Revisión del registro del proveedor Microsoft.EventGrid

  1. En el panel Cloud Shell, ejecute el siguiente comando para comprobar si el proveedor de recursos “Microsoft. EventGrid” se ha registrado :

     az provider show --namespace Microsoft.EventGrid --query "registrationState"
    
  2. Observa que el proveedor Microsoft.EventGrid ya se ha registrado.

  3. Cierre el panel de Cloud Shell.

Tarea 4: Creación de un tema de Event Grid personalizado

  1. En el panel de navegación de Azure Portal, seleccione Crear un recurso.

  2. En el panel Crear un recurso, en el cuadro de texto Buscar Servicios y Marketplace, escriba Tema de Event Grid y, a continuación, seleccione Entrar.

  3. En el panel de resultados de búsqueda de Marketplace, seleccione el resultado de Tema de Event Grid y, a continuación, seleccione Crear.

  4. En el panel Crear tema, en la pestaña Aspectos básicos, realice las siguientes acciones y, a continuación, seleccione la pestaña Aspectos avanzados:

    Configuración Acción
    Lista desplegable de Suscripción Conserve los valores predeterminados
    Lista desplegable del grupo de recursos Seleccione Crear nuevo, escriba PubSubEvents y seleccione Aceptar.
    Cuadro de texto de nombre Escribir hrtopic [sunombre]
    Lista desplegable de Región Seleccione Este de EE. UU.

    En la captura de pantalla siguiente, se muestran los valores configurados en la pestaña Aspectos básicos.

    Captura de pantalla en la que se muestran los valores configurados en el panel Crear tema

  5. En la pestaña Aspectos avanzados, en la lista desplegable Esquema de eventos, asegúrese de que está seleccionada la entrada Esquema de Event Grid y, a continuación, seleccione Revisar y crear.

  6. En la pestaña Revisar y crear, revise las opciones que seleccionó durante los pasos anteriores.

  7. Seleccione Crear para crear un tema de Event Grid mediante la configuración especificada.

    Nota: Espere a que Azure termine de crear el tema antes de continuar con el laboratorio. Recibirá una notificación cuando se cree el tema.

Tarea 5: Implementación del visor de Azure Event Grid en una aplicación web

  1. En el panel de navegación de Azure Portal, seleccione Crear un recurso.

  2. En el panel Crear un recurso, en el cuadro de texto Buscar Servicios y Marketplace, escriba Aplicación web y, a continuación, seleccione ENTRAR.

  3. En el panel de resultados de búsqueda de Marketplace, seleccione el resultado de Aplicación web y, a continuación, seleccione Crear.

  4. En el panel Crear aplicación web, en la pestaña Aspectos básicos, realiza las siguientes acciones y, después, selecciona la pestaña Docker:

    Configuración Acción
    Lista desplegable de Suscripción Conserve los valores predeterminados
    Lista desplegable del grupo de recursos Seleccionar PubSubEvents en la lista
    Cuadro de texto Nombre  Escribir eventviewer [sunombre]
    Sección Publicar Seleccione Contenedor de Docker
    Sección del sistema operativo Seleccione Linux.
    Lista desplegable de Región Seleccione Este de EE. UU.
    Sección Plan de Linux (Este de EE. UU.) Seleccione Crear nuevo, escriba EventPlan en el cuadro de texto Nombre y, a continuación, seleccione Aceptar.
    Sección Plan de precios Conserve los valores predeterminados

    En la captura de pantalla siguiente, se muestran los valores configurados en la hoja Crear aplicación web.

    Captura de pantalla en la que se muestran los valores configurados en el panel Crear aplicación web

  5. En la pestaña Docker, realice las siguientes acciones y seleccione Revisar y crear:

    Configuración Acción
    Lista desplegable de opciones Seleccione Contenedor único
    Lista desplegable de Origen de la imagen Seleccione Docker Hub
    Lista desplegable del Tipo de acceso Seleccione Público.
    Cuadro de texto Imagen y etiqueta Enter microsoftlearning/azure-event-grid-viewer:latest

    En la captura de pantalla siguiente, se muestran los valores configurados en la pestaña Docker.

    Captura de pantalla en la que se muestran los valores configurados en la pestaña Crear aplicación web: Docker

  6. En la pestaña Revisar y crear, revise las opciones que seleccionó durante los pasos anteriores.

  7. Seleccione Crear para crear la aplicación web mediante la configuración especificada.

    Nota: Espere a que Azure termine de crear la aplicación web antes de continuar con el laboratorio. Recibirá una notificación cuando se cree la aplicación.

Revisar

En este ejercicio, ha creado el tema Event Grid y una aplicación web que usará en el resto del laboratorio.

Ejercicio 2: Creación de una suscripción a Event Grid

Tarea 1: Acceso a la aplicación web Visor de Event Grid

  1. En el panel de navegación de Azure Portal, seleccione Grupos de recursos.

  2. En el panel Grupos de recursos, seleccione el grupo de recursos PubSubEvents.

  3. En la hoja PubSubEvents , seleccione la aplicación web eventviewer [sunombre] y verá la sección Información general.

  4. En la sección Información general, registre el valor del dominio predeterminado en el panel Essentials. Usará este valor más adelante en este laboratorio.

  5. Haga clic en el botón Examinar mientras sigue en la sección Información general.

  6. Observe la aplicación web Visor de Azure Event Grid actualmente en ejecución. Deje esta aplicación web en ejecución durante el resto del laboratorio.

    Nota: Esta aplicación web se actualizará en tiempo real a medida que se envíen eventos a su punto de conexión. Usará esta aplicación para supervisar eventos en todo el laboratorio.

  7. Vuelva a la ventana del explorador abierta actualmente que muestra Azure Portal.

Tarea 2: Creación de una nueva suscripción

  1. En el panel de navegación de Azure Portal, seleccione Grupos de recursos.

  2. En el panel Grupos de recursos, seleccione el grupo de recursos PubSubEvents que creó anteriormente en este laboratorio.

  3. En el panel PubSubEvents, seleccione el tema de Event Grid hrtopic [sunombre] que creó anteriormente en este laboratorio.

  4. En el panel Tema de Event Grid, seleccione + Suscripción a eventos.

  5. En el panel Crear suscripción a eventos, realice las siguientes acciones y, a continuación, seleccione Crear:

    Configuración Acción
    Cuadro de texto Nombre  Escribir basicsub
    Lista desplegable Esquema de eventos Seleccionar Esquema de Event Grid
    Lista desplegable Tipo de punto de conexión Seleccionar Webhook
    Punto de conexión Seleccione Configurar un punto de conexión. En el cuadro de texto Punto de conexión de suscriptor, escriba el valor de la dirección URL de aplicación web que registró anteriormente. Asegúrese de que usa un prefijo https:// , agregue el sufijo /api/updates y, a continuación, seleccione Confirmar selección. Por ejemplo, si el valor de la URL de aplicación web es http://eventviewerstudent.azurewebsites.net/, el Punto de conexión de suscriptor sería https://eventviewerstudent.azurewebsites.net/api/updates.

    En la captura de pantalla siguiente, se muestran los valores configurados en el panel Crear suscripción a eventos.

    Captura de pantalla que muestra los valores configurados en el panel Crear suscripción a eventos

    Nota: Espere a que Azure termine de crear la suscripción antes de continuar con el laboratorio. Recibirá una notificación cuando se cree la suscripción.

Tarea 3: Observación del evento de validación de suscripción

  1. Vuelva a la ventana del explorador que muestra la aplicación web Visor de Azure Event Grid.

  2. Revise el evento Microsoft.EventGrid.SubscriptionValidationEvent que se creó como parte del proceso de creación de la suscripción.

  3. Seleccione el evento y revise su contenido JSON.

  4. Vuelva a la ventana del explorador abierta actualmente con Azure Portal.

Tarea 4: Registro de credenciales de suscripción

  1. En el panel de navegación de Azure Portal, seleccione Grupos de recursos.

  2. En el panel Grupos de recursos, seleccione el grupo de recursos PubSubEvents que creó anteriormente en este laboratorio.

  3. En el panel PubSubEvents, seleccione el tema de Event Grid hrtopic [sunombre] que creó anteriormente en este laboratorio.

  4. En el panel Tema de Event Grid, registre el valor del campo Punto de conexión del tema. Usará este valor más adelante en este laboratorio.

  5. En la categoría Configuración, seleccione el vínculo Claves de acceso.

  6. En la sección Claves de acceso, registre el valor del cuadro de texto Clave 1. Usará este valor más adelante en este laboratorio.

Revisar

En este ejercicio, ha creado una nueva suscripción, ha validado su registro y, a continuación, ha registrado las credenciales necesarias para publicar un nuevo evento en el tema.

Ejercicio 3: Publicación de eventos de Event Grid desde .NET

Tarea 1: Creación de un proyecto de .NET

  1. En la pantalla Inicio, seleccione el icono Visual Studio Code.

  2. En el menú Archivo, seleccione Abrir carpeta.

  3. En la ventana Explorador de archivos que se abre, vaya a Allfiles (F):\Allfiles\Labs\09\Starter\EventPublisher y, a continuación, seleccione Seleccionar carpeta.

  4. En la ventana Visual Studio Code, en su barra de menús superior, vaya al menú Terminal y seleccione Nuevo terminal.

  5. Ejecute el siguiente comando para crear un nuevo proyecto de .NET denominado EventPublisher en la carpeta actual:

     dotnet new console --framework net8.0 --name EventPublisher --output . 
    

    Nota: El comando dotnet new creará un nuevo proyecto de consola en una carpeta con el mismo nombre que el proyecto.

  6. Ejecute el comando siguiente para importar la versión 4.11.0 de Azure.Messaging.EventGrid desde NuGet:

     dotnet add package Azure.Messaging.EventGrid --version 4.11.0
    

    Nota: El comando dotnet add package agregará el paquete Microsoft.Azure.EventGrid desde NuGet. Para más información, vaya a Azure.Messaging.EventGrid.

  7. Ejecute el siguiente comando para crear la aplicación web de .NET:

     dotnet build
    
  8. Seleccione Cerrar el terminal o el icono de la papelera de reciclaje para cerrar el terminal abierto y todos los procesos asociados.

Tarea 2: Modificar la clase Program para conectarse a Event Grid

  1. En el panel  Explorador  de la ventana Visual Studio Code, abra el archivo Program.cs.

  2. En la pestaña del editor de código del archivo  Program.cs , elimine todo el código del archivo existente.

  3. Agregue el siguiente código:

     using Azure;
     using Azure.Messaging.EventGrid;
     using System;
     using System.Threading.Tasks;    
     public class Program
     {
         private const string topicEndpoint = "<topic-endpoint>";
         /* Update the topicEndpoint string constant by setting its value to the Topic
            Endpoint of the Event Grid topic that you recorded previously in this lab. */
         private const string topicKey = "<topic-key>";
         /* Update the topicKey string constant by setting its value to the Key of the Event Grid topic that you recorded previously in this lab. */     
         public static async Task Main(string[] args)
         {
             //Add Main code here
         }
     }
    
  4. En la línea 7, reemplace el marcador de posición <topic-endpoint> por el valor del punto de conexión del tema de Event Grid que registró anteriormente en este laboratorio.

  5. En la línea 10, reemplace el marcador de posición <topic-key> por el valor de la clave de acceso del tema de Event Grid que registró anteriormente en este laboratorio.

Tarea 3: Publicación de nuevos eventos

  1. Reemplaza el método Main del archivo Program.cs  por el código siguiente:

     public static async Task Main(string[] args)
     {   
         /* To create a new variable named "endpoint" of type "Uri", 
            using the "topicEndpoint" string constant as a constructor parameter */
         Uri endpoint = new Uri(topicEndpoint);
    
         /* To create a new variable named "credential" of type "AzureKeyCredential",
            use the "topicKey" string constant as a constructor parameter. */
         AzureKeyCredential credential = new AzureKeyCredential(topicKey);
    
         /* To create a new variable named "client" of type "EventGridPublisherClient", 
            using the "endpoint" and "credential" variables as constructor parameters */
         EventGridPublisherClient client = new EventGridPublisherClient(endpoint, credential);
    
         /* To create a new variable named "firstEvent" of type "EventGridEvent",
            and populate that variable with sample data */        
         EventGridEvent firstEvent = new EventGridEvent(
             subject: $"New Employee: Alba Sutton",
             eventType: "Employees.Registration.New",
             dataVersion: "1.0",
             data: new
             {
                 FullName = "Alba Sutton",
                 Address = "4567 Pine Avenue, Edison, WA 97202"
             }
         );
    
         /* To create a new variable named "secondEvent" of type "EventGridEvent",
            and populate that variable with sample data */
         EventGridEvent secondEvent = new EventGridEvent(
             subject: $"New Employee: Alexandre Doyon",
             eventType: "Employees.Registration.New",
             dataVersion: "1.0",
             data: new
             {
                 FullName = "Alexandre Doyon",
                 Address = "456 College Street, Bow, WA 98107"
             }
         );
    
         /* To asynchronously invoke the "EventGridPublisherClient.SendEventAsync"
            method using the "firstEvent" variable as a parameter */
         await client.SendEventAsync(firstEvent);
         Console.WriteLine("First event published");
    
         /* To asynchronously invoke the "EventGridPublisherClient.SendEventAsync"
            method using the "secondEvent" variable as a parameter */
         await client.SendEventAsync(secondEvent);
         Console.WriteLine("Second event published");
     }
    

    Nota: Para obtener más información sobre AzureKeyCredential

    Nota: Para obtener más información sobre Event Grid, haz clic en los vínculos siguientes:

  2. Guarde el archivo Program.cs .

  3. En la ventana Visual Studio Code, en la barra de menús, seleccione Terminal y, a continuación, Nuevo terminal.

  4. Ejecute el siguiente comando para ejecutar la aplicación web de .NET:

     dotnet run
    

    Nota: Si hay algún error de compilación, revise el archivo Program.cs en la carpeta Allfiles (F):\Allfiles\Labs\09\Solution\EventPublisher.

  5. Observe la salida del mensaje de operación correcta de la aplicación de consola que se está ejecutando actualmente.

  6. Seleccione Cerrar el terminal o el icono de la papelera de reciclaje para cerrar el terminal abierto y todos los procesos asociados.

Tarea 4: Observación de los eventos publicados

  1. Vuelva a la ventana del explorador con la aplicación web Visor de Azure Event Grid.

  2. Revise los eventos Employees.Registration.New creados por la aplicación de consola.

  3. Seleccione cualquiera de los eventos y revise su contenido JSON.

  4. Vuelva a Azure Portal.

Revisar

En este ejercicio, ha publicado nuevos eventos en el tema de Event Grid mediante una aplicación de consola de .NET.