Partilhar via


EventHubProducerClient class

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

Existem várias formas de criar um EventHubProducerClient

  • Utilize a cadeia de ligação da política SAS criada para a instância do Hub de Eventos.
  • Utilize a cadeia de ligação da política SAS criada para o espaço de nomes do Hub de Eventos e o nome da instância do Hub de Eventos
  • Utilize o espaço de nomes completo, como <yournamespace>.servicebus.windows.net, e um objeto de credenciais.

Opcionalmente, também pode passar um saco de opções para configurar a política de repetição ou as definições de proxy.

Construtores

EventHubProducerClient(string, EventHubClientOptions)

A EventHubProducerClient classe é utilizada para enviar eventos para um Hub de Eventos. Utilize o options parmeter para configurar a política de repetição ou as definições de proxy.

EventHubProducerClient(string, string, EventHubClientOptions)

A EventHubProducerClient classe é utilizada para enviar eventos para um Hub de Eventos. Utilize o options parmeter para configurar a política de repetição ou as definições de proxy.

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

A EventHubProducerClient classe é utilizada para enviar eventos para um Hub de Eventos. Utilize o options parmeter para configurar a política de repetição ou as definições de proxy.

Propriedades

eventHubName

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

fullyQualifiedNamespace

O espaço de nomes completamente qualificado da instância do Hub de Eventos para a qual este cliente é criado. É provável que seja semelhante a .servicebus.windows.net.

identifier

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

Métodos

close()

Fecha a ligação AMQP à instância do Hub de Eventos, devolvendo uma promessa que será resolvida quando a interrupção da ligação for concluída.

createBatch(CreateBatchOptions)

Cria uma instância da EventDataBatch qual se pode adicionar eventos até atingir o tamanho máximo suportado. O lote pode ser transmitido para o método sendBatch do EventHubProducerClient a ser enviado para Hubs de Eventos do Azure.

Os eventos com valores diferentes para partitionKey ou partitionId terão de ser colocados em diferentes lotes. Para simplificar essa gestão de lotes entre partições ou para que o cliente crie automaticamente eventos em lote e os envie em intervalos específicos, utilize EventHubBufferedProducerClient em alternativa.

O exemplo abaixo pressupõe que tem à mão uma matriz de eventos para serem agrupados em segurança. Se tiver eventos a chegar um a um, recomenda-se, em vez disso, EventHubBufferedProducerClient uma gestão eficiente de lotes.

Utilização de exemplo:

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 o 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 com EventHubProducerClient.createBatch() para o Hub de Eventos associado.

Os eventos com valores diferentes para partitionKey ou partitionId terão de ser colocados em diferentes lotes. Para simplificar essa gestão de lotes entre partições ou para que o cliente crie automaticamente eventos em lote e os envie em intervalos específicos, utilize EventHubBufferedProducerClient em alternativa.

O exemplo abaixo pressupõe que tem à mão uma matriz de eventos para serem agrupados em segurança. Se tiver eventos a chegar um a um, recomenda-se, em vez disso, EventHubBufferedProducerClient uma gestão eficiente de lotes.

Utilização de exemplo:

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 for excedido, resultará num erro com o código MessageTooLargeError. Para enviar com segurança dentro dos limites de tamanho do lote, utilize EventHubProducerClient.createBatch() ou EventHubBufferedProducerClient em alternativa.

Utilização de exemplo:

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

Detalhes do Construtor

EventHubProducerClient(string, EventHubClientOptions)

A EventHubProducerClient classe é utilizada para enviar eventos para um Hub de Eventos. Utilize o options parmeter para configurar a política de repetição ou as definições de proxy.

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

Parâmetros

connectionString

string

A cadeia de ligação a utilizar para ligar à instância do Hub de Eventos. Espera-se que as propriedades da chave partilhada e o caminho do Hub de Eventos estejam contidos nesta cadeia de ligaçã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 aplicar 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 ligação AMQP através de Sockets Web.
  • userAgent : uma cadeia para acrescentar à cadeia de agente de utilizador incorporada que é transmitida ao serviço.

EventHubProducerClient(string, string, EventHubClientOptions)

A EventHubProducerClient classe é utilizada para enviar eventos para um Hub de Eventos. Utilize o options parmeter para configurar a política de repetição ou as definições de proxy.

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

Parâmetros

connectionString

string

A cadeia de ligação a utilizar para ligar ao espaço de nomes dos Hubs de Eventos. Espera-se que as propriedades da chave partilhada estejam contidas nesta cadeia de ligação, mas não o 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 ligar o cliente.

options
EventHubClientOptions

Um conjunto de opções a aplicar 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 ligação AMQP através de Sockets Web.
  • userAgent : uma cadeia para acrescentar à cadeia de agente de utilizador incorporada que é transmitida ao serviço.

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

A EventHubProducerClient classe é utilizada para enviar eventos para um Hub de Eventos. Utilize o options parmeter para configurar a política de repetição ou as definições de proxy.

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

Parâmetros

fullyQualifiedNamespace

string

O espaço de nomes completo que provavelmente será semelhante a .servicebus.windows.net

eventHubName

string

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

credential

TokenCredential | NamedKeyCredential | SASCredential

Um objeto de credencial utilizado pelo cliente para obter o token para autenticar a ligação com o serviço Hubs de Eventos do Azure. Veja @azure/identidade para criar credenciais que suportem a autenticação do AAD. Utilize a AzureNamedKeyCredential de @azure/core-auth se quiser transmitir um SharedAccessKeyName e SharedAccessKey sem utilizar uma cadeia de ligação. Estes campos mapeiam para o name campo e key , respetivamente, em AzureNamedKeyCredential. Utilize a AzureSASCredential de @azure/core-auth se pretender transmitir um SharedAccessSignature sem utilizar uma cadeia de ligação. Este campo mapeia para signature no AzureSASCredential.

options
EventHubClientOptions

Um conjunto de opções a aplicar 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 ligação AMQP através de Sockets Web.
  • userAgent : uma cadeia para acrescentar à cadeia de agente de utilizador incorporada que é transmitida ao serviço.

Detalhes de Propriedade

eventHubName

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

string eventHubName

Valor de Propriedade

string

fullyQualifiedNamespace

O espaço de nomes completamente qualificado da instância do Hub de Eventos para a qual este cliente é criado. É provável que seja semelhante a .servicebus.windows.net.

string fullyQualifiedNamespace

Valor de Propriedade

string

identifier

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

identifier: string

Valor de Propriedade

string

Detalhes de Método

close()

Fecha a ligação AMQP à instância do Hub de Eventos, devolvendo uma promessa que será resolvida quando a interrupção da ligação for concluída.

function close(): Promise<void>

Devoluções

Promise<void>

Promessa

createBatch(CreateBatchOptions)

Cria uma instância da EventDataBatch qual se pode adicionar eventos até atingir o tamanho máximo suportado. O lote pode ser transmitido para o método sendBatch do EventHubProducerClient a ser enviado para Hubs de Eventos do Azure.

Os eventos com valores diferentes para partitionKey ou partitionId terão de ser colocados em diferentes lotes. Para simplificar essa gestão de lotes entre partições ou para que o cliente crie automaticamente eventos em lote e os envie em intervalos específicos, utilize EventHubBufferedProducerClient em alternativa.

O exemplo abaixo pressupõe que tem à mão uma matriz de eventos para serem agrupados em segurança. Se tiver eventos a chegar um a um, recomenda-se, em vez disso, EventHubBufferedProducerClient uma gestão eficiente de lotes.

Utilização de exemplo:

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 utilizado pelo serviço Hubs de Eventos do Azure para determinar a partição para a qual os eventos têm de ser enviados.
  • partitionId : ID da partição para a qual o lote de eventos tem de ser enviado.
  • maxSizeInBytes: o limite superior para o tamanho do lote. A tryAdd função será devolvida false depois de este limite ser atingido.
  • abortSignal : um sinal do pedido para cancelar a operação.

Devoluções

Promise<EventDataBatch>

Promessa

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 aplicar à chamada de operação.

Devoluções

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

getPartitionIds(GetPartitionIdsOptions)

Fornece o 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 aplicar à chamada de operação.

Devoluções

Promise<string[]>

Uma promessa que é resolvida com uma Matriz de cadeias que representa o 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

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

options
GetPartitionPropertiesOptions

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

Devoluções

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

sendBatch(EventDataBatch, OperationOptions)

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

Os eventos com valores diferentes para partitionKey ou partitionId terão de ser colocados em diferentes lotes. Para simplificar essa gestão de lotes entre partições ou para que o cliente crie automaticamente eventos em lote e os envie em intervalos específicos, utilize EventHubBufferedProducerClient em alternativa.

O exemplo abaixo pressupõe que tem à mão uma matriz de eventos para serem agrupados em segurança. Se tiver eventos a chegar um a um, recomenda-se, em vez disso, EventHubBufferedProducerClient uma gestão eficiente de lotes.

Utilização de exemplo:

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 pode criar com o método createBatch .

options
OperationOptions

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

  • abortSignal : um sinal do pedido para cancelar a operação de envio.

Devoluções

Promise<void>

Promessa

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 for excedido, resultará num erro com o código MessageTooLargeError. Para enviar com segurança dentro dos limites de tamanho do lote, utilize EventHubProducerClient.createBatch() ou EventHubBufferedProducerClient em alternativa.

Utilização de exemplo:

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 forma como os eventos são enviados para o Hub de Eventos associado.

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

Devoluções

Promise<void>

Promessa