

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 批量向目标交付
<a name="eb-custom-bus-batching"></a>

EventBridge 尽可能将事件分组为一个目标调用，因此每个队列最多接收 10 个事件`SendMessageBatch`，每个函数接收一个数组`Invoke`。要绑定批次，请在订阅者`BatchConfiguration`上设置：`MaxBatchSize`从 1 到 500，`MaxBatchWindowInSeconds`从 0 到 300 以等待更多事件再调用。对于每次调用一个事件，设置`MaxBatchSize`为 1。

## 批次是如何关闭的
<a name="eb-custom-bus-batching-rules"></a>

当达到以下三个限制中的第一个限制时，批处理即关闭：计数`MaxBatchSize`、等待时间或目标自身的负载大小限制，例如 Amazon SQS 请求的 256 KB。`MaxBatchWindowInSeconds`因此，大型事件的到来批次要小于`MaxBatchSize`. 您可以设置计数和窗口；字节限制是目标的，不能更改。
+ 对于定制目标，`BatchConfiguration`是可选的。如果没有它，则 EventBridge 批处理到目标接受的最大大小，窗口为 0 秒。
+ 对于通用目标，`BatchConfiguration`必须设置这两个字段，因为 EventBridge 无法知道操作的请求可以携带多少事件。

## 批处理和订购
<a name="eb-custom-bus-batching-order"></a>

在一个批次中，事件会保持其发布顺序。来自FIFO订阅者的批次可以容纳来自多个事件组的事件；每个组的事件是按相对于另一个事件的顺序排列的。并行处理批次的目标（例如以并行方式遍历数组的函数）会丢失该顺序。

## 查看批量大小
<a name="eb-custom-bus-batching-metrics"></a>

该`TargetInvocations`指标对目标调用进行`EventDeliveryAttempts`计数并对事件进行计数，因此它们的比率是平均批量大小。请参阅[自定义事件总线的可观察性：指标、日志和 CloudTrail](eb-custom-bus-observability.md)。