Compartir a través de


Envío de eventos de API Management a Event Grid

SE APLICA A: Consumo | Desarrollador | Básico | Estándar | Premium

API Management se integra con Azure Event Grid para poder enviar notificaciones de eventos a otros servicios y desencadenar procesos de descarga. Event Grid es un servicio de enrutamiento de eventos totalmente administrado que usa un modelo de publicación-suscripción. Event Grid tiene compatibilidad integrada para servicios de Azure, como Azure Functions y Azure Logic Apps, y puede proporcionar alertas de eventos a los servicios que no son de Azure mediante webhooks.

Por ejemplo, mediante la integración con Event Grid, puede compilar una aplicación que actualice una base de datos, cree una cuenta de facturación y envíe una notificación por correo electrónico cada vez que se agrega un usuario a la instancia de API Management.

En este artículo se va a suscribir a eventos de Event Grid en la instancia de API Management, va a desencadenar eventos y va a enviar los eventos a un punto de conexión que procesa los datos. Para que sea sencillo, los eventos se van a enviar a una aplicación web de ejemplo que recopila y muestra los mensajes:

Eventos de API Management en el visor de Event Grid

Requisitos previos

Creación de un punto de conexión de evento

En esta sección va a usar una plantilla de Resource Manager para implementar una aplicación web de ejemplo compilada previamente en Azure App Service. Posteriormente se va a suscribir a los eventos de Event Grid de la instancia de API Management y va a especificar esta aplicación como punto de conexión al que se van a enviar los eventos.

Para implementar la aplicación de ejemplo puede usar la CLI de Azure, Azure PowerShell o Azure Portal. En el ejemplo siguiente se usa el comando az deployment group create de la CLI de Azure.

  • Establezca RESOURCE_GROUP_NAME en el nombre de un grupo de recursos existente.

  • Establezca SITE_NAME en un nombre único para la aplicación web.

    El nombre del sitio debe ser único dentro de Azure porque forma parte del nombre de dominio completo (FQDN) de la aplicación web. En una sección posterior va a ir al FQDN de la aplicación en un explorador web para ver los eventos.

RESOURCE_GROUP_NAME=<your-resource-group-name>
SITE_NAME=<your-site-name>

az deployment group create \
    --resource-group $RESOURCE_GROUP_NAME \
    --template-uri "https://raw.githubusercontent.com/Azure-Samples/azure-event-grid-viewer/master/azuredeploy.json" \
    --parameters siteName=$SITE_NAME hostingPlanName=$SITE_NAME-plan

Una vez que haya realizado correctamente la implementación (podría tardar unos minutos), abra un explorador y vaya a la aplicación web para asegurarse de que se está ejecutando:

https://<your-site-name>.azurewebsites.net

Debería ver la aplicación de ejemplo representada sin ningún mensaje de evento.

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.

    Imagen que muestra el registro del proveedor Microsoft.EventGrid con la suscripción de Azure.

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

    Imagen que muestra el registro correcto del proveedor Microsoft.EventGrid con la suscripción de Azure.

Suscripción a eventos de API Management

En Event Grid, suscríbase a un tema para indicarle a qué eventos desea realizar un seguimiento y adónde enviarlos. Aquí va a crear una suscripción a eventos en la instancia de API Management.

  1. Vaya a la instancia de API Management en Azure Portal.

  2. Seleccione Eventos > + Suscripción a eventos.

  3. En la pestaña Básico:

    • Escriba un Nombre descriptivo para la suscripción a eventos.
    • En Tipos de eventos, seleccione uno o varios tipos de eventos de API Management para enviar a Event Grid. Para el ejemplo de este artículo, seleccione al menos Microsoft.APIManagement.ProductCreated.
    • En Detalles del punto de conexión, seleccione el tipo de evento Web Hook, haga clic en Seleccionar un punto de conexión y escriba la dirección URL de la aplicación web seguida de api/updates. Ejemplo: https://myapp.azurewebsites.net/api/updates.
    • Seleccione Confirmar selección.
  4. Deje la configuración de las pestañas restantes en sus valores predeterminados y seleccione Crear.

    Creación de una suscripción a eventos en Azure Portal

Desencadenamiento y visualización de eventos

Ahora que la aplicación de ejemplo está en funcionamiento y que se ha suscrito a la instancia de API Management con Event Grid, está listo para generar eventos.

Como ejemplo, cree un producto en la instancia de API Management. Si la suscripción a eventos incluye el evento Microsoft.APIManagement.ProductCreated, la creación del producto desencadena un evento que se inserta en el punto de conexión de la aplicación web.

Vaya a la aplicación web Visor de Event Grid para ver el evento ProductCreated. Seleccione el botón situado junto al evento para mostrar los detalles.

Evento creado por un producto en el visor de Event Grid

Esquema de eventos de Event Grid

Los datos de eventos de API Management incluyen resourceUri, que identifica el recurso de API Management que ha desencadenado el evento. Para obtener detalles sobre el esquema de mensajes de eventos de API Management, vea la documentación de Event Grid:

Esquema de eventos de Azure Event Grid para API Management

Pasos siguientes