EventHubProducerClient class

類別 EventHubProducerClient 是用來將事件傳送至事件中樞。

有多種方式可以建立 EventHubProducerClient

  • 使用針對事件中樞實例建立的 SAS 原則中的連接字串。
  • 使用針對事件中樞命名空間建立之 SAS 原則的連接字串,以及事件中樞實例的名稱
  • 使用完整的命名空間,例如 <yournamespace>.servicebus.windows.net 和 認證物件。

您也可以選擇性地傳遞選項包來設定重試原則或 Proxy 設定。

建構函式

EventHubProducerClient(string, EventHubClientOptions)

類別 EventHubProducerClient 是用來將事件傳送至事件中樞。 使用剖 options 析器來設定重試原則或 Proxy 設定。

EventHubProducerClient(string, string, EventHubClientOptions)

類別 EventHubProducerClient 是用來將事件傳送至事件中樞。 使用剖 options 析器來設定重試原則或 Proxy 設定。

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

類別 EventHubProducerClient 是用來將事件傳送至事件中樞。 使用剖 options 析器來設定重試原則或 Proxy 設定。

屬性

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 析器來設定重試原則或 Proxy 設定。

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:透過 Web 通訊端設定 AMQP 連線的通道。
  • userAgent :要附加至傳遞至服務之內建使用者代理程式字串的字串。

EventHubProducerClient(string, string, EventHubClientOptions)

類別 EventHubProducerClient 是用來將事件傳送至事件中樞。 使用剖 options 析器來設定重試原則或 Proxy 設定。

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:透過 Web 通訊端設定 AMQP 連線的通道。
  • userAgent :要附加至傳遞至服務之內建使用者代理程式字串的字串。

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

類別 EventHubProducerClient 是用來將事件傳送至事件中樞。 使用剖 options 析器來設定重試原則或 Proxy 設定。

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/身分識別。 AzureNamedKeyCredential 如果您想要傳入 SharedAccessKeyNameSharedAccessKey 而不要使用連接字串,請使用 from @azure/core-auth。 這些欄位分別對應至 name 中的 AzureNamedKeyCredentialkey 欄位。 AzureSASCredential如果您想要 SharedAccessSignature 傳入 而不使用連接字串,請使用 from @azure/core-auth。 此欄位對應至 signature 中的 AzureSASCredential

options
EventHubClientOptions

設定用戶端時要套用的一組選項。

  • retryOptions :設定用戶端上所有作業的重試原則。 例如,{ "maxRetries": 4 }{ "maxRetries": 4, "retryDelayInMs": 30000 }
  • webSocketOptions:設定透過 Web 通訊端的 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[]

EventDataAmqpAnnotatedMessage 的陣列。

options
SendBatchOptions

一組選項,可指定以影響事件傳送至相關聯事件中樞的方式。

  • abortSignal :發出要求以取消傳送作業的訊號。
  • partitionId :此批次將傳送至的分割區。 如果設定, partitionKey 則無法設定。
  • partitionKey :雜湊的值,用來產生資料分割指派。 如果設定, partitionId 則無法設定。

傳回

Promise<void>

Promise