如何对 EventBridge 规则的问题进行故障排除?

上次更新日期:2022 年 4 月 15 日

发生与我的 Amazon EventBridge 规则相符的事件。但是,我的规则无法正常运行。如何排查此问题?

简短描述

确定问题是规则未触发,还是未调用目标。确定问题的根源后,您可以验证传入的事件,也可以验证目标。

解决方案

验证规则是否未触发,或者是否未调用目标

为此,请使用相应的 EventBridge 指标来查看规则性能。

TriggeredRules 指标显示规则与某个事件匹配或执行的次数。在确认计划规则是否已运行或规则是否与特定事件匹配时,就可使用此指标。规则成功触发之后,EventBridge 会将事件转发给目标。

在规则调用目标时生成 Invocations 数据点。如果 EventBridge 在将事件传送到目标时遇到困难,它会进行多次尝试。当 EventBridge 永久无法调用目标时,就会发出 FailedInvocations 数据点。FailedInvocations 表示目标配置存在问题。

执行以下操作,查看 EventBridge 规则的 Amazon CloudWatch 指标:

  1. 打开 CloudWatch 控制台
  2. 选择所有指标
  3. 选择 AWS/事件命名空间。
  4. 为有问题的规则选择 TriggerRulesInvocationsFailedInvocations(如果可用)指标。可以通过SUM 统计数据查看这些指标。

验证传入的事件

  • 对于基于事件的规则,必须配置事件模式以匹配所需的事件。您可以在规则创建期间使用 EventBridge 控制台验证事件模式。EventBridge 还提供了用于事件模式验证的 TestEventPattern API。
  • 如果有问题的事件由 AWS CloudTrail 捕获,您可以从 CloudTrail 中检索该事件。然后,确认所提供的事件模式是否正确。
  • 请注意,某些 AWS 服务仅在 us-east-1 区域中可用。例如,IAM API 调用仅在 us-east-1 中发布。这意味着必须在同一个区域中创建相应的 EventBridge 规则。

验证目标

  • 使用 EventBridge 控制台创建规则时,控制台会自动向以下对象添加所需的权限:
    与 EventBridge 规则关联的 IAM 角色
    与目标关联的资源策略
    如果使用 AWS SDK、AWS CLI 或 AWS CloudFormation 部署规则,则必须明确地配置权限。
  • 必须授予 EventBridge 适当的访问权限才能调用目标。根据目标,确认相应的 IAM 角色资源策略具有正确的权限。FailedInvocations 数据点会由于目标权限不足而生成。
  • 如果没有 FailedInvocations 数据点,则 EventBridge 可成功地将事件传送到目标。但是,目标可能遇到自己的问题。例如,AWS Lambda 目标可能遇到独立于 EventBridge 的错误或限制。有关 EventBridge 规则调用目标的时间戳,请查看目标的 CloudWatch 指标和任何相关日志。
  • Amazon Simple Queue Service (Amazon SQS) 死信队列 (DLQ) 可以与目标关联。任何未能传送到目标的事件都会发送到死信队列。这可用于查看失败事件的更多详细信息。例如,使用 Input Transformer 错误地构造事件可能会导致目标上的输入验证错误。

这篇文章对您有帮助吗?


您是否需要账单或技术支持?