Entrega de eventos a Azure Event Hubs mediante temas de espacio de nombres: Azure Portal
El artículo proporciona instrucciones paso a paso para publicar eventos en Azure Event Grid en el formato JSON de CloudEvents y entregar esos eventos mediante el modelo de entrega de inserción.
Para ser específico, use Azure Portal y Curl para publicar eventos en un tema de espacio de nombres en Event Grid e insertar esos eventos desde una suscripción de eventos a un destino del controlador de Event Hubs. Para obtener más información sobre el modelo de entrega de inserción, consulte Introducción a la entrega de inserción.
Si no tiene una suscripción a Azure, cree una cuenta gratuita de Azure antes de empezar.
Crear un espacio de nombres de Event Grid
Un espacio de nombres de Event Grid proporciona un punto de conexión definido por el usuario en el que se publican los eventos. En el ejemplo siguiente se crea en un grupo de recursos el espacio de nombres mediante Bash en Azure Cloud Shell. El nombre del espacio de nombres debe ser único porque forma parte de una entrada del Sistema de nombres de dominio (DNS).
Acceda a Azure Portal.
En la barra de búsqueda del tema, escriba
Event Grid Namespaces
y seleccioneEvent Grid Namespaces
entre los resultados.En la página Espacios de nombres de Event Grid, seleccione + Crear en la barra d comandos.
En la página Crear espacio de nombres, siga estos pasos:
- Seleccione la suscripción de Azure en la que desea crear el espacio de nombres.
- Cree un nuevo grupo de recursos seleccionando Crear nuevo o seleccione un grupo de recursos existente.
- Escriba nombre para el espacio de nombres.
- Seleccione la ubicación donde desea crear el grupo de recursos.
- Después, seleccione Revisar y crear.
- En la página Revisar y crear, seleccione Crear.
En la página Implementación, seleccione Ir al recurso después de la implementación correcta.
Obtención de la clave de acceso
- En la página Espacio de nombres de Event Grid, seleccione Claves de acceso en el menú de la izquierda.
- Seleccione el botón Copiar situado junto a la clave de acceso.
- Guarde la clave de acceso en algún lugar. Lo usará más adelante en esta guía de inicio rápido.
Habilitación de la identidad administrada para el espacio de nombres de Event Grid
Habilite la identidad administrada asignada por el sistema en el espacio de nombres de Event Grid. Para enviar eventos a Event Hubs en el espacio de nombres de Event Hubs mediante identidad administrada, siga estos pasos:
- Habilite la identidad administrada asignada por el sistema o asignada por el usuario: espacios de nombres. Pase a la siguiente sección para encontrar cómo habilitar la identidad administrada mediante la CLI de Azure.
- Agregue la identidad al rol Remitente de datos de Azure Event Hubs en el espacio de nombres de Event Hubs y continúe leyendo en la sección siguiente para encontrar cómo agregar la asignación de roles.
- Configure la suscripción de eventos que emplea un centro de eventos como punto de conexión para usar la identidad administrada asignada por el sistema o por el usuario.
En esta sección, habilitará una identidad administrada asignada por el sistema en el espacio de nombres. Los demás pasos se realizan más adelante en este inicio rápido.
En la página Espacio de nombres de Event Grid, seleccione Identidad en el menú de la izquierda.
En la página Identidad, seleccione Activado para Estado.
Seleccione Guardar en la barra de comandos.
Cree un tema en el espacio de nombres
Cree un tema que se use para contener todos los eventos publicados en el punto final del espacio de nombres.
- Seleccione Temas en el menú de la izquierda.
- En la página Temas, seleccione + Tema en la barra de comandos.
- En la página Crear tema, siga estos pasos:
Creación de un espacio de nombres de Event Hubs
Cree un recurso de Event Hubs que se use como destino del controlador para la suscripción de entrega de inserción del tema de espacio de nombres. Realice estos pasos en una pestaña independiente del explorador de Internet o en una ventana independiente. Vaya a Azure Portal e inicie sesión con las mismas credenciales que usó antes y la misma suscripción de Azure.
- Escriba Event Hubs en la barra de búsqueda y seleccione Event Hubs.
- En la página Event Hubs, seleccione + Crear en la barra de comandos.
- En la página Crear espacio de nombres, siga estos pasos:
- Seleccione la suscripción de Azure que usó para crear el espacio de nombres de Event Grid.
- Seleccione el grupo de recursos que usó anteriormente.
- Escriba un nombre para el espacio de nombres de Event Hubs.
- Seleccione la misma ubicación que usó para el espacio de nombres de Event Grid.
- Seleccione Básico para el plan de tarifa.
- Seleccione Revisar + crear.
- En la página Revisar, seleccione Crear.
- En la página Implementación, seleccione Ir al recurso después de que la implementación se haya realizado correctamente.
Agregar una identidad administrada de Event Grid al rol de emisor de datos de Event Hubs
- En la página Espacio de nombres de Event Hubs, seleccione Control de acceso (IAM) en el menú de la izquierda.
- Seleccione Agregar: >Agregar asignación de roles en la barra de comandos.
- En la página Agregar asignación de roles, busque Emisor de datos de Event Hubs y seleccione Emisor de datos de Azure Event Hubs en la lista de roles y, a continuación, seleccione Siguiente.
- En la pestaña Miembros, seleccione Identidad administrada para el tipo y, a continuación, seleccione + Seleccionar miembros.
- En la página Seleccionar identidades administradas, seleccione Espacio de nombres de Event Grid para la Identidad administrada y, a continuación, seleccione la identidad administrada que tiene el mismo nombre que el espacio de nombres de Event Grid.
- En la página Seleccionar identidades administradas, elija Seleccionar.
- Ahora, en la página Agregar asignación de roles, seleccione Revisar y asignar.
- En la página Revisar + asignar, seleccione Revisar + asignar.
Creación de un centro de eventos
- En la página Espacio de nombres de Event Hubs, seleccione Event Hubs en el menú de la izquierda.
- En la página Event Hubs, seleccione + Centro de eventos en la barra de comandos.
- En la página Crear centro de eventos, escriba un nombre para el centro de eventos y, a continuación, seleccione Revisar y crear.
- En la página Revisar y crear, seleccione Crear.
Creación de una suscripción a evento
Cree una suscripción de eventos que establezca su modo de entrega en Insertar, que admite la entrega de inserción.
- Cambie a la pestaña o ventana con la página Espacio de nombres de Event Grid abierta desde la pestaña o ventana con la página Espacio de nombres de Event Hubs abierta.
- En la página Espacio de nombres de Event Grid, seleccione Temas en el menú de la izquierda.
- En la página Temas, seleccione el tema que creó en el paso anterior.
- Seleccione + Suscripción en la barra de comandos.
- En la página Crear suscripción de eventos, siga estos pasos:
- En la pestaña Básico, escriba un nombre para la suscripción de eventos.
- Seleccione Insertar para el modo de entrega de eventos.
- Confirme que el Centro de eventos se seleccionó para el Tipo de punto de conexión.
- Seleccione Configurar un punto de conexión.
- En la página Seleccionar centro de eventos, siga estos pasos:
- De nuevo en la página Crear suscripción, seleccione Sistema asignado para Tipo de identidad administrada.
- Seleccione Crear.
Envío de eventos al tema
Ahora, envíe un evento de ejemplo al tema de espacio de nombres siguiendo los pasos de esta sección.
Inicie Cloud Shell en Azure Portal. Cambie a Bash.
En Cloud Shell, ejecute el siguiente comando para declarar una variable que contenga la clave de acceso para el espacio de nombres. Anotó la clave de acceso anteriormente en este inicio rápido.
key=ACCESSKEY
Declare una variable para contener el URI de la operación de publicación. Reemplace
NAMESPACENAME
por el nombre del espacio de nombres de Event Grid yTOPICNAME
por el nombre del tema.publish_operation_uri=https://NAMESPACENAME.eastus-1.eventgrid.azure.net/topics/TOPICNAME:publish?api-version=2023-06-01-preview
Cree un evento de ejemplo compatible con CloudEvents:
event=' { "specversion": "1.0", "id": "'"$RANDOM"'", "type": "com.yourcompany.order.ordercreatedV2", "source" : "/mycontext", "subject": "orders/O-234595", "time": "'`date +%Y-%m-%dT%H:%M:%SZ`'", "datacontenttype" : "application/json", "data":{ "orderId": "O-234595", "url": "https://yourcompany.com/orders/o-234595"}} '
El elemento
data
es la carga del evento. En este campo, puede usar cualquier archivo JSON bien formado. Consulte las especificaciones de CloudEvents para obtener más información sobre las propiedades (también conocidas como atributos de contexto) que pueden ir en un evento.Use CURL para enviar el evento al tema. CURL es una utilidad que envía solicitudes HTTP.
curl -X POST -H "Content-Type: application/cloudevents+json" -H "Authorization:SharedAccessKey $key" -d "$event" $publish_operation_uri
Vaya a la página Espacio de nombres de Event Hubs de Azure Portal, actualícela y compruebe si el contador de mensajes entrantes del gráfico indica que se ha recibido un evento.
Pasos siguientes
En este artículo, ha creado y configurado el espacio de nombres de Event Grid y los recursos de Event Hubs. Para obtener instrucciones paso a paso para recibir eventos de un centro de eventos, consulte estos tutoriales: