跳至内容

如何对跨账户或跨区域 EventBridge 规则问题进行故障排除?

1 分钟阅读
0

当我向不同的 AWS 账户或 AWS 区域发送事件时,我的 Amazon EventBridge 目标事件规则不会启动。

简短描述

由于以下原因,事件可能无法跨账户或区域发布:

  • 源账户上的事件规则未启动,或者目标调用失败。
  • 源账户或组织没有正确的权限。
  • 目标账户上的事件规则未启动,或者目标调用失败。

要捕获调用失败的错误代码,请使用死信队列 (DLQ)。有关更多信息,请参阅如何修改 EventBridge 重试设置并使用 DLQ 处理失败的调用?

解决方法

源账户上的事件规则未启动,或者目标调用失败

仅当源账号启动事件规则并调用目标时,EventBridge 才会跨账号发布事件。

当规则的模式与传入的事件匹配时,EventBridge 会启动此规则。如果存在模式匹配,则 EventBridge 会向与匹配事件对应的 TriggeredRules 指标发送值 1。有关 EventBridge 指标的详细信息,请参阅监控 Amazon EventBridge

如果 EventBridge 启动了规则,请检查相应规则的 Invocations 指标以确认 EventBridge 调用了目标。Invocations 指标仅显示 EventBridge 尝试调用目标的情况。该指标无法确认调用是否已完成。

要检查目标调用的完成状态,请使用相应规则的 FailedInvocations 指标。如果 FailedInvocations 指标中没有数据点,但 Invocations 指标中有相应的数据点,则表明 EventBridge 已成功调用目标。

调用失败可能是因为目标账户的事件总线没有所需的权限。源账户规则目标上的 AWS Identity and Access Management (IAM) 权限不足也可能导致调用失败。

源账户或组织没有正确的权限

要接收来自其他账户或 AWS Organizations 的事件,源账户必须具有发送事件的权限。确认附加到事件总线的基于资源的策略向源账户授予了相应的权限。

具有正确权限的策略示例:

{  "Version": "2012-10-17",
  "Statement": [{
    "Sid": "WebStoreCrossAccountPublish",
    "Effect": "Allow",
    "Principal": {
      "AWS": "arn:aws:iam::SOURCE-ACC-ID:root"
    },
    "Action": "events:PutEvents",
    "Resource": "arn:aws:events:REGION:DESTINATION-ACC-ID:event-bus/destination-account-bus-name"
  }]
}

**注意:**将 SOURCE-ACC-ID 替换为源账户的 ID,将 DESTINATION-ACC-ID 替换为目标账户的 ID。此外,将 REGION 替换为目标账户的区域,将 destination-account-bus-name 替换为目标账户的总线名称。

当规则的目标为事件总线时,使用 IAM 角色授予向其他账户或区域发送事件的权限。将以下基于资源的策略附加到 IAM 角色:

{    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "ActionsForResource",
            "Effect": "Allow",
            "Action": [
                "events:PutEvents"
            ],
            "Resource": [
                "arn:aws:events:REGION:DESTINATION-ACC-ID:event-bus/DESTINATION-ACCOUNT-BUS-NAME"
            ]
        }
    ]
}

**注意:**将 DESTINATION-ACC-ID 替换为目标账户的 ID。此外,将 REGION 替换为目标账户的区域,将 DESTINATION-ACCOUNT-BUS-NAME 替换为目标账户的总线名称。

然后,源账户可以在目标账户的事件总线上执行 PutEvents API 调用。

如果您使用 PutTargets 手动创建规则目标并在事件总线上为整个组织设置权限,请指定 IAM 角色。

有关所需的 IAM 权限的详细信息,请参阅授予允许来自其他 AWS 账户的事件的权限。另请参阅 Amazon EventBridge 中事件总线的权限

目标账户上的事件规则未启动,或者目标调用失败

当您将事件发布到目标账户的事件总线时,请在目标账户中配置规则以与来自发件人账户的事件相匹配。

要确认规则的模式与发起该规则的传入事件相匹配,请检查目标账户的规则指标。验证目标的调用是否成功。有关 EventBridge 指标的详细信息,请参阅监控 Amazon EventBridge

AWS 官方已更新 6 个月前