Compartir a través de


EventHubProducerClient class

La clase EventHubProducerClient se usa para enviar eventos a un centro de eventos.

Hay varias maneras de crear una EventHubProducerClient

  • Use la cadena de conexión de la directiva SAS creada para la instancia del centro de eventos.
  • Use la cadena de conexión de la directiva SAS creada para el espacio de nombres del centro de eventos y el nombre de la instancia del centro de eventos.
  • Use el espacio de nombres completo como <yournamespace>.servicebus.windows.nety un objeto credentials.

Opcionalmente, también puede pasar un contenedor de opciones para configurar la directiva de reintento o la configuración de proxy.

Constructores

EventHubProducerClient(string, EventHubClientOptions)

La clase EventHubProducerClient se usa para enviar eventos a un centro de eventos. Use el options parmeter para configurar la directiva de reintento o la configuración de proxy.

EventHubProducerClient(string, string, EventHubClientOptions)

La clase EventHubProducerClient se usa para enviar eventos a un centro de eventos. Use el options parmeter para configurar la directiva de reintento o la configuración de proxy.

EventHubProducerClient(string, string, TokenCredential | NamedKeyCredential | SASCredential, EventHubClientOptions)

La clase EventHubProducerClient se usa para enviar eventos a un centro de eventos. Use el options parmeter para configurar la directiva de reintento o la configuración de proxy.

Propiedades

eventHubName

Nombre de la instancia del centro de eventos para la que se crea este cliente.

fullyQualifiedNamespace

Espacio de nombres completo de la instancia del centro de eventos para la que se crea este cliente. Esto es probable que sea similar a .servicebus.windows.net.

identifier

Nombre que se usa para identificar este EventHubProducerClient. Si no se especifica o está vacío, se generará uno único aleatorio.

Métodos

close()

Cierra la conexión AMQP a la instancia del centro de eventos y devuelve una promesa que se resolverá cuando se complete la desconexión.

createBatch(CreateBatchOptions)

Crea una instancia de EventDataBatch a la que se pueden agregar eventos hasta que se alcanza el tamaño máximo admitido. El lote se puede pasar al método sendBatch del EventHubProducerClient que se enviará a Azure Event Hubs.

Los eventos con valores diferentes para partitionKey o partitionId deberán colocarse en diferentes lotes. Para simplificar dicha administración por lotes entre particiones o para que el cliente realice automáticamente eventos por lotes y enviarlos en intervalos específicos, use EventHubBufferedProducerClient en su lugar.

En el ejemplo siguiente se supone que tiene una matriz de eventos que se van a procesar por lotes de forma segura. Si tiene eventos que vienen en uno por uno, se recomienda EventHubBufferedProducerClient en lugar de para una administración eficaz de lotes.

Uso de ejemplo:

const client = new EventHubProducerClient(connectionString);
let batch = await client.createBatch();
for (let i = 0; i < messages.length; i++) {
 if (!batch.tryAdd(messages[i])) {
   await client.sendBatch(batch);
   batch = await client.createBatch();
   if (!batch.tryAdd(messages[i])) {
     throw new Error("Message too big to fit")
   }
   if (i === messages.length - 1) {
     await client.sendBatch(batch);
   }
  }
}
getEventHubProperties(GetEventHubPropertiesOptions)

Proporciona la información del entorno de ejecución del centro de eventos.

getPartitionIds(GetPartitionIdsOptions)

Proporciona el identificador de cada partición asociada al centro de eventos.

getPartitionProperties(string, GetPartitionPropertiesOptions)

Proporciona información sobre el estado de la partición especificada.

sendBatch(EventDataBatch, OperationOptions)

Envía un lote de eventos creados mediante EventHubProducerClient.createBatch() al centro de eventos asociado.

Los eventos con valores diferentes para partitionKey o partitionId deberán colocarse en diferentes lotes. Para simplificar dicha administración por lotes entre particiones o para que el cliente realice automáticamente eventos por lotes y enviarlos en intervalos específicos, use EventHubBufferedProducerClient en su lugar.

En el ejemplo siguiente se supone que tiene una matriz de eventos que se van a procesar por lotes de forma segura. Si tiene eventos que vienen en uno por uno, se recomienda EventHubBufferedProducerClient en lugar de para una administración eficaz de lotes.

Uso de ejemplo:

const client = new EventHubProducerClient(connectionString);
let batch = await client.createBatch();
for (let i = 0; i < messages.length; i++) {
 if (!batch.tryAdd(messages[i])) {
   await client.sendBatch(batch);
   batch = await client.createBatch();
   if (!batch.tryAdd(messages[i])) {
     throw new Error("Message too big to fit")
   }
   if (i === messages.length - 1) {
     await client.sendBatch(batch);
   }
  }
}
sendBatch(EventData[] | AmqpAnnotatedMessage[], SendBatchOptions)

Envía una matriz de eventos como un lote al centro de eventos asociado.

Azure Event Hubs tiene un límite en el tamaño del lote que se puede enviar que, si se supera, producirá un error con el código MessageTooLargeError. Para enviar de forma segura dentro de los límites de tamaño de lote, use EventHubProducerClient.createBatch() o EventHubBufferedProducerClient en su lugar.

Uso de ejemplo:

const client = new EventHubProducerClient(connectionString);
await client.sendBatch(messages);

Detalles del constructor

EventHubProducerClient(string, EventHubClientOptions)

La clase EventHubProducerClient se usa para enviar eventos a un centro de eventos. Use el options parmeter para configurar la directiva de reintento o la configuración de proxy.

new EventHubProducerClient(connectionString: string, options?: EventHubClientOptions)

Parámetros

connectionString

string

Cadena de conexión que se va a usar para conectarse a la instancia del centro de eventos. Se espera que las propiedades de clave compartida y la ruta de acceso del centro de eventos estén contenidas en esta cadena de conexión. Por ejemplo, 'Endpoint=sb://my-servicebus-namespace.servicebus.windows.net/; SharedAccessKeyName=my-SA-name; SharedAccessKey=my-SA-key; EntityPath=my-event-hub-name'.

options
EventHubClientOptions

Conjunto de opciones que se aplicarán al configurar el cliente.

  • retryOptions : configura la directiva de reintento para todas las operaciones del cliente. Por ejemplo, { "maxRetries": 4 } o { "maxRetries": 4, "retryDelayInMs": 30000 }.
  • webSocketOptions: configura el canalización de la conexión AMQP a través de sockets web.
  • userAgent : una cadena que se va a anexar a la cadena del agente de usuario integrada que se pasa al servicio.

EventHubProducerClient(string, string, EventHubClientOptions)

La clase EventHubProducerClient se usa para enviar eventos a un centro de eventos. Use el options parmeter para configurar la directiva de reintento o la configuración de proxy.

new EventHubProducerClient(connectionString: string, eventHubName: string, options?: EventHubClientOptions)

Parámetros

connectionString

string

Cadena de conexión que se va a usar para conectarse al espacio de nombres de Event Hubs. Se espera que las propiedades de clave compartida estén contenidas en esta cadena de conexión, pero no en la ruta de acceso del centro de eventos, por ejemplo, "Endpoint=sb://my-servicebus-namespace.servicebus.windows.net/; SharedAccessKeyName=my-SA-name; SharedAccessKey=my-SA-key;'.

eventHubName

string

Nombre del centro de eventos específico al que se va a conectar el cliente.

options
EventHubClientOptions

Conjunto de opciones que se aplicarán al configurar el cliente.

  • retryOptions : configura la directiva de reintento para todas las operaciones del cliente. Por ejemplo, { "maxRetries": 4 } o { "maxRetries": 4, "retryDelayInMs": 30000 }.
  • webSocketOptions: configura el canalización de la conexión AMQP a través de sockets web.
  • userAgent : una cadena que se va a anexar a la cadena del agente de usuario integrada que se pasa al servicio.

EventHubProducerClient(string, string, TokenCredential | NamedKeyCredential | SASCredential, EventHubClientOptions)

La clase EventHubProducerClient se usa para enviar eventos a un centro de eventos. Use el options parmeter para configurar la directiva de reintento o la configuración de proxy.

new EventHubProducerClient(fullyQualifiedNamespace: string, eventHubName: string, credential: TokenCredential | NamedKeyCredential | SASCredential, options?: EventHubClientOptions)

Parámetros

fullyQualifiedNamespace

string

Espacio de nombres completo que es probable que sea similar a .servicebus.windows.net

eventHubName

string

Nombre del centro de eventos específico al que se va a conectar el cliente.

credential

TokenCredential | NamedKeyCredential | SASCredential

Objeto de credencial que usa el cliente para obtener el token para autenticar la conexión con el servicio Azure Event Hubs. Consulte @azure/identity para crear credenciales que admitan la autenticación de AAD. Use el AzureNamedKeyCredential de @azure/core-auth si desea pasar una SharedAccessKeyName y SharedAccessKey sin usar una cadena de conexión. Estos campos se asignan al campo name y key respectivamente en AzureNamedKeyCredential. Use el AzureSASCredential de @azure/core-auth si desea pasar una SharedAccessSignature sin usar una cadena de conexión. Este campo se asigna a signature en AzureSASCredential.

options
EventHubClientOptions

Conjunto de opciones que se aplicarán al configurar el cliente.

  • retryOptions : configura la directiva de reintento para todas las operaciones del cliente. Por ejemplo, { "maxRetries": 4 } o { "maxRetries": 4, "retryDelayInMs": 30000 }.
  • webSocketOptions: configura el canalización de la conexión AMQP a través de sockets web.
  • userAgent : una cadena que se va a anexar a la cadena del agente de usuario integrada que se pasa al servicio.

Detalles de las propiedades

eventHubName

Nombre de la instancia del centro de eventos para la que se crea este cliente.

string eventHubName

Valor de propiedad

string

fullyQualifiedNamespace

Espacio de nombres completo de la instancia del centro de eventos para la que se crea este cliente. Esto es probable que sea similar a .servicebus.windows.net.

string fullyQualifiedNamespace

Valor de propiedad

string

identifier

Nombre que se usa para identificar este EventHubProducerClient. Si no se especifica o está vacío, se generará uno único aleatorio.

identifier: string

Valor de propiedad

string

Detalles del método

close()

Cierra la conexión AMQP a la instancia del centro de eventos y devuelve una promesa que se resolverá cuando se complete la desconexión.

function close(): Promise<void>

Devoluciones

Promise<void>

Prometer

createBatch(CreateBatchOptions)

Crea una instancia de EventDataBatch a la que se pueden agregar eventos hasta que se alcanza el tamaño máximo admitido. El lote se puede pasar al método sendBatch del EventHubProducerClient que se enviará a Azure Event Hubs.

Los eventos con valores diferentes para partitionKey o partitionId deberán colocarse en diferentes lotes. Para simplificar dicha administración por lotes entre particiones o para que el cliente realice automáticamente eventos por lotes y enviarlos en intervalos específicos, use EventHubBufferedProducerClient en su lugar.

En el ejemplo siguiente se supone que tiene una matriz de eventos que se van a procesar por lotes de forma segura. Si tiene eventos que vienen en uno por uno, se recomienda EventHubBufferedProducerClient en lugar de para una administración eficaz de lotes.

Uso de ejemplo:

const client = new EventHubProducerClient(connectionString);
let batch = await client.createBatch();
for (let i = 0; i < messages.length; i++) {
 if (!batch.tryAdd(messages[i])) {
   await client.sendBatch(batch);
   batch = await client.createBatch();
   if (!batch.tryAdd(messages[i])) {
     throw new Error("Message too big to fit")
   }
   if (i === messages.length - 1) {
     await client.sendBatch(batch);
   }
  }
}
function createBatch(options?: CreateBatchOptions): Promise<EventDataBatch>

Parámetros

options
CreateBatchOptions

Configura el comportamiento del lote.

  • partitionKey: valor hash y que usa el servicio Azure Event Hubs para determinar la partición a la que se deben enviar los eventos.
  • partitionId: identificador de la partición a la que se debe enviar el lote de eventos.
  • maxSizeInBytes: límite superior del tamaño del lote. La función tryAdd devolverá false después de alcanzar este límite.
  • abortSignal : una señal de la solicitud para cancelar la operación.

Devoluciones

Promise<EventDataBatch>

Prometer

getEventHubProperties(GetEventHubPropertiesOptions)

Proporciona la información del entorno de ejecución del centro de eventos.

function getEventHubProperties(options?: GetEventHubPropertiesOptions): Promise<EventHubProperties>

Parámetros

options
GetEventHubPropertiesOptions

Conjunto de opciones que se aplicarán a la llamada a la operación.

Devoluciones

Promesa que se resuelve con información sobre la instancia del centro de eventos.

getPartitionIds(GetPartitionIdsOptions)

Proporciona el identificador de cada partición asociada al centro de eventos.

function getPartitionIds(options?: GetPartitionIdsOptions): Promise<string[]>

Parámetros

options
GetPartitionIdsOptions

Conjunto de opciones que se aplicarán a la llamada a la operación.

Devoluciones

Promise<string[]>

Promesa que se resuelve con una matriz de cadenas que representa el identificador de cada partición asociada al centro de eventos.

getPartitionProperties(string, GetPartitionPropertiesOptions)

Proporciona información sobre el estado de la partición especificada.

function getPartitionProperties(partitionId: string, options?: GetPartitionPropertiesOptions): Promise<PartitionProperties>

Parámetros

partitionId

string

Identificador de la partición para la que se requiere información.

options
GetPartitionPropertiesOptions

Conjunto de opciones que se aplicarán a la llamada a la operación.

Devoluciones

Promesa que se resuelve con información sobre el estado de la partición .

sendBatch(EventDataBatch, OperationOptions)

Envía un lote de eventos creados mediante EventHubProducerClient.createBatch() al centro de eventos asociado.

Los eventos con valores diferentes para partitionKey o partitionId deberán colocarse en diferentes lotes. Para simplificar dicha administración por lotes entre particiones o para que el cliente realice automáticamente eventos por lotes y enviarlos en intervalos específicos, use EventHubBufferedProducerClient en su lugar.

En el ejemplo siguiente se supone que tiene una matriz de eventos que se van a procesar por lotes de forma segura. Si tiene eventos que vienen en uno por uno, se recomienda EventHubBufferedProducerClient en lugar de para una administración eficaz de lotes.

Uso de ejemplo:

const client = new EventHubProducerClient(connectionString);
let batch = await client.createBatch();
for (let i = 0; i < messages.length; i++) {
 if (!batch.tryAdd(messages[i])) {
   await client.sendBatch(batch);
   batch = await client.createBatch();
   if (!batch.tryAdd(messages[i])) {
     throw new Error("Message too big to fit")
   }
   if (i === messages.length - 1) {
     await client.sendBatch(batch);
   }
  }
}
function sendBatch(batch: EventDataBatch, options?: OperationOptions): Promise<void>

Parámetros

batch
EventDataBatch

Un lote de eventos que puede crear mediante el método createBatch .

options
OperationOptions

Conjunto de opciones que se pueden especificar para influir en la forma en que los eventos se envían al centro de eventos asociado.

  • abortSignal : una señal de la solicitud para cancelar la operación de envío.

Devoluciones

Promise<void>

Prometer

sendBatch(EventData[] | AmqpAnnotatedMessage[], SendBatchOptions)

Envía una matriz de eventos como un lote al centro de eventos asociado.

Azure Event Hubs tiene un límite en el tamaño del lote que se puede enviar que, si se supera, producirá un error con el código MessageTooLargeError. Para enviar de forma segura dentro de los límites de tamaño de lote, use EventHubProducerClient.createBatch() o EventHubBufferedProducerClient en su lugar.

Uso de ejemplo:

const client = new EventHubProducerClient(connectionString);
await client.sendBatch(messages);
function sendBatch(batch: EventData[] | AmqpAnnotatedMessage[], options?: SendBatchOptions): Promise<void>

Parámetros

batch

EventData[] | AmqpAnnotatedMessage[]

Matriz de EventData o AmqpAnnotatedMessage.

options
SendBatchOptions

Conjunto de opciones que se pueden especificar para influir en la forma en que los eventos se envían al centro de eventos asociado.

  • abortSignal : una señal de la solicitud para cancelar la operación de envío.
  • partitionId : la partición a la que se enviará este lote. Si se establece, no se puede establecer partitionKey.
  • partitionKey: valor hash para generar una asignación de partición. Si se establece, no se puede establecer partitionId.

Devoluciones

Promise<void>

Prometer