Entrega de eventos a webhooks mediante temas de espacio de nombres: Azure Portal (versión preliminar)
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 que sea específico, publique eventos en un tema de espacio de nombres en Event Grid e inserte esos eventos desde una suscripción de eventos a un destino del controlador de webhook. Para obtener más información sobre el modelo de entrega de inserción, consulte Introducción a la entrega de inserción.
Nota:
Los espacios de nombres de Azure Event Grid admiten actualmente el token de firmas de acceso compartido (SAS) y la autenticación de claves de acceso.
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.
Cree un tema en el espacio de nombres
Cree un tema que contenga todos los eventos publicados en el punto de conexión 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 punto de conexión de mensaje
Antes de suscribirse a los eventos, 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 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.
Seleccione Deploy to Azure (Implementar en Azure) para implementar la solución en su suscripción.
En la página Implementación personalizada, siga estos pasos:
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.
En Nombre del sitio, escriba el nombre de la aplicación web.
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.
Seleccione Revisar + crear.
En la página Revisar y crear, seleccione Crear.
La implementación tarda unos minutos en completarse. En la página Implementación, seleccione Ir al grupo de recursos.
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.
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
.Confirme que ve el sitio pero aún no hay ningún evento publicado.
Importante
Mantenga abierta la ventana del visor de Azure Event Grid para poder ver los eventos a medida que se publican.
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.
En Tipo de punto de conexión, seleccione Webhook.
Seleccione Configurar un punto de conexión.
En la página Web Hook, especifique el punto de conexión (por ejemplo,
https://spegridsite0520.azurewebsites.net/api/updates
) como se muestra en el ejemplo siguiente y seleccione Confirmar selección.De nuevo en la página Crear suscripción, 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.
Declaración de variables
Inicie Cloud Shell en Azure Portal. Cambie a Bash.
Ejecute el siguiente comando para declarar una variable que contenga el nombre del grupo de recursos. Reemplace
RESOUREGROUPNAME
por el nombre del grupo de recursos de Azure.resource_group=RESOURCEGROUPNAME
En Cloud Shell, ejecute el siguiente comando para declarar una variable que contenga el nombre del espacio de nombres. Reemplace
NAMESPACENAME
por el nombre del espacio de nombres de Event Grid.namespace=NAMESPACENAME
Ejecute el siguiente comando para declarar una variable para contener el valor de clave de acceso que se anotó anteriormente. Reemplace
ACCESSKEY
por el valor de la clave de acceso al espacio de nombres de Event Grid.key=ACCESSKEY
En Cloud Shell, ejecute el siguiente comando para declarar una variable que contenga el nombre del espacio de nombres.
topic=TOPICNAME
Publicación de un evento
Recupere el nombre de host del espacio de nombres. Se usa para crear el punto de conexión HTTP del espacio de nombres al que se envían los eventos. Las siguientes operaciones estaban disponibles por primera vez con la versión de API
2023-06-01-preview
. También puede obtener el nombre de host en la página Información general del espacio de nombres de Event Grid en Azure Portal.publish_operation_uri="https://"$(az eventgrid namespace show -g $resource_group -n $namespace --query "topicsConfiguration.hostname" --output tsv)"/topics/"$topic: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
Compruebe que el Visor de Azure Event Grid recibió el evento
Compruebe que la aplicación web Visor de Azure Event Grid muestra los eventos que recibió de Event Grid.
Contenido relacionado
En este inicio rápido, ha usado un webhook como controlador de eventos. Para obtener una guía de inicio rápido que usa un centro de eventos de Azure como controlador de eventos, consulte Entrega de eventos a Azure Event Hubs mediante temas de espacio de nombres.