Enlaces de Azure Event Grid para Azure Functions

En esta referencia se muestra cómo conectarse a Azure Event Grid mediante desencadenadores y enlaces de Azure Functions.

Event Grid es un servicio de Azure que envía solicitudes HTTP para notificarle acerca de eventos que ocurre en los publicadores. Un publicador es el servicio o recurso que origina el evento. Por ejemplo, una cuenta de Azure Blob Storage es un publicador y una carga o eliminación de blobs es un evento. Algunos servicios de Azure tienen compatibilidad integrada para publicar eventos en Event Grid.

Los controladores de eventos reciben y procesan eventos. Azure Functions es uno de los servicios de Azure con compatibilidad integrada para controlar eventos de Event Grid. Functions proporciona un Event Grid, que invoca una función cuando se recibe un evento de Event Grid. Se puede usar un enlace de salida similar para enviar eventos de la función a un tema personalizado de Event Grid.

También puede usar un desencadenador HTTP para controlar los eventos de Event Grid. Para más información, consulte Recepción de eventos en un punto de conexión HTTP. Se recomienda usar el desencadenador de Event Grid en el desencadenador HTTP.

Acción Tipo
Ejecuta una función cuando se envía un evento de Event Grid Desencadenador
Envía un evento de Event Grid Enlace de salida
Control del código de estado HTTP devuelto Punto de conexión HTTP

Instalación de la extensión

El paquete NuGet de la extensión que instale depende del modo de C# que esté usando en la aplicación de funciones:

Las funciones se ejecutan en un proceso de trabajo de C# aislado. Para más información, consulte Guía para ejecutar C# Azure Functions en un proceso de trabajo aislado.

La funcionalidad de la extensión varía en función de la versión de la extensión:

Para agregar la extensión al proyecto, instale el paquete NuGet, versión 3.x.

Instalación del conjunto

La extensión de Event Grid forma parte de un conjunto de extensiones, que se especifica en el archivo de proyecto host.json. Es posible que tenga que modificar este conjunto para cambiar la versión de los enlaces de Event Grid o en caso de que los conjuntos aún no estén instalados. Para obtener más información, consulte Conjuntos de extensiones.

Para agregar esta versión de la extensión desde el conjunto de extensiones v3, puede agregar o reemplazar la configuración siguiente en el archivo host.json:

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[3.3.0, 4.0.0)"
    }
}

Para obtener más información, consulte Actualización de las extensiones.

Tipos de enlaces

Los tipos de enlace admitidos para .NET dependen de la versión de extensión y del modo de ejecución de C#, que puede ser uno de los siguientes:

Una función de C# compilada de la biblioteca de clases de procesos de trabajo aislados se ejecuta en un proceso aislado del entorno de ejecución.

Seleccione una versión para ver los detalles del tipo de enlace para el modo y la versión.

El proceso de trabajo aislado admite tipos de parámetros según las tablas siguientes. El soporte para enlazar a Stream y a tipos desde Azure.Messaging está en versión preliminar.

Desencadenador de Event Grid

Cuando quiera que la función procese un único evento, el desencadenador de Event Grid puede enlazarse a los siguientes tipos:

Tipo Descripción
Tipos serializables con JSON Functions intenta deserializar los datos JSON del evento en un tipo de objeto CLR estándar (POCO).
string El evento como una cadena.
BinaryData1 Bytes del mensaje de evento.
CloudEvent1 El objeto de evento. Usar cuando Event Grid esté configurado para hacer entregas mediante el esquema CloudEvents.
EventGridEvent1 El objeto de evento. Usar cuando Event Grid esté configurado para hacer entregas mediante el esquema de Event Grid.

Cuando quiera que la función procese un lote de eventos, el desencadenador de Event Grid puede enlazarse a los siguientes tipos:

Tipo Descripción
CloudEvent[]1,
EventGridEvent[]1,
string[],
BinaryData[]1
Una matriz de eventos del lote. Cada entrada representa un evento.

1 Para utilizar estos tipos, debe hacer referencia a Microsoft.Azure.Functions.Worker.Extensions.EventGrid 3.3.0 o posterior y a las dependencias comunes para los enlaces de tipo SDK.

Enlace de salida de Event Grid

Cuando quiera que la función escriba un único evento, el enlace de salida de Event Grid puede enlazarse a los siguientes tipos:

Tipo Descripción
string El evento como una cadena.
byte[] Bytes del mensaje de evento.
Tipos serializables con JSON Un objeto que representa un evento JSON. Functions intenta serializar un tipo de objeto CLR convencional (POCO) en datos JSON.

Cuando quiera que la función escriba varios eventos, el enlace de salida de Event Grid puede enlazarse a los siguientes tipos:

Tipo Descripción
T[] donde T es uno de los tipos de eventos únicos Matriz que contiene varios eventos. Cada entrada representa un evento.

Para otros escenarios de salida, cree y use tipos de Azure.Messaging.EventGrid directamente.

configuración de host.json

El desencadenador de Event Grid usa una solicitud HTTP de webhook, que se puede configurar con la misma configuración host.json que el desencadenador HTTP.

Pasos siguientes