Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Un gestor de eventos es el destino donde Azure Event Grid envía un evento para su procesamiento. Azure configura automáticamente varios servicios para gestionar eventos, y Azure Functions es uno de ellos.
Cuando usas una función como gestor de eventos, ejecutas código personalizado en respuesta a cada evento sin provisionar ni gestionar servidores. Por ejemplo, Event Grid puede usar una función como capa anticorrupción que transforma o valida los eventos antes de enviarlos a sistemas posteriores.
Este artículo describe las dos formas de usar una función como gestor de eventos y explica qué enfoque utilizar.
Para usar una función de Azure como controlador de eventos, siga uno de estos métodos:
- Usa un desencadenador de Event Grid. Seleccione Función de Azure como tipo de punto de conexión. Luego especifica la aplicación de funciones y la función que gestiona los eventos.
- Usa un trigger HTTP. Seleccione Webhook como tipo de punto de conexión. Luego especifica la URL de la función que gestiona los eventos.
Usa el primer enfoque (desencadenador de Event Grid). Tiene las siguientes ventajas respecto al segundo enfoque:
- Event Grid valida automáticamente los desencadenadores de Event Grid. Con los desencadenadores HTTP genéricos, debe implementar la respuesta de validación usted mismo.
- La Cuadrícula de Eventos ajusta automáticamente la velocidad a la que entrega eventos a una función que un evento de la Red de Eventos activa, basándose en la tasa percibida a la que la función puede procesar eventos. Esta función de igualación de tasas evita errores de entrega derivados de la incapacidad de una función para procesar eventos, ya que la velocidad de procesamiento de eventos de la función puede variar con el tiempo. Para mejorar la eficacia con un alto rendimiento, habilite el procesamiento por lotes en la suscripción de eventos. Para obtener más información, consulte Habilitar el procesamiento por lotes.
Nota:
- Cuando usas un disparador de Grid de Eventos para añadir una suscripción de evento mediante una función de Azure, Grid de Eventos obtiene la clave de acceso para la función objetivo usando las credenciales del principal del servicio de Grid de Eventos. Event Grid recibe los permisos cuando registras el proveedor de recursos de Event Grid en tu suscripción a Azure.
- Si proteges tu función de Azure con una aplicación Microsoft Entra ID, debes adoptar el enfoque genérico del webhook usando el trigger HTTP. Use el punto de conexión de la función de Azure como una dirección URL de webhook al agregar la suscripción.
Tutoriales
| Título | Descripción |
|---|---|
| Inicio rápido: Control de eventos con una función | Envía un evento personalizado a una función para su procesamiento. |
| Tutorial: transmisión de macrodatos a un almacén de datos | Cuando un centro de eventos crea un archivo de captura, Event Grid envía un evento a una aplicación de funciones. La aplicación recupera el archivo de captura y migra los datos a un almacenamiento de datos. |
| Tutorial: Ejemplos de integración de Azure Service Bus en Azure Event Grid | Event Grid envía mensajes desde un tema de Service Bus a una aplicación de funciones y a una aplicación lógica. |
Ejemplo de API de REST
El siguiente ejemplo muestra el cuerpo de la solicitud para una operación PUT que crea una suscripción a un evento con una función de Azure como gestor de eventos. Establece el ID de recurso de la función objetivo y permite el procesamiento por lotes.
{
"properties":
{
"destination":
{
"endpointType": "AzureFunction",
"properties":
{
"resourceId": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.Web/sites/<FUNCTION APP NAME>/functions/<FUNCTION NAME>",
"maxEventsPerBatch": 10,
"preferredBatchSizeInKilobytes": 64
}
},
"eventDeliverySchema": "EventGridSchema"
}
}
Habilitar el procesamiento por lotes
Para mayor rendimiento, activa el procesamiento por lotes en la suscripción. Si usas el portal de Azure, puedes establecer el máximo de eventos por lote y el tamaño preferido del lote en kilobytes cuando crees una suscripción o después.
Configura la configuración por lotes usando el portal de Azure, PowerShell, CLI o una plantilla de Resource Manager.
Azure portal
Cuando crees una suscripción en el portal, en la página de Crear Suscripción a Eventos , cambia a la pestaña Funciones Avanzadas y establece valores para Máximo de eventos por lote y Tamaño de lote Preferido en kilobytes.
Actualiza estos valores para una suscripción existente en la pestaña Características de la página de Temas de la Cuadrícula de Eventos .
Plantilla del Administrador de recursos de Azure
Establezca maxEventsPerBatch y preferredBatchSizeInKilobytes en una plantilla de Azure Resource Manager. Para obtener más información, consulte la referencia de la plantilla de eventSubscriptions de Microsoft.EventGrid.
CLI de Azure
Utiliza el az eventgrid event-subscription create comando para configurar los ajustes relacionados con lotes usando los siguientes parámetros: --max-events-per-batch o --preferred-batch-size-in-kilobytes.
Azure PowerShell
Utiliza el cmdlet New-AzEventGridSubscription o el cmdlet Update-AzEventGridSubscription para configurar opciones relacionadas con el procesamiento por lotes. Usa el -MaxEventsPerBatch parámetro o -PreferredBatchSizeInKiloBytes para establecer tus preferencias.
Contenido relacionado
Para una lista de manejadores de eventos soportados, véase el artículo sobre Manejadores de eventos .