关于在 Amazon EventBridge 中定义规则的最佳实践
以下是为事件总线创建规则时需要考虑的一些最佳实践。
为每条规则设置单一目标
虽然您最多可以为给定规则指定五个目标,但如果为每条规则指定单一目标,管理规则将会更加轻松。如果多个目标需要接收同一组事件,我们建议复制该规则,将相同的事件传送到不同目标。这种封装简化了规则的维护:如果事件目标的需求随着时间的推移而出现差异,则可以独立于其他规则更新每条规则,及其事件模式。
设置规则权限
您可以进行设置,使使用事件的应用程序组件或服务能够控制各自规则的管理。客户采用的一种常见架构方法是,使用单独的 AWS 帐户来隔离这些应用程序组件或服务。要使事件从一个账户流向另一个账户,必须在一条事件总线上创建一个规则,将事件路由到另一个账户中的事件总线。您可以进行设置,使使用事件的团队或服务能够控制各自规则的管理。方法是通过资源策略为他们的账户指定适当的权限。这适用于所有账户和区域。
有关更多信息,请参阅 Amazon EventBridge 中事件总线的权限。
有关资源策略的示例,请参阅 GitHub 上的 Amazon EventBridge 多账户设计模式
监控规则性能
监控您的规则,确保其执行符合您的预期:
监控
TriggeredRules
指标中是否存在缺失的数据点或异常,可以帮助您检测发布者做出的重大更改的差异。有关更多信息,请参阅 监控 Amazon EventBridge。异常警报或预期计数上限也有助于检测某规则何时与新事件匹配。在启用新的使用案例和功能时,如果包括 AWS 服务和 SaaS 合作伙伴在内的事件发布者引入新事件,就会发生这种情况。如果这些新事件在意料之外,并且导致处理量高于下游目标的处理速度,它们可能会导致事件积压。
对意外事件的此类处理也可能导致不必要的账单费用。
当账户超过其每秒目标调用总次数服务限额时,还会触发规则节流。EventBridge 仍会尝试传送与节流规则匹配的事件,并在最长 24 小时内重试,或者按照目标的自定义重试策略中的设置进行重试。您可以使用
ThrottledRules
指标检测节流规则并发出警报对于低延迟使用场景,您还可以使用
IngestionToInvocationStartLatency
监控延迟,它可以指示事件总线的运行状况。任何超过 30 秒的高延迟时间段都可能表示服务中断或规则节流。