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
Event |
A |
Event |
A |
Event |
A |
Propriedades
event |
O nome da instância do Hub de Eventos para a qual este cliente é criado. |
fully |
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. |
create |
Cria uma instância da 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 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, Utilização de exemplo:
|
get |
Fornece as informações de runtime do Hub de Eventos. |
get |
Fornece o 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 com 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 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, Utilização de exemplo:
|
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 for excedido, resultará num erro com o código Utilização de exemplo:
|
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
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. AtryAdd
função será devolvidafalse
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
Promise<EventHubProperties>
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
Promise<PartitionProperties>
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
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