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:
Requisitos previos
Use el entorno de Bash en Azure Cloud Shell. Para más información, consulte Inicio rápido para Bash en Azure Cloud Shell.
Si prefiere ejecutar comandos de referencia de la CLI localmente, instale la CLI de Azure. Si utiliza Windows o macOS, considere la posibilidad de ejecutar la CLI de Azure en un contenedor Docker. Para más información, vea Ejecución de la CLI de Azure en un contenedor de Docker.
Si usa una instalación local, inicie sesión en la CLI de Azure mediante el comando az login. Siga los pasos que se muestran en el terminal para completar el proceso de autenticación. Para ver otras opciones de inicio de sesión, consulte Inicio de sesión con la CLI de Azure.
En caso de que se le solicite, instale las extensiones de la CLI de Azure la primera vez que la use. Para más información sobre las extensiones, consulte Uso de extensiones con la CLI de Azure.
Ejecute az version para buscar cuál es la versión y las bibliotecas dependientes que están instaladas. Para realizar la actualización a la versión más reciente, ejecute az upgrade.
- Si aún no tiene una instancia del servicio API Management, realice el inicio rápido siguiente: Creación de una instancia de Azure API Management.
- Habilite una identidad administrada asignada por el sistema en la instancia de API Management.
- Cree un grupo de recursos si no tiene ninguno en el que implementar el punto de conexión de ejemplo.
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:
En el menú de la izquierda, seleccione Suscripciones.
Seleccione la suscripción que desea usar para Event Grid en la lista de suscripciones.
En la página Suscripción, seleccione Proveedores de recursos en Configuración del menú izquierdo.
Busque Microsoft.EventGrid y confirme que el estado es No registrado.
Seleccione Microsoft.EventGrid en la lista de proveedores.
Seleccione Registrar en la barra de comandos.
Actualice para asegurarse de que el estado de Microsoft.EventGrid se cambia a Registrado.
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.
Vaya a la instancia de API Management en Azure Portal.
Seleccione Eventos > + Suscripción a eventos.
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.
Deje la configuración de las pestañas restantes en sus valores predeterminados y seleccione Crear.
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.
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
- Obtenga más información sobre la suscripción a eventos.