Compartir a través de


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

  1. Acceda a Azure Portal.

  2. En la barra de búsqueda del tema, escriba Event Grid Namespaces y seleccione Event Grid Namespaces entre los resultados.

    Captura de pantalla que muestra la barra de búsqueda en Azure Portal.

  3. En la página Espacios de nombres de Event Grid, seleccione + Crear en la barra d comandos. Captura de pantalla que muestra la página Espacios de nombres de Event Grid con el botón Crear de la barra de comandos seleccionada.

  4. En la página Crear espacio de nombres, siga estos pasos:

    1. Seleccione la suscripción de Azure en la que desea crear el espacio de nombres.
    2. Cree un nuevo grupo de recursos seleccionando Crear nuevo o seleccione un grupo de recursos existente.
    3. Escriba nombre para el espacio de nombres.
    4. Seleccione la ubicación donde desea crear el grupo de recursos.
    5. Después, seleccione Revisar y crear.
      Captura de pantalla que muestra la página Crear espacio de nombres.
    6. En la página Revisar y crear, seleccione Crear.
  5. En la página Implementación, seleccione Ir al recurso después de la implementación correcta.

Obtención de la clave de acceso

  1. En la página Espacio de nombres de Event Grid, seleccione Claves de acceso en el menú de la izquierda.
  2. Seleccione el botón Copiar situado junto a la clave de acceso. Captura de pantalla que muestra la página Espacios de nombres de Event Grid con la pestaña Claves de acceso seleccionada.
  3. 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.

  1. Seleccione Temas en el menú de la izquierda.
  2. En la página Temas, seleccione + Tema en la barra de comandos. Captura de pantalla que muestra la página Temas.
  3. En la página Crear tema, siga estos pasos:
    1. Escriba un nombre para el tema.
    2. Seleccione Crear.
      Captura de pantalla que muestra la página Crear tema.

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.

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

    Botón para implementar la plantilla de Resource Manager en 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.

      Captura de pantalla que muestra la página Implementación personalizada.

  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.

    Captura de pantalla que muestra la página de implementación correcta con un vínculo para ir al grupo de recursos.

  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.

    Captura de pantalla que muestra la selección de la aplicación web en el grupo de recursos.

  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.

    Captura de pantalla que muestra la selección del vínculo para navegar a la aplicación web.

  7. Confirme que ve el sitio pero aún no hay ningún evento publicado.

    Captura de pantalla de un nuevo sitio.

    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.

  1. 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.
  2. En la página Espacio de nombres de Event Grid, seleccione Temas en el menú de la izquierda.
  3. En la página Temas, seleccione el tema que creó en el paso anterior.
  4. Seleccione + Suscripción en la barra de comandos. Captura de pantalla que muestra la página Tema con el botón Crear suscripción seleccionado.
  5. En la página Crear suscripción de eventos, siga estos pasos:
    1. En la pestaña Básico, escriba un nombre para la suscripción de eventos.

    2. Seleccione Insertar para el modo de entrega de eventos.

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

    4. Seleccione Configurar un punto de conexión.

      Captura de pantalla que muestra la página Crear suscripción con la opción Insertar seleccionada para modo de entrega y WebHook como tipo de punto de conexión.

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

      Captura de pantalla que muestra la página Web Hook con un valor para el punto de conexión del suscriptor.

    6. De nuevo en la página Crear suscripción, seleccione Crear.

      Captura de pantalla que muestra la página Crear suscripción con todos los campos rellenados.

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

  1. Inicie Cloud Shell en Azure Portal. Cambie a Bash.

    Captura de pantalla que muestra Cloud Shell.

  2. 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
    
  3. 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
    
  4. 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
    
  5. 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

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

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

Captura de pantalla que muestra el Visor de Azure Event Grid con un evento recibido de ejemplo.

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.