本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
批量向目标交付
EventBridge 尽可能将事件分组为一个目标调用,因此每个队列最多接收 10 个事件SendMessageBatch,每个函数接收一个数组Invoke。要绑定批次,请在订阅者BatchConfiguration上设置:MaxBatchSize从 1 到 500,MaxBatchWindowInSeconds从 0 到 300 以等待更多事件再调用。对于每次调用一个事件,设置MaxBatchSize为 1。
批次是如何关闭的
当达到以下三个限制中的第一个限制时,批处理即关闭:计数MaxBatchSize、等待时间或目标自身的负载大小限制,例如 Amazon SQS 请求的 256 KB。MaxBatchWindowInSeconds因此,大型事件的到来批次要小于MaxBatchSize. 您可以设置计数和窗口;字节限制是目标的,不能更改。
-
对于定制目标,
BatchConfiguration是可选的。如果没有它,则 EventBridge 批处理到目标接受的最大大小,窗口为 0 秒。 -
对于通用目标,
BatchConfiguration必须设置这两个字段,因为 EventBridge 无法知道操作的请求可以携带多少事件。
批处理和订购
在一个批次中,事件会保持其发布顺序。来自FIFO订阅者的批次可以容纳来自多个事件组的事件;每个组的事件是按相对于另一个事件的顺序排列的。并行处理批次的目标(例如以并行方式遍历数组的函数)会丢失该顺序。
查看批量大小
该TargetInvocations指标对目标调用进行EventDeliveryAttempts计数并对事件进行计数,因此它们的比率是平均批量大小。请参阅自定义事件总线的可观察性:指标、日志和 CloudTrail。