Desencadenador y enlaces de Azure Event Hubs para Azure Functions
En este artículo se explica cómo usar enlaces de Azure Event Hubs para Azure Functions. Azure Functions admite enlaces de desencadenador y salida para Event Hubs.
Acción | Tipo |
---|---|
Responder a los eventos enviados a una secuencia de eventos del centro de eventos. | Desencadenador |
Escribir eventos en una secuencia de eventos. | Enlace de salida |
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 el mismo proceso que el host de Functions. Para más información, consulte Desarrollo de funciones de la biblioteca de clases de C# con Azure Functions.
La funcionalidad de la extensión varía en función de la versión de la extensión:
Esta versión presenta la posibilidad de conectarse con una identidad en lugar de un secreto. Para obtener un tutorial sobre cómo configurar las aplicaciones de funciones con identidades administradas, consulte el tutorial Creación de una aplicación de funciones con conexiones basadas en identidades.
Esta versión usa el tipo de enlace de Event Hubs Azure.Messaging.EventHubs.EventData más reciente.
Esta versión de extensión está disponible instalando este paquete NuGet, versión 5.x.
Instalación del conjunto
La extensión de Event Hubs 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.
Esta versión presenta la posibilidad de conectarse con una identidad en lugar de un secreto. Para obtener un tutorial sobre cómo configurar las aplicaciones de funciones con identidades administradas, consulte el tutorial Creación de una aplicación de funciones con conexiones basadas en identidades.
Para agregar esta versión de la extensión desde el conjunto de extensiones v3, puede agregar o reemplazar el código 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.
configuración de host.json
El archivo host.json contiene opciones de configuración que controlan el comportamiento del desencadenador de Event Hubs. La configuración varía en función de la versión de las extensiones.
{
"version": "2.0",
"extensions": {
"eventHubs": {
"maxEventBatchSize" : 10,
"batchCheckpointFrequency" : 1,
"prefetchCount" : 300,
"transportType" : "amqpWebSockets",
"webProxy" : "https://proxyserver:8080",
"customEndpointAddress" : "amqps://company.gateway.local",
"initialOffsetOptions" : {
"type" : "fromStart",
"enqueuedTimeUtc" : ""
},
"clientRetryOptions":{
"mode" : "exponential",
"tryTimeout" : "00:01:00",
"delay" : "00:00:00.80",
"maximumDelay" : "00:01:00",
"maximumRetries" : 3
}
}
}
}
Propiedad | Valor predeterminado | Descripción |
---|---|---|
maxEventBatchSize | 10 | Número máximo de eventos que se incluirán en un lote para una sola invocación. Debe ser 1 como mínimo. |
batchCheckpointFrequency | 1 | Número de lotes que se procesarán antes de crear un punto de control para el centro de eventos. |
prefetchCount | 300 | Número de eventos que se van a solicitar diligentemente desde Event Hubs y que se mantienen en una caché local para permitir lecturas y así evitar esperar a una operación de red. |
transportType | amqpTcp | El protocolo y el transporte que se usan para comunicarse con Event Hubs. Opciones disponibles: amqpTcp , amqpWebSockets . |
webProxy | Proxy que se usará para comunicarse con Event Hubs a través de sockets web. Recuerde que no se puede usar un proxy con el transporte amqpTcp . |
|
customEndpointAddress | Dirección que se va a usar al establecer una conexión a Event Hubs, lo que permite enrutar las solicitudes de red a través de una puerta de enlace de aplicaciones u otra ruta de acceso necesaria para el entorno de host. El espacio de nombres completo para el centro de eventos sigue siendo necesario cuando se usa una dirección de punto de conexión personalizada y se debe especificar explícitamente o a través de la cadena de conexión. | |
initialOffsetOptions/type | fromStart | Ubicación en el flujo de eventos desde la que se inicia el procesamiento cuando no existe un punto de control en el almacenamiento. Se aplica a todas las particiones. Para obtener más información, consulte la documentación de OffsetType. Opciones disponibles: fromStart , fromEnd , fromEnqueuedTime . |
initialOffsetOptions/enqueuedTimeUtc | Especifica la hora de puesta en cola del evento en la secuencia a partir de la que se va a iniciar el procesamiento. Cuando initialOffsetOptions/type se configura como fromEnqueuedTime , este valor es obligatorio. Admite la hora en cualquier formato admitido por DateTime.Parse(), como . Para mayor claridad, también debe especificar una zona horaria. Cuando no se especifica una zona horaria, Functions asume la zona horaria local del equipo que ejecuta la aplicación de funciones, que es la hora UTC cuando se ejecuta en Azure. |
|
clientRetryOptions/mode | exponential | Enfoque que se debe usar para calcular los retrasos de reintento. El modo exponencial aplicará un retraso a los reintentos en función de una estrategia de interrupción, en la que cada intento aumentará la duración que espera antes de volver a intentarlo. El modo fijo reintentará la operación a intervalos fijos, donde cada retraso tendrá una duración uniforme. Opciones disponibles: exponential , fixed . |
clientRetryOptions/tryTimeout | 00:01:00 | Duración máxima para esperar a que se complete la operación de Event Hubs por intento. |
clientRetryOptions/delay | 00:00:00.80 | Factor de retraso o de interrupción que se aplicará entre reintentos. |
clientRetryOptions/maximumDelay | 00:00:01 | Retraso máximo que se permite entre los reintentos. |
clientRetryOptions/maximumRetries | 3 | Número máximo de reintentos antes de considerar que hay un error en la operación asociada. |
clientRetryOptions
se usan para reintentar las operaciones entre el host de Functions y Event Hubs (como capturar eventos y enviar eventos). Consulte las instrucciones sobre el control de errores y reintentos de Azure Functions para obtener información sobre cómo aplicar directivas de reintento a funciones individuales.
Para una referencia de host.json en Azure Functions 2.x y versiones posteriores, consulte Referencia de host.json para Azure Functions.