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

Adición a la aplicación de Functions

Functions 2.x y superiores

Para trabajar con el desencadenador y los enlaces, es necesario hacer referencia al paquete adecuado. En las bibliotecas de clases de .NET se usa el paquete NuGet, mientras que en los demás tipos de aplicaciones se emplea el conjunto de extensiones.

Idioma Agregar mediante... Observaciones
C# Instalación del paquete NuGet, versión 3.x
Script de C#, Java, JavaScript, Python, PowerShell Registro de conjunto de extensiones Se recomienda usar la extensión Azure Tools con Visual Studio Code.
Script de C# (solo en línea en Azure Portal) Adición de un enlace Para actualizar extensiones de enlace existentes sin tener que volver a publicar la aplicación de funciones, consulte Actualización de las extensiones.

Extensión 5.x y superior de Event Hubs

Ahora está disponible una nueva versión de la extensión de enlaces de Event Hubs. 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. En el caso de las aplicaciones .NET, también cambian los tipos con los que se puede enlazar; así, los tipos Microsoft.Azure.EventHubs se reemplazan por otros tipos más recientes de Azure.Messaging.EventHubs.

Esta versión de la extensión está disponible mediante la instalación de un paquete NuGet, versión 5.x, o se puede agregar desde el conjunto de extensiones v3 mediante la incorporación de lo siguiente al 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.

Functions 1.x

Las aplicaciones de Functions 1.x tienen automáticamente una referencia al paquete NuGet Microsoft.Azure.WebJobs, versión 2.x.

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 Azure Functions.

Functions 2.x y superiores

{
    "version": "2.0",
    "extensions": {
        "eventHubs": {
            "batchCheckpointFrequency": 5,
            "eventProcessorOptions": {
                "maxBatchSize": 256,
                "prefetchCount": 512
            },
            "initialOffsetOptions": {
                "type": "fromStart",
                "enqueuedTimeUtc": ""
            }
        }
    }
}  
Propiedad Valor predeterminado Descripción
batchCheckpointFrequency 1 Número de lotes de eventos que se va a procesar antes de crear un punto de comprobación de cursor de EventHub.
eventProcessorOptions/maxBatchSize 10 Número máximo de eventos recibido por cada bucle de recepción.
eventProcessorOptions/prefetchCount 300 Número predeterminado de capturas previas utilizado por el elemento EventProcessorHost subyacente. El valor mínimo permitido es 10.
initialOffsetOptions/type1 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. Las opciones son fromStart, fromEnd o fromEnqueuedTime. fromEnd procesa los nuevos eventos que se pusieron en cola después de iniciar la ejecución de la aplicación de funciones. Se aplica a todas las particiones. Para más información, consulte la documentación de EventProcessorOptions.
initialOffsetOptions/enqueuedTimeUtc1 N/D 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 2020-10-26T20:31Z. 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. Para más información, consulte la documentación de EventProcessorOptions.

1 El soporte para initialOffsetOptions empieza por EventHubs v4.2.0.

Nota

Para una referencia de host.json en Azure Functions 2.x y versiones posteriores, consulte Referencia de host.json para Azure Functions.

Functions 1.x

{
    "eventHub": {
      "maxBatchSize": 64,
      "prefetchCount": 256,
      "batchCheckpointFrequency": 1
    }
}
Propiedad Valor predeterminado Descripción
maxBatchSize 64 Número máximo de eventos recibido por cada bucle de recepción.
prefetchCount N/D Número predeterminado de capturas previas que utilizará el elemento EventProcessorHost subyacente.
batchCheckpointFrequency 1 Número de lotes de eventos que se va a procesar antes de crear un punto de comprobación de cursor de EventHub.

Nota

Para una referencia de host.json en Azure Functions 1.x, consulte Referencia de host.json para Azure Functions 1.x.

Pasos siguientes