Поделиться через


EventHubProducerClient class

Класс EventHubProducerClient используется для отправки событий в концентратор событий.

Существует несколько способов создания EventHubProducerClient

  • Используйте строку подключения из политики SAS, созданной для экземпляра концентратора событий.
  • Используйте строку подключения из политики SAS, созданной для пространства имен концентратора событий, и имя экземпляра концентратора событий.
  • Используйте полное пространство имен, например <yournamespace>.servicebus.windows.net, и объект учетных данных.

При необходимости можно также передать контейнер параметров для настройки политики повтора или параметров прокси-сервера.

Конструкторы

EventHubProducerClient(string, EventHubClientOptions)

Класс EventHubProducerClient используется для отправки событий в концентратор событий. options Используйте парметр для настройки политики повтора или параметров прокси-сервера.

EventHubProducerClient(string, string, EventHubClientOptions)

Класс EventHubProducerClient используется для отправки событий в концентратор событий. options Используйте парметр для настройки политики повтора или параметров прокси-сервера.

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

Класс EventHubProducerClient используется для отправки событий в концентратор событий. options Используйте парметр для настройки политики повтора или параметров прокси-сервера.

Свойства

eventHubName

Имя экземпляра концентратора событий, для которого создается этот клиент.

fullyQualifiedNamespace

Полное пространство имен экземпляра концентратора событий, для которого создается этот клиент. Скорее всего, это будет похоже на .servicebus.windows.net.

identifier

Имя, используемое для идентификации этого объекта EventHubProducerClient. Если он не указан или пуст, будет создан случайный уникальный.

Методы

close()

Закрывает подключение AMQP к экземпляру концентратора событий, возвращая обещание, которое будет разрешено после завершения отключения.

createBatch(CreateBatchOptions)

Создает экземпляр , EventDataBatch в который можно добавлять события, пока не будет достигнут максимальный поддерживаемый размер. Пакет можно передать в метод sendBatch объекта для EventHubProducerClient отправки в Центры событий Azure.

События с разными значениями для partitionKey или partitionId необходимо поместить в разные пакеты. Чтобы упростить такое пакетное управление между секциями или заставить клиента автоматически пакетировать события и отправлять их через определенные интервалы, используйте EventHubBufferedProducerClient вместо него.

В приведенном ниже примере предполагается, что у вас есть массив событий для безопасной пакетной обработки. Если у вас есть события, поступающие по одному, EventHubBufferedProducerClient рекомендуется вместо этого для эффективного управления пакетами.

Пример использования:

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)

Предоставляет сведения о среде выполнения концентратора событий.

getPartitionIds(GetPartitionIdsOptions)

Предоставляет идентификатор для каждой секции, связанной с концентратором событий.

getPartitionProperties(string, GetPartitionPropertiesOptions)

Предоставляет сведения о состоянии указанной секции.

sendBatch(EventDataBatch, OperationOptions)

Отправляет пакет событий, созданных с помощью, EventHubProducerClient.createBatch() в связанный концентратор событий.

События с разными значениями для partitionKey или partitionId необходимо поместить в разные пакеты. Чтобы упростить такое пакетное управление между секциями или заставить клиента автоматически пакетировать события и отправлять их через определенные интервалы, используйте EventHubBufferedProducerClient вместо него.

В приведенном ниже примере предполагается, что у вас есть массив событий для безопасной пакетной обработки. Если у вас есть события, поступающие по одному, EventHubBufferedProducerClient рекомендуется вместо этого для эффективного управления пакетами.

Пример использования:

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)

Отправляет массив событий в виде пакета в связанный концентратор событий.

Центры событий Azure имеет ограничение на размер пакета, который может быть отправлен, что в случае превышения приведет к ошибке с кодом MessageTooLargeError. Для безопасной отправки в пределах ограничений размера пакета используйте EventHubProducerClient.createBatch() или EventHubBufferedProducerClient .

Пример использования:

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

Сведения о конструкторе

EventHubProducerClient(string, EventHubClientOptions)

Класс EventHubProducerClient используется для отправки событий в концентратор событий. options Используйте парметр для настройки политики повтора или параметров прокси-сервера.

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

Параметры

connectionString

string

Строка подключения, используемая для подключения к экземпляру концентратора событий. Ожидается, что в этой строке подключения содержатся свойства общего ключа и путь к концентратору событий. Например, 'Endpoint=sb://my-servicebus-namespace.servicebus.windows.net/;SharedAccessKeyName=my-SA-name; SharedAccessKey=my-SA-key; EntityPath=my-event-hub-name'.

options
EventHubClientOptions

Набор параметров, применяемых при настройке клиента.

  • retryOptions : настраивает политику повтора для всех операций на клиенте. Например, { "maxRetries": 4 } или { "maxRetries": 4, "retryDelayInMs": 30000 }.
  • webSocketOptions: настраивает канал подключения AMQP через веб-сокеты.
  • userAgent : строка, добавляемая к встроенной строке агента пользователя, передаваемой службе.

EventHubProducerClient(string, string, EventHubClientOptions)

Класс EventHubProducerClient используется для отправки событий в концентратор событий. options Используйте парметр для настройки политики повтора или параметров прокси-сервера.

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

Параметры

connectionString

string

Строка подключения, используемая для подключения к пространству имен Центров событий. Ожидается, что свойства общего ключа содержатся в этой строке подключения, но не в пути концентратора событий, например Endpoint=sb://my-servicebus-namespace.servicebus.windows.net/;SharedAccessKeyName=my-SA-name; SharedAccessKey=my-SA-key;'.

eventHubName

string

Имя конкретного концентратора событий, к которому подключается клиент.

options
EventHubClientOptions

Набор параметров, применяемых при настройке клиента.

  • retryOptions : настраивает политику повтора для всех операций на клиенте. Например, { "maxRetries": 4 } или { "maxRetries": 4, "retryDelayInMs": 30000 }.
  • webSocketOptions: настраивает канал подключения AMQP через веб-сокеты.
  • userAgent : строка, добавляемая к встроенной строке агента пользователя, передаваемой службе.

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

Класс EventHubProducerClient используется для отправки событий в концентратор событий. options Используйте парметр для настройки политики повтора или параметров прокси-сервера.

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

Параметры

fullyQualifiedNamespace

string

Полное пространство имен, которое, скорее всего, будет похоже на .servicebus.windows.net

eventHubName

string

Имя конкретного концентратора событий, к которому подключается клиент.

credential

TokenCredential | NamedKeyCredential | SASCredential

Объект учетных данных, используемый клиентом для получения маркера для проверки подлинности подключения к службе Центры событий Azure. Сведения о создании учетных данных, поддерживающих проверку подлинности AAD, см. в разделе @azure/identity. AzureNamedKeyCredential Используйте параметр from @azure/core-auth, если вы хотите передать SharedAccessKeyName и SharedAccessKey без использования строки подключения. Эти поля сопоставляют с полем name и key соответственно в AzureNamedKeyCredential. AzureSASCredential Используйте параметр from @azure/core-auth, если требуется передать SharedAccessSignature без использования строки подключения. Это поле сопоставляется с signature в AzureSASCredential.

options
EventHubClientOptions

Набор параметров, применяемых при настройке клиента.

  • retryOptions : настраивает политику повторных попыток для всех операций на клиенте. Например, { "maxRetries": 4 } или { "maxRetries": 4, "retryDelayInMs": 30000 }.
  • webSocketOptions: настраивает ченнелинг подключения AMQP через веб-сокеты.
  • userAgent : строка, добавляемая к встроенной строке агента пользователя, передаваемой службе.

Сведения о свойстве

eventHubName

Имя экземпляра концентратора событий, для которого создается этот клиент.

string eventHubName

Значение свойства

string

fullyQualifiedNamespace

Полное пространство имен экземпляра концентратора событий, для которого создается этот клиент. Скорее всего, это будет похоже на .servicebus.windows.net.

string fullyQualifiedNamespace

Значение свойства

string

identifier

Имя, используемое для идентификации этого объекта EventHubProducerClient. Если он не указан или пуст, будет создан случайный уникальный.

identifier: string

Значение свойства

string

Сведения о методе

close()

Закрывает подключение AMQP к экземпляру концентратора событий, возвращая обещание, которое будет разрешено после завершения отключения.

function close(): Promise<void>

Возвращаемое значение

Promise<void>

Promise

createBatch(CreateBatchOptions)

Создает экземпляр , EventDataBatch в который можно добавлять события, пока не будет достигнут максимальный поддерживаемый размер. Пакет можно передать в метод sendBatch объекта для EventHubProducerClient отправки в Центры событий Azure.

События с разными значениями для partitionKey или partitionId необходимо поместить в разные пакеты. Чтобы упростить такое пакетное управление между секциями или заставить клиента автоматически пакетировать события и отправлять их через определенные интервалы, используйте EventHubBufferedProducerClient вместо него.

В приведенном ниже примере предполагается, что у вас есть массив событий для безопасной пакетной обработки. Если у вас есть события, поступающие по одному, EventHubBufferedProducerClient рекомендуется вместо этого для эффективного управления пакетами.

Пример использования:

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>

Параметры

options
CreateBatchOptions

Настраивает поведение пакета.

  • partitionKey: значение, которое хэшируется и используется службой Центры событий Azure для определения секции, в которую необходимо отправлять события.
  • partitionId : идентификатор секции, в которую необходимо отправить пакет событий.
  • maxSizeInBytes: верхний предел размера пакета. Функция tryAdd возвращается false после достижения этого ограничения.
  • abortSignal : сигнал запроса на отмену операции.

Возвращаемое значение

Promise<EventDataBatch>

Promise

getEventHubProperties(GetEventHubPropertiesOptions)

Предоставляет сведения о среде выполнения концентратора событий.

function getEventHubProperties(options?: GetEventHubPropertiesOptions): Promise<EventHubProperties>

Параметры

options
GetEventHubPropertiesOptions

Набор параметров, применяемых к вызову операции.

Возвращаемое значение

Обещание, которое разрешается со сведениями об экземпляре концентратора событий.

getPartitionIds(GetPartitionIdsOptions)

Предоставляет идентификатор для каждой секции, связанной с концентратором событий.

function getPartitionIds(options?: GetPartitionIdsOptions): Promise<string[]>

Параметры

options
GetPartitionIdsOptions

Набор параметров, применяемых к вызову операции.

Возвращаемое значение

Promise<string[]>

Обещание, разрешающееся с массивом строк, представляющим идентификатор для каждой секции, связанной с концентратором событий.

getPartitionProperties(string, GetPartitionPropertiesOptions)

Предоставляет сведения о состоянии указанной секции.

function getPartitionProperties(partitionId: string, options?: GetPartitionPropertiesOptions): Promise<PartitionProperties>

Параметры

partitionId

string

Идентификатор секции, для которой требуются сведения.

options
GetPartitionPropertiesOptions

Набор параметров, применяемых к вызову операции.

Возвращаемое значение

Обещание, разрешающееся со сведениями о состоянии секции .

sendBatch(EventDataBatch, OperationOptions)

Отправляет пакет событий, созданных с помощью, EventHubProducerClient.createBatch() в связанный концентратор событий.

События с разными значениями для partitionKey или partitionId необходимо поместить в разные пакеты. Чтобы упростить такое пакетное управление между секциями или заставить клиента автоматически пакетировать события и отправлять их через определенные интервалы, используйте EventHubBufferedProducerClient вместо него.

В приведенном ниже примере предполагается, что у вас есть массив событий для безопасной пакетной обработки. Если у вас есть события, поступающие по одному, EventHubBufferedProducerClient рекомендуется вместо этого для эффективного управления пакетами.

Пример использования:

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>

Параметры

batch
EventDataBatch

Пакет событий, который можно создать с помощью метода createBatch .

options
OperationOptions

Набор параметров, которые можно указать, чтобы повлиять на способ отправки событий в связанный концентратор событий.

  • abortSignal : сигнал запроса на отмену операции отправки.

Возвращаемое значение

Promise<void>

Promise

sendBatch(EventData[] | AmqpAnnotatedMessage[], SendBatchOptions)

Отправляет массив событий в виде пакета в связанный концентратор событий.

Центры событий Azure имеет ограничение на размер пакета, который может быть отправлен, что в случае превышения приведет к ошибке с кодом MessageTooLargeError. Для безопасной отправки в пределах ограничений размера пакета используйте EventHubProducerClient.createBatch() или EventHubBufferedProducerClient .

Пример использования:

const client = new EventHubProducerClient(connectionString);
await client.sendBatch(messages);
function sendBatch(batch: EventData[] | AmqpAnnotatedMessage[], options?: SendBatchOptions): Promise<void>

Параметры

batch

EventData[] | AmqpAnnotatedMessage[]

Массив EventData или AmqpAnnotatedMessage.

options
SendBatchOptions

Набор параметров, которые можно указать, чтобы повлиять на способ отправки событий в связанный концентратор событий.

  • abortSignal : сигнал запроса на отмену операции отправки.
  • partitionId : раздел, в который будет отправлен этот пакет. Если задано значение , partitionKey его нельзя задать.
  • partitionKey : значение, хэширование которого выполняется для создания назначения секции. Если задано значение , partitionId его нельзя задать.

Возвращаемое значение

Promise<void>

Promise