Amazon EventBridge PutEvents 限制

Amazon EventBridge PutEvents throttling

我打算在我的应用程序中使用 Amazon EventBridge。我看到事件受到限制,超出了某些配额。虽然它在 100 秒到几千秒的范围内,但我不想丢失事件并主动添加更多总线来处理高速事件。从 API 中,我看到 PutEvents 抛出 500 作为异常 https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutEvents.html

有没有人可靠地使用 PutEvents 异常来处理这种情况并添加总线?我看到有 FailedEntryCount,但文档没有说明失败的原因。所以,我不确定我是否可以依靠。我可以使用其他服务(SQS、DB),但我想在我的用例中使用 EventBridge。

如果有其他路线 (CloudTrail PutEvents) 或 CloudWatch Logs 需要处理,我愿意听取。

EventBridge 的 PutEvents API 有 soft-limits,每个帐户都可以增加。

据我所知,您有两个问题:一个是节流的工作原理,另一个是 FailedEntryCount

节流

限制将针对操作本身(即当您调用 PutEvents 时)(提示:尝试一次最多批处理 10 个事件 - 将有助于减少延迟)。如果您受到限制,AWS 开发工具包将暂时重试,假设您的调用率没有显着且持续高于您分配的限制。如果重试几次后仍然受到限制,则整个操作将失败。如果是这样,您可以放心地假设您的事件没有被摄取。

我建议监控 throttling/error 速率和数量以主动增加 EventBridge 中的 PutEvents 限制。有多种选择可以做到这一点,所以我不会在这里包括它。

无论哪种方式,请联系 AWS Support 以了解他们如何帮助提高限制。

FailedEntryCount

由于这是一个批处理 API,您应该始终检查 FailedEntryCount 是否 > 0,并重试未能摄取的条目(如果适用)。 FailedEntryCount 可以信赖,因为它明确告诉您条目失败,您应该检查响应以了解哪些条目失败。