View a markdown version of this page

批次交付到目標 - Amazon EventBridge

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

批次交付到目標

EventBridge 會盡可能將事件分組為一個目標呼叫,因此佇列每個 最多接收 10 個事件,SendMessageBatch而函數每個 接收陣列Invoke。若要繫結批次,請在訂閱者BatchConfiguration上設定:MaxBatchSize從 1 到 500,以及MaxBatchWindowInSeconds從 0 到 300,等待更多事件再呼叫。對於每次呼叫一個事件,將 MaxBatchSize設定為 1。

批次的關閉方式

當達到三個限制中的第一個時,批次會關閉: 中的計數MaxBatchSize、 中的等待MaxBatchWindowInSeconds,或目標自己的承載大小限制,例如 Amazon SQS 請求為 256 KB。因此,大型事件會以比 更小的批次到達MaxBatchSize。您可以設定計數和視窗;位元組限制是目標的 且無法變更。

  • 對於自訂目標, BatchConfiguration是選用的。如果沒有它,EventBridge 會批次處理到目標接受的最大大小,窗口為 0 秒。

  • 對於通用目標, BatchConfiguration 為必要項目,且兩個欄位皆已設定,因為 EventBridge 無法得知動作請求可攜帶的事件數量。

批次處理和排序

在批次中,事件會保留其發佈順序。來自 FIFO 訂閱者的批次可以保留來自多個事件群組的事件;每個群組的事件彼此相對排序。平行處理批次的目標,例如以並行在陣列上反覆運算的函數,會遺失該順序。

查看批次大小

TargetInvocations 指標會計數目標呼叫和EventDeliveryAttempts計數事件,因此其比率是平均批次大小。請參閱自訂事件匯流排的可觀測性:指標、日誌和 CloudTrail。