Compartilhar via


EventHubProducerClient class

A EventHubProducerClient classe é usada para enviar eventos para um Hub de Eventos.

Há várias maneiras de criar um EventHubProducerClient

  • Use a cadeia de conexão da política SAS criada para sua instância do Hub de Eventos.
  • Use a cadeia de conexão da política SAS criada para o namespace do Hub de Eventos e o nome da instância do Hub de Eventos
  • Use o namespace completo, como <yournamespace>.servicebus.windows.nete um objeto de credenciais.

Opcionalmente, você também pode passar um pacote de opções para definir a política de repetição ou as configurações de proxy.

Construtores

EventHubProducerClient(string, EventHubClientOptions)

A EventHubProducerClient classe é usada para enviar eventos para um Hub de Eventos. Use o options parmeter para definir a política de repetição ou as configurações de proxy.

EventHubProducerClient(string, string, EventHubClientOptions)

A EventHubProducerClient classe é usada para enviar eventos para um Hub de Eventos. Use o options parmeter para definir a política de repetição ou as configurações de proxy.

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

A EventHubProducerClient classe é usada para enviar eventos para um Hub de Eventos. Use o options parmeter para definir a política de repetição ou as configurações de proxy.

Propriedades

eventHubName

O nome da instância do Hub de Eventos para a qual esse cliente é criado.

fullyQualifiedNamespace

O namespace totalmente qualificado da instância do Hub de Eventos para a qual esse cliente é criado. É provável que isso seja semelhante a .servicebus.windows.net.

identifier

O nome usado para identificar este EventHubProducerClient. Se não for especificado ou vazio, um aleatório exclusivo será gerado.

Métodos

close()

Fecha a conexão AMQP com a instância do Hub de Eventos, retornando uma promessa que será resolvida quando a desconexão for concluída.

createBatch(CreateBatchOptions)

Cria uma instância da EventDataBatch à qual é possível adicionar eventos até que o tamanho máximo com suporte seja atingido. O lote pode ser passado para o método sendBatch do EventHubProducerClient a ser enviado para Hubs de Eventos do Azure.

Eventos com valores diferentes para partitionKey ou partitionId precisarão ser colocados em lotes diferentes. Para simplificar esse gerenciamento em lotes entre partições ou ter o cliente automaticamente em lotes de eventos e enviá-los em intervalos específicos, use EventHubBufferedProducerClient em vez disso.

O exemplo abaixo pressupõe que você tenha uma matriz de eventos em mãos para serem agrupados em lote com segurança. Se você tiver eventos chegando um a um, é recomendável, em vez disso, EventHubBufferedProducerClient para um gerenciamento eficiente de lotes.

Exemplo de uso:

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)

Fornece as informações de runtime do Hub de Eventos.

getPartitionIds(GetPartitionIdsOptions)

Fornece a ID para cada partição associada ao Hub de Eventos.

getPartitionProperties(string, GetPartitionPropertiesOptions)

Fornece informações sobre o estado da partição especificada.

sendBatch(EventDataBatch, OperationOptions)

Envia um lote de eventos criados usando EventHubProducerClient.createBatch() para o Hub de Eventos associado.

Eventos com valores diferentes para partitionKey ou partitionId precisarão ser colocados em lotes diferentes. Para simplificar esse gerenciamento em lotes entre partições ou ter o cliente automaticamente em lotes de eventos e enviá-los em intervalos específicos, use EventHubBufferedProducerClient em vez disso.

O exemplo abaixo pressupõe que você tenha uma matriz de eventos em mãos para serem agrupados em lote com segurança. Se você tiver eventos chegando um a um, é recomendável, em vez disso, EventHubBufferedProducerClient para um gerenciamento eficiente de lotes.

Exemplo de uso:

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)

Envia uma matriz de eventos como um lote para o Hub de Eventos associado.

Hubs de Eventos do Azure tem um limite no tamanho do lote que pode ser enviado, o que, se excedido, resultará em um erro com o código MessageTooLargeError. Para enviar com segurança dentro dos limites de tamanho do lote, use EventHubProducerClient.createBatch() ou EventHubBufferedProducerClient em vez disso.

Exemplo de uso:

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

Detalhes do construtor

EventHubProducerClient(string, EventHubClientOptions)

A EventHubProducerClient classe é usada para enviar eventos para um Hub de Eventos. Use o options parmeter para definir a política de repetição ou as configurações de proxy.

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

Parâmetros

connectionString

string

A cadeia de conexão a ser usada para se conectar à instância do Hub de Eventos. Espera-se que as propriedades de chave compartilhada e o caminho do Hub de Eventos estejam contidos nessa cadeia de conexão. por exemplo, 'Endpoint=sb://my-servicebus-namespace.servicebus.windows.net/;SharedAccessKeyName=my-SA-name; SharedAccessKey=my-SA-key; EntityPath=my-event-hub-name'.

options
EventHubClientOptions

Um conjunto de opções a serem aplicadas ao configurar o cliente.

  • retryOptions : configura a política de repetição para todas as operações no cliente. Por exemplo, { "maxRetries": 4 } ou { "maxRetries": 4, "retryDelayInMs": 30000 }.
  • webSocketOptions: configura a canalização da conexão AMQP por meio de Web Sockets.
  • userAgent : uma cadeia de caracteres a ser acrescentada à cadeia de caracteres interna do agente do usuário que é passada para o serviço.

EventHubProducerClient(string, string, EventHubClientOptions)

A EventHubProducerClient classe é usada para enviar eventos para um Hub de Eventos. Use o options parmeter para definir a política de repetição ou as configurações de proxy.

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

Parâmetros

connectionString

string

A cadeia de conexão a ser usada para se conectar ao namespace dos Hubs de Eventos. Espera-se que as propriedades de chave compartilhada estejam contidas nessa cadeia de conexão, mas não no caminho do Hub de Eventos, por exemplo, 'Endpoint=sb://my-servicebus-namespace.servicebus.windows.net/;SharedAccessKeyName=my-SA-name; SharedAccessKey=my-SA-key;'.

eventHubName

string

O nome do Hub de Eventos específico ao qual conectar o cliente.

options
EventHubClientOptions

Um conjunto de opções a serem aplicadas ao configurar o cliente.

  • retryOptions : configura a política de repetição para todas as operações no cliente. Por exemplo, { "maxRetries": 4 } ou { "maxRetries": 4, "retryDelayInMs": 30000 }.
  • webSocketOptions: configura a canalização da conexão AMQP por meio de Web Sockets.
  • userAgent : uma cadeia de caracteres a ser acrescentada à cadeia de caracteres interna do agente do usuário que é passada para o serviço.

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

A EventHubProducerClient classe é usada para enviar eventos para um Hub de Eventos. Use o options parmeter para definir a política de repetição ou as configurações de proxy.

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

Parâmetros

fullyQualifiedNamespace

string

O namespace completo que provavelmente será semelhante a .servicebus.windows.net

eventHubName

string

O nome do Hub de Eventos específico ao qual conectar o cliente.

credential

TokenCredential | NamedKeyCredential | SASCredential

Um objeto de credencial usado pelo cliente para obter o token para autenticar a conexão com o serviço Hubs de Eventos do Azure. Consulte @azure/identity para criar credenciais que dão suporte à autenticação do AAD. Use o AzureNamedKeyCredential de @azure/core-auth se você quiser passar um SharedAccessKeyName e SharedAccessKey sem usar uma cadeia de conexão. Esses campos são mapeados para o name campo e key , respectivamente, em AzureNamedKeyCredential. Use o AzureSASCredential de @azure/core-auth se quiser passar um SharedAccessSignature sem usar uma cadeia de conexão. Esse campo é mapeado para signature em AzureSASCredential.

options
EventHubClientOptions

Um conjunto de opções a serem aplicadas ao configurar o cliente.

  • retryOptions : configura a política de repetição para todas as operações no cliente. Por exemplo, { "maxRetries": 4 } ou { "maxRetries": 4, "retryDelayInMs": 30000 }.
  • webSocketOptions: configura a canalização da conexão AMQP por meio de Web Sockets.
  • userAgent : uma cadeia de caracteres a ser acrescentada à cadeia de caracteres interna do agente de usuário que é passada para o serviço.

Detalhes da propriedade

eventHubName

O nome da instância do Hub de Eventos para a qual esse cliente é criado.

string eventHubName

Valor da propriedade

string

fullyQualifiedNamespace

O namespace totalmente qualificado da instância do Hub de Eventos para a qual esse cliente é criado. É provável que isso seja semelhante a .servicebus.windows.net.

string fullyQualifiedNamespace

Valor da propriedade

string

identifier

O nome usado para identificar este EventHubProducerClient. Se não for especificado ou vazio, um aleatório exclusivo será gerado.

identifier: string

Valor da propriedade

string

Detalhes do método

close()

Fecha a conexão AMQP com a instância do Hub de Eventos, retornando uma promessa que será resolvida quando a desconexão for concluída.

function close(): Promise<void>

Retornos

Promise<void>

Prometo

createBatch(CreateBatchOptions)

Cria uma instância da EventDataBatch à qual é possível adicionar eventos até que o tamanho máximo com suporte seja atingido. O lote pode ser passado para o método sendBatch do EventHubProducerClient a ser enviado para Hubs de Eventos do Azure.

Eventos com valores diferentes para partitionKey ou partitionId precisarão ser colocados em lotes diferentes. Para simplificar esse gerenciamento em lotes entre partições ou ter o cliente automaticamente em lotes de eventos e enviá-los em intervalos específicos, use EventHubBufferedProducerClient em vez disso.

O exemplo abaixo pressupõe que você tenha uma matriz de eventos em mãos para serem agrupados em lote com segurança. Se você tiver eventos chegando um a um, é recomendável, em vez disso, EventHubBufferedProducerClient para um gerenciamento eficiente de lotes.

Exemplo de uso:

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 o comportamento do lote.

  • partitionKey: um valor que é hash e usado pelo serviço Hubs de Eventos do Azure para determinar a partição para a qual os eventos precisam ser enviados.
  • partitionId : Id da partição para a qual o lote de eventos precisa ser enviado.
  • maxSizeInBytes: o limite superior para o tamanho do lote. A tryAdd função retornará false depois que esse limite for atingido.
  • abortSignal : um sinal da solicitação para cancelar a operação.

Retornos

Promise<EventDataBatch>

Prometo

getEventHubProperties(GetEventHubPropertiesOptions)

Fornece as informações de runtime do Hub de Eventos.

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

Parâmetros

options
GetEventHubPropertiesOptions

O conjunto de opções a serem aplicadas à chamada de operação.

Retornos

Uma promessa que é resolvida com informações sobre a instância do Hub de Eventos.

getPartitionIds(GetPartitionIdsOptions)

Fornece a ID para cada partição associada ao Hub de Eventos.

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

Parâmetros

options
GetPartitionIdsOptions

O conjunto de opções a serem aplicadas à chamada de operação.

Retornos

Promise<string[]>

Uma promessa que é resolvida com uma Matriz de cadeias de caracteres que representa a ID de cada partição associada ao Hub de Eventos.

getPartitionProperties(string, GetPartitionPropertiesOptions)

Fornece informações sobre o estado da partição especificada.

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

Parâmetros

partitionId

string

A ID da partição para a qual as informações são necessárias.

options
GetPartitionPropertiesOptions

O conjunto de opções a serem aplicadas à chamada de operação.

Retornos

Uma promessa que é resolvida com informações sobre o estado da partição .

sendBatch(EventDataBatch, OperationOptions)

Envia um lote de eventos criados usando EventHubProducerClient.createBatch() para o Hub de Eventos associado.

Eventos com valores diferentes para partitionKey ou partitionId precisarão ser colocados em lotes diferentes. Para simplificar esse gerenciamento em lotes entre partições ou ter o cliente automaticamente em lotes de eventos e enviá-los em intervalos específicos, use EventHubBufferedProducerClient em vez disso.

O exemplo abaixo pressupõe que você tenha uma matriz de eventos em mãos para serem agrupados em lote com segurança. Se você tiver eventos chegando um a um, é recomendável, em vez disso, EventHubBufferedProducerClient para um gerenciamento eficiente de lotes.

Exemplo de uso:

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

Um lote de eventos que você pode criar usando o método createBatch .

options
OperationOptions

Um conjunto de opções que podem ser especificadas para influenciar a maneira como os eventos são enviados para o Hub de Eventos associado.

  • abortSignal : um sinal da solicitação para cancelar a operação de envio.

Retornos

Promise<void>

Prometo

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

Envia uma matriz de eventos como um lote para o Hub de Eventos associado.

Hubs de Eventos do Azure tem um limite no tamanho do lote que pode ser enviado, o que, se excedido, resultará em um erro com o código MessageTooLargeError. Para enviar com segurança dentro dos limites de tamanho do lote, use EventHubProducerClient.createBatch() ou EventHubBufferedProducerClient em vez disso.

Exemplo de uso:

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

Parâmetros

batch

EventData[] | AmqpAnnotatedMessage[]

Uma matriz de EventData ou AmqpAnnotatedMessage.

options
SendBatchOptions

Um conjunto de opções que podem ser especificadas para influenciar a maneira como os eventos são enviados para o Hub de Eventos associado.

  • abortSignal : um sinal da solicitação para cancelar a operação de envio.
  • partitionId : a partição para a qual este lote será enviado. Se definido, partitionKey não poderá ser definido.
  • partitionKey : um valor que é hash para produzir uma atribuição de partição. Se definido, partitionId não poderá ser definido.

Retornos

Promise<void>

Prometo