Direkt zum Inhalt

Wie behebe ich Probleme mit konto- oder regionsübergreifenden EventBridge-Regeln?

Lesedauer: 4 Minute
0

Meine Amazon EventBridge-Zielereignisregel wird nicht ausgelöst, wenn ich Ereignisse an ein anderes AWS-Konto oder eine andere AWS-Region sende.

Kurzbeschreibung

Ereignisse können aus den folgenden Gründen möglicherweise nicht konto- oder regionsübergreifend veröffentlicht werden:

  • Die Ereignisregel für das Quellkonto wurde nicht ausgelöst oder die Zielaufrufe sind fehlgeschlagen.
  • Das Quellkonto oder die Quellorganisation hat nicht die richtigen Berechtigungen.
  • Die Ereignisregel für das Zielkonto wurde nicht ausgelöst oder die Zielaufrufe sind fehlgeschlagen.

Verwende eine Warteschlange für unzustellbare Nachrichten (DLQ), um Fehlercodes für fehlgeschlagene Aufrufe zu erfassen. Weitere Informationen findest du unter Wie ändere ich die Einstellungen für EventBridge-Wiederholungsversuche und verwende eine DLQ für fehlgeschlagene Aufrufe?

Lösung

Die Ereignisregel für das Quellkonto wurde nicht initiiert oder die Zielaufrufe sind fehlgeschlagen

EventBridge veröffentlicht ein Ereignis nur dann kontenübergreifend, wenn das Quellkonto eine Ereignisregel initiiert und das Ziel aufruft.

EventBridge löst eine Regel aus, wenn ihr Muster mit dem eingehenden Ereignis übereinstimmt. Wenn eine Musterübereinstimmung vorliegt, sendet EventBridge den Wert 1 an die Metrik TriggeredRules, die dem übereinstimmenden Ereignis entspricht. Weitere Informationen zu EventBridge-Metriken findest du unter Überwachung von Amazon EventBridge.

Wenn EventBridge die Regel auslöst, überprüfe die Metrik Aufrufe für die entsprechende Regel, um sicherzustellen, dass EventBridge das Ziel aufgerufen hat. Die Metrik Aufrufe zeigt nur, dass EventBridge versucht hat, das Ziel aufzurufen. Die Metrik bestätigt nicht, dass der Aufruf abgeschlossen wurde.

Verwende die Metrik FailedInvocations für die entsprechende Regel, um den Abschlussstatus des Zielaufrufs zu überprüfen. Wenn die Metrik FailedInvocations keinen Datenpunkt enthält, die Metrik Aufrufe jedoch einen entsprechenden Datenpunkt, hat EventBridge das Ziel erfolgreich aufgerufen.

Fehlgeschlagene Aufrufe können auftreten, weil der Event Bus des Zielkontos nicht über die erforderlichen Berechtigungen verfügt. Unzureichende AWS Identity and Access Management (IAM)-Berechtigungen für das Ziel der Regel des Quellkontos können ebenfalls zu fehlgeschlagenen Aufrufen führen.

Das Quellkonto oder die Quellorganisation hat nicht die richtigen Berechtigungen

Um Ereignisse von anderen Konten oder AWS Organizations zu empfangen, muss das Quellkonto über die Berechtigung zum Senden von Ereignissen verfügen. Vergewissere dich, dass die ressourcenbasierte Richtlinie, die an den Event Bus angehängt ist, dem Quellkonto die entsprechende Berechtigung erteilt.

Beispielrichtlinie mit den richtigen Berechtigungen:

{  "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"
  }]
}

Hinweis: Ersetze SOURCE-ACC-ID durch die ID des Quellkontos und DESTINATION-ACC-ID durch die ID des Zielkontos. Ersetze außerdem REGION durch die Region des Zielkontos und destination-account-bus-name durch den Busnamen des Zielkontos.

Wenn das Ziel der Regel ein Event Bus ist, verwende eine IAM-Rolle, um die Erlaubnis zu erteilen, Ereignisse an ein anderes Konto oder eine andere Region zu senden. Hänge die folgende ressourcenbasierte Richtlinie an die IAM-Rolle an:

{    "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"
            ]
        }
    ]
}

Hinweis: Ersetze DESTINATION-ACC-ID durch die ID deines Zielkontos. Ersetze außerdem REGION durch die Region des Zielkontos und DESTINATION-ACCOUNT-BUS-NAME durch den Busnamen des Zielkontos.

Das Quellkonto kann dann einen PutEvents-API-Aufruf auf dem Event Bus des Zielkontos ausführen.

Wenn du PutTargets verwendest, um das Ziel der Regel manuell zu erstellen und Berechtigungen für die gesamte Organisation auf dem Event Bus festzulegen, gib eine IAM-Rolle an.

Weitere Informationen zu den erforderlichen IAM-Berechtigungen findest du unter Gewähren von Berechtigungen, um Ereignisse von anderen AWS-Konten zuzulassen. Weitere Informationen findest du unter Berechtigungen für Event Busse in Amazon EventBridge.

Die Ereignisregel für das Zielkonto wurde nicht ausgelöst oder die Zielaufrufe sind fehlgeschlagen.

Wenn du ein Ereignis im Event Bus des Zielkontos veröffentlichst, konfiguriere Regeln im Zielkonto, die Ereignisse aus dem Senderkonto abgleichen.

Um zu bestätigen, dass das Muster der Regel mit dem eingehenden Ereignis übereinstimmt, das sie auslöst, überprüfe die Metriken der Regel im Zielkonto. Stelle sicher, dass der Aufruf des Ziels erfolgreich ist. Weitere Informationen zu EventBridge-Metriken findest du unter Überwachung von Amazon EventBridge.

AWS OFFICIALAktualisiert vor 6 Monaten