EventHubProducerClient class
Класс EventHubProducerClient
используется для отправки событий в концентратор событий.
Существует несколько способов создания EventHubProducerClient
- Используйте строку подключения из политики SAS, созданной для экземпляра концентратора событий.
- Используйте строку подключения из политики SAS, созданной для пространства имен концентратора событий, и имя экземпляра концентратора событий.
- Используйте полное пространство имен, например
<yournamespace>.servicebus.windows.net
, и объект учетных данных.
При необходимости можно также передать контейнер параметров для настройки политики повтора или параметров прокси-сервера.
Конструкторы
Event |
Класс |
Event |
Класс |
Event |
Класс |
Свойства
event |
Имя экземпляра концентратора событий, для которого создается этот клиент. |
fully |
Полное пространство имен экземпляра концентратора событий, для которого создается этот клиент. Скорее всего, это будет похоже на .servicebus.windows.net. |
identifier | Имя, используемое для идентификации этого объекта EventHubProducerClient. Если он не указан или пуст, будет создан случайный уникальный. |
Методы
close() | Закрывает подключение AMQP к экземпляру концентратора событий, возвращая обещание, которое будет разрешено после завершения отключения. |
create |
Создает экземпляр , События с разными значениями для partitionKey или partitionId необходимо поместить в разные пакеты.
Чтобы упростить такое пакетное управление между секциями или заставить клиента автоматически пакетировать события и отправлять их через определенные интервалы, используйте В приведенном ниже примере предполагается, что у вас есть массив событий для безопасной пакетной обработки.
Если у вас есть события, поступающие по одному, Пример использования:
|
get |
Предоставляет сведения о среде выполнения концентратора событий. |
get |
Предоставляет идентификатор для каждой секции, связанной с концентратором событий. |
get |
Предоставляет сведения о состоянии указанной секции. |
send |
Отправляет пакет событий, созданных с помощью, События с разными значениями для partitionKey или partitionId необходимо поместить в разные пакеты.
Чтобы упростить такое пакетное управление между секциями или заставить клиента автоматически пакетировать события и отправлять их через определенные интервалы, используйте В приведенном ниже примере предполагается, что у вас есть массив событий для безопасной пакетной обработки.
Если у вас есть события, поступающие по одному, Пример использования:
|
send |
Отправляет массив событий в виде пакета в связанный концентратор событий. Центры событий Azure имеет ограничение на размер пакета, который может быть отправлен, что в случае превышения приведет к ошибке с кодом Пример использования:
|
Сведения о конструкторе
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
Объект учетных данных, используемый клиентом для получения маркера для проверки подлинности подключения к службе Центры событий 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
Набор параметров, применяемых к вызову операции.
Возвращаемое значение
Promise<EventHubProperties>
Обещание, которое разрешается со сведениями об экземпляре концентратора событий.
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
Набор параметров, применяемых к вызову операции.
Возвращаемое значение
Promise<PartitionProperties>
Обещание, разрешающееся со сведениями о состоянии секции .
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
.
- options
- SendBatchOptions
Набор параметров, которые можно указать, чтобы повлиять на способ отправки событий в связанный концентратор событий.
-
abortSignal
: сигнал запроса на отмену операции отправки. -
partitionId
: раздел, в который будет отправлен этот пакет. Если задано значение ,partitionKey
его нельзя задать. -
partitionKey
: значение, хэширование которого выполняется для создания назначения секции. Если задано значение ,partitionId
его нельзя задать.
Возвращаемое значение
Promise<void>
Promise