EventHubProducerClient class
La EventHubProducerClient
clase se usa para enviar eventos a un centro de eventos.
Hay varias maneras de crear una EventHubProducerClient
- Use la cadena de conexión de la directiva SAS creada para la instancia del centro de eventos.
- Use la cadena de conexión de la directiva SAS creada para el espacio de nombres del centro de eventos y el nombre de la instancia del centro de eventos.
- Use el espacio de nombres completo, como
<yournamespace>.servicebus.windows.net
, y un objeto credentials.
Opcionalmente, también puede pasar un contenedor de opciones para configurar la directiva de reintentos o la configuración de proxy.
Constructores
Event |
La |
Event |
La |
Event |
La |
Propiedades
event |
Nombre de la instancia del centro de eventos para la que se crea este cliente. |
fully |
Espacio de nombres completo de la instancia del centro de eventos para la que se crea este cliente. Es probable que sea similar a .servicebus.windows.net. |
identifier | Nombre que se usa para identificar este EventHubProducerClient. Si no se especifica o está vacío, se generará uno único aleatorio. |
Métodos
close() | Cierra la conexión AMQP a la instancia del centro de eventos y devuelve una promesa que se resolverá cuando se complete la desconexión. |
create |
Crea una instancia de a la Los eventos con valores diferentes para partitionKey o partitionId deberán colocarse en diferentes lotes.
Para simplificar esta administración por lotes entre particiones o para que el cliente realice automáticamente eventos por lotes y enviarlos en intervalos específicos, use En el ejemplo siguiente se supone que tiene una matriz de eventos a mano para procesar por lotes de forma segura.
Si tiene eventos que vienen en uno por uno, Ejemplo de uso:
|
get |
Proporciona la información del entorno de ejecución del centro de eventos. |
get |
Proporciona el identificador de cada partición asociada al centro de eventos. |
get |
Proporciona información sobre el estado de la partición especificada. |
send |
Envía un lote de eventos creados mediante Los eventos con valores diferentes para partitionKey o partitionId deberán colocarse en diferentes lotes.
Para simplificar esta administración por lotes entre particiones o para que el cliente realice automáticamente eventos por lotes y enviarlos en intervalos específicos, use En el ejemplo siguiente se supone que tiene una matriz de eventos a mano para procesar por lotes de forma segura.
Si tiene eventos que vienen en uno por uno, Ejemplo de uso:
|
send |
Envía una matriz de eventos como un lote al centro de eventos asociado. Azure Event Hubs tiene un límite en el tamaño del lote que se puede enviar que, si se supera, producirá un error con el código Ejemplo de uso:
|
Detalles del constructor
EventHubProducerClient(string, EventHubClientOptions)
La EventHubProducerClient
clase se usa para enviar eventos a un centro de eventos.
Use el medidor para configurar la options
directiva de reintento o la configuración del proxy.
new EventHubProducerClient(connectionString: string, options?: EventHubClientOptions)
Parámetros
- connectionString
-
string
Cadena de conexión que se va a usar para conectarse a la instancia del centro de eventos. Se espera que las propiedades de clave compartidas y la ruta de acceso del centro de eventos estén contenidas en esta cadena de conexión. por ejemplo, 'Endpoint=sb://my-servicebus-namespace.servicebus.windows.net/;SharedAccessKeyName=my-SA-name; SharedAccessKey=my-SA-key; EntityPath=my-event-hub-name'.
- options
- EventHubClientOptions
Conjunto de opciones que se aplicarán al configurar el cliente.
-
retryOptions
: configura la directiva de reintentos para todas las operaciones del cliente. Por ejemplo,{ "maxRetries": 4 }
o{ "maxRetries": 4, "retryDelayInMs": 30000 }
. -
webSocketOptions
: configura el canalización de la conexión AMQP a través de web Sockets. -
userAgent
: cadena que se va a anexar a la cadena del agente de usuario integrada que se pasa al servicio.
EventHubProducerClient(string, string, EventHubClientOptions)
La EventHubProducerClient
clase se usa para enviar eventos a un centro de eventos.
Use el medidor para configurar la options
directiva de reintento o la configuración del proxy.
new EventHubProducerClient(connectionString: string, eventHubName: string, options?: EventHubClientOptions)
Parámetros
- connectionString
-
string
Cadena de conexión que se va a usar para conectarse al espacio de nombres de Event Hubs. Se espera que las propiedades de clave compartidas estén contenidas en esta cadena de conexión, pero no en la ruta de acceso del centro de eventos, por ejemplo, "Endpoint=sb://my-servicebus-namespace.servicebus.windows.net/;SharedAccessKeyName=my-SA-name; SharedAccessKey=my-SA-key;'.
- eventHubName
-
string
Nombre del centro de eventos específico al que se va a conectar el cliente.
- options
- EventHubClientOptions
Conjunto de opciones que se aplicarán al configurar el cliente.
-
retryOptions
: configura la directiva de reintentos para todas las operaciones del cliente. Por ejemplo,{ "maxRetries": 4 }
o{ "maxRetries": 4, "retryDelayInMs": 30000 }
. -
webSocketOptions
: configura el canalización de la conexión AMQP a través de web Sockets. -
userAgent
: cadena que se va a anexar a la cadena del agente de usuario integrada que se pasa al servicio.
EventHubProducerClient(string, string, TokenCredential | NamedKeyCredential | SASCredential, EventHubClientOptions)
La EventHubProducerClient
clase se usa para enviar eventos a un centro de eventos.
Use el medidor para configurar la options
directiva de reintento o la configuración del proxy.
new EventHubProducerClient(fullyQualifiedNamespace: string, eventHubName: string, credential: TokenCredential | NamedKeyCredential | SASCredential, options?: EventHubClientOptions)
Parámetros
- fullyQualifiedNamespace
-
string
Espacio de nombres completo que probablemente sea similar a .servicebus.windows.net
- eventHubName
-
string
Nombre del centro de eventos específico al que se va a conectar el cliente.
- credential
Objeto de credencial usado por el cliente para obtener el token para autenticar la conexión con el servicio Azure Event Hubs.
Consulte @azure/identity para crear credenciales que admitan la autenticación de AAD. Use from AzureNamedKeyCredential
@azure/core-auth si desea pasar un SharedAccessKeyName
elemento y SharedAccessKey
sin usar una cadena de conexión. Estos campos se asignan al name
campo y key
respectivamente en AzureNamedKeyCredential
.
AzureSASCredential
Use from @azure/core-auth si desea pasar un elemento SharedAccessSignature
sin usar una cadena de conexión. Este campo se asigna a signature
en AzureSASCredential
.
- options
- EventHubClientOptions
Conjunto de opciones que se aplicarán al configurar el cliente.
-
retryOptions
: configura la directiva de reintentos para todas las operaciones del cliente. Por ejemplo,{ "maxRetries": 4 }
o{ "maxRetries": 4, "retryDelayInMs": 30000 }
. -
webSocketOptions
: configura el canalización de la conexión AMQP a través de web Sockets. -
userAgent
: cadena que se va a anexar a la cadena del agente de usuario integrada que se pasa al servicio.
Detalles de las propiedades
eventHubName
Nombre de la instancia del centro de eventos para la que se crea este cliente.
string eventHubName
Valor de propiedad
string
fullyQualifiedNamespace
Espacio de nombres completo de la instancia del centro de eventos para la que se crea este cliente. Es probable que sea similar a .servicebus.windows.net.
string fullyQualifiedNamespace
Valor de propiedad
string
identifier
Nombre que se usa para identificar este EventHubProducerClient. Si no se especifica o está vacío, se generará uno único aleatorio.
identifier: string
Valor de propiedad
string
Detalles del método
close()
Cierra la conexión AMQP a la instancia del centro de eventos y devuelve una promesa que se resolverá cuando se complete la desconexión.
function close(): Promise<void>
Devoluciones
Promise<void>
Promesa
createBatch(CreateBatchOptions)
Crea una instancia de a la EventDataBatch
que se pueden agregar eventos hasta que se alcanza el tamaño máximo admitido.
El lote se puede pasar al método sendBatch del EventHubProducerClient
que se va a enviar a Azure Event Hubs.
Los eventos con valores diferentes para partitionKey o partitionId deberán colocarse en diferentes lotes.
Para simplificar esta administración por lotes entre particiones o para que el cliente realice automáticamente eventos por lotes y enviarlos en intervalos específicos, use EventHubBufferedProducerClient
en su lugar.
En el ejemplo siguiente se supone que tiene una matriz de eventos a mano para procesar por lotes de forma segura.
Si tiene eventos que vienen en uno por uno, EventHubBufferedProducerClient
se recomienda en su lugar para una administración eficaz de lotes.
Ejemplo 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 el comportamiento del lote.
-
partitionKey
: valor hash y utilizado por el servicio Azure Event Hubs para determinar la partición a la que se deben enviar los eventos. -
partitionId
: identificador de la partición a la que se debe enviar el lote de eventos. -
maxSizeInBytes
: límite superior para el tamaño del lote. LatryAdd
función devolveráfalse
después de alcanzar este límite. -
abortSignal
: una señal de la solicitud para cancelar la operación.
Devoluciones
Promise<EventDataBatch>
Promesa
getEventHubProperties(GetEventHubPropertiesOptions)
Proporciona la información del entorno de ejecución del centro de eventos.
function getEventHubProperties(options?: GetEventHubPropertiesOptions): Promise<EventHubProperties>
Parámetros
- options
- GetEventHubPropertiesOptions
Conjunto de opciones que se aplicarán a la llamada a la operación.
Devoluciones
Promise<EventHubProperties>
Promesa que se resuelve con información sobre la instancia del centro de eventos.
getPartitionIds(GetPartitionIdsOptions)
Proporciona el identificador de cada partición asociada al centro de eventos.
function getPartitionIds(options?: GetPartitionIdsOptions): Promise<string[]>
Parámetros
- options
- GetPartitionIdsOptions
Conjunto de opciones que se aplicarán a la llamada a la operación.
Devoluciones
Promise<string[]>
Promesa que se resuelve con una matriz de cadenas que representa el identificador de cada partición asociada al centro de eventos.
getPartitionProperties(string, GetPartitionPropertiesOptions)
Proporciona información sobre el estado de la partición especificada.
function getPartitionProperties(partitionId: string, options?: GetPartitionPropertiesOptions): Promise<PartitionProperties>
Parámetros
- partitionId
-
string
Identificador de la partición para la que se requiere información.
- options
- GetPartitionPropertiesOptions
Conjunto de opciones que se aplicarán a la llamada a la operación.
Devoluciones
Promise<PartitionProperties>
Promesa que se resuelve con información sobre el estado de la partición .
sendBatch(EventDataBatch, OperationOptions)
Envía un lote de eventos creados mediante EventHubProducerClient.createBatch()
al centro de eventos asociado.
Los eventos con valores diferentes para partitionKey o partitionId deberán colocarse en diferentes lotes.
Para simplificar esta administración por lotes entre particiones o para que el cliente realice automáticamente eventos por lotes y enviarlos en intervalos específicos, use EventHubBufferedProducerClient
en su lugar.
En el ejemplo siguiente se supone que tiene una matriz de eventos a mano para procesar por lotes de forma segura.
Si tiene eventos que vienen en uno por uno, EventHubBufferedProducerClient
se recomienda en su lugar para una administración eficaz de lotes.
Ejemplo 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
Un lote de eventos que puede crear mediante el método createBatch .
- options
- OperationOptions
Conjunto de opciones que se pueden especificar para influir en la forma en que se envían eventos al centro de eventos asociado.
-
abortSignal
: una señal de la solicitud para cancelar la operación de envío.
Devoluciones
Promise<void>
Promesa
sendBatch(EventData[] | AmqpAnnotatedMessage[], SendBatchOptions)
Envía una matriz de eventos como un lote al centro de eventos asociado.
Azure Event Hubs tiene un límite en el tamaño del lote que se puede enviar que, si se supera, producirá un error con el código MessageTooLargeError
.
Para enviar de forma segura dentro de los límites de tamaño de lote, use EventHubProducerClient.createBatch()
o EventHubBufferedProducerClient
en su lugar.
Ejemplo de uso:
const client = new EventHubProducerClient(connectionString);
await client.sendBatch(messages);
function sendBatch(batch: EventData[] | AmqpAnnotatedMessage[], options?: SendBatchOptions): Promise<void>
Parámetros
- batch
Matriz de EventData o AmqpAnnotatedMessage
.
- options
- SendBatchOptions
Conjunto de opciones que se pueden especificar para influir en la forma en que se envían eventos al centro de eventos asociado.
-
abortSignal
: una señal de la solicitud para cancelar la operación de envío. -
partitionId
: la partición a la que se enviará este lote. Si se establece,partitionKey
no se puede establecer. -
partitionKey
: valor hash para generar una asignación de partición. Si se establece,partitionId
no se puede establecer.
Devoluciones
Promise<void>
Promesa