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.net
e 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
Event |
A |
Event |
A |
Event |
A |
Propriedades
event |
O nome da instância do Hub de Eventos para a qual esse cliente é criado. |
fully |
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. |
create |
Cria uma instância da 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 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, Exemplo de uso:
|
get |
Fornece as informações de runtime do Hub de Eventos. |
get |
Fornece a ID para cada partição associada ao Hub de Eventos. |
get |
Fornece informações sobre o estado da partição especificada. |
send |
Envia um lote de eventos criados usando 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 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, Exemplo de uso:
|
send |
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 Exemplo de uso:
|
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
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. AtryAdd
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
Promise<EventHubProperties>
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
Promise<PartitionProperties>
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
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