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 eventGridPublisherClient con otros tipos de Azure.Messaging.EventGrid directamente. Consulte Registro de clientes de Azure para obtener un ejemplo de uso de la inserción de dependencias para crear un tipo de cliente a partir del SDK de Azure.
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
- Si tiene alguna pregunta, contacte con el equipo aquí
- Desencadenador de Event Grid
- Enlace de salida de Event Grid
- Ejecución de una función cuando se envía un evento de Event Grid
- Envío de un evento de Event Grid