EventHubProducerClient class
A classe EventHubProducerClient
é 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 recipiente de opções para definir a política de repetição ou as configurações de proxy.
Construtores
Event |
A classe |
Event |
A classe |
Event |
A classe |
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 de 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 a seguir 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, Uso de exemplo:
|
get |
Fornece as informações de runtime do Hub de Eventos. |
get |
Fornece a ID de 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 a seguir 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, Uso de exemplo:
|
send |
Envia uma matriz de eventos como um lote para o Hub de Eventos associado. Os Hubs de Eventos do Azure têm um limite no tamanho do lote que pode ser enviado, o que, se excedido, resultará em um erro com o código Uso de exemplo:
|
Detalhes do construtor
EventHubProducerClient(string, EventHubClientOptions)
A classe EventHubProducerClient
é 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 Soquetes web. -
userAgent
: uma cadeia de caracteres a ser acrescentada à cadeia de caracteres interna do agente de usuário que é passada para o serviço.
EventHubProducerClient(string, string, EventHubClientOptions)
A classe EventHubProducerClient
é 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 Soquetes web. -
userAgent
: uma cadeia de caracteres a ser acrescentada à cadeia de caracteres interna do agente de usuário que é passada para o serviço.
EventHubProducerClient(string, string, TokenCredential | NamedKeyCredential | SASCredential, EventHubClientOptions)
A classe EventHubProducerClient
é 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/identidade para criar credenciais que dão suporte à autenticação do AAD. Use o AzureNamedKeyCredential
de @azure/core-auth se quiser passar um SharedAccessKeyName
e SharedAccessKey
sem usar uma cadeia de conexão. Esses campos são mapeados para o campo name
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 Soquetes web. -
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>
Prometer
createBatch(CreateBatchOptions)
Cria uma instância de 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 aos 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 a seguir 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, EventHubBufferedProducerClient
será recomendável, em vez disso, para um gerenciamento eficiente de lotes.
Uso 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 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 funçãotryAdd
retornaráfalse
depois que esse limite for atingido. -
abortSignal
: um sinal da solicitação para cancelar a operação.
Retornos
Promise<EventDataBatch>
Prometer
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 de 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 a seguir 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, EventHubBufferedProducerClient
será recomendável, em vez disso, para um gerenciamento eficiente de lotes.
Uso 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 você pode criar usando o método createBatch.
- options
- OperationOptions
Um conjunto de opções que pode ser especificado 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>
Prometer
sendBatch(EventData[] | AmqpAnnotatedMessage[], SendBatchOptions)
Envia uma matriz de eventos como um lote para o Hub de Eventos associado.
Os Hubs de Eventos do Azure têm 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.
Uso de exemplo:
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 pode ser especificado 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 pode ser definido. -
partitionKey
: um valor que é hash para produzir uma atribuição de partição. Se definido,partitionId
não pode ser definido.
Retornos
Promise<void>
Prometer