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


EventHubProducerClient class

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

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

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

Кроме того, можно передать пакет параметров для настройки политики повторных попыток или параметров прокси-сервера.

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

EventHubProducerClient(string, EventHubClientOptions)

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

EventHubProducerClient(string, string, EventHubClientOptions)

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

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

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

Свойства

eventHubName

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

fullyQualifiedNamespace

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

identifier

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

Методы

close()

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

createBatch(CreateBatchOptions)

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

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

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

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

import { EventHubProducerClient } from "@azure/event-hubs";

const client = new EventHubProducerClient("my-connection-string", "my-event-hub");

const messages = [
  { body: "my-event-body1" },
  { body: "my-event-body2" },
  { body: "my-event-body3" },
  { body: "my-event-body4" },
  { body: "my-event-body5" },
];

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 рекомендуется вместо эффективного управления пакетами.

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

import { EventHubProducerClient } from "@azure/event-hubs";

const client = new EventHubProducerClient("my-connection-string", "my-event-hub");

const messages = [
  { body: "my-event-body1" },
  { body: "my-event-body2" },
  { body: "my-event-body3" },
  { body: "my-event-body4" },
  { body: "my-event-body5" },
];

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.

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

import { EventHubProducerClient } from "@azure/event-hubs";

const client = new EventHubProducerClient("my-connection-string", "my-event-hub");

const messages = [
  { body: "my-event-body1" },
  { body: "my-event-body2" },
  { body: "my-event-body3" },
  { body: "my-event-body4" },
  { body: "my-event-body5" },
];

await client.sendBatch(messages);

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

EventHubProducerClient(string, EventHubClientOptions)

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

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 parmeter для настройки политики повторных попыток или параметров прокси-сервера.

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 parmeter для настройки политики повторных попыток или параметров прокси-сервера.

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 из @azure/core-auth, если вы хотите передать SharedAccessKeyName и SharedAccessKey без использования строки подключения. Эти поля сопоставляют с полем name и key соответственно в AzureNamedKeyCredential. Используйте AzureSASCredential из @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>

Обещать

createBatch(CreateBatchOptions)

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

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

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

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

import { EventHubProducerClient } from "@azure/event-hubs";

const client = new EventHubProducerClient("my-connection-string", "my-event-hub");

const messages = [
  { body: "my-event-body1" },
  { body: "my-event-body2" },
  { body: "my-event-body3" },
  { body: "my-event-body4" },
  { body: "my-event-body5" },
];

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>

Обещать

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 рекомендуется вместо эффективного управления пакетами.

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

import { EventHubProducerClient } from "@azure/event-hubs";

const client = new EventHubProducerClient("my-connection-string", "my-event-hub");

const messages = [
  { body: "my-event-body1" },
  { body: "my-event-body2" },
  { body: "my-event-body3" },
  { body: "my-event-body4" },
  { body: "my-event-body5" },
];

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>

Обещать

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

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

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

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

import { EventHubProducerClient } from "@azure/event-hubs";

const client = new EventHubProducerClient("my-connection-string", "my-event-hub");

const messages = [
  { body: "my-event-body1" },
  { body: "my-event-body2" },
  { body: "my-event-body3" },
  { body: "my-event-body4" },
  { body: "my-event-body5" },
];

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>

Обещать