Direkt zum Inhalt

Wie verwende ich eine Warteschlange mit unzustellbaren Nachrichten, um Fehler in der FailedInvocations-Metrik für EventBridge-Regeln zu beheben?

Lesedauer: 4 Minute
0

Ich möchte eine Warteschlange für unzustellbare Nachrichten (DLQ) mit dem Ziel einer Amazon EventBridge-Regel verknüpfen, um Fehler in der FailedInvocations-Metrik zu beheben.

Behebung

Hinweis: Wenn du beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen dazu unter Problembehandlung bei der AWS CLI. Stelle außerdem sicher, dass du die neueste Version der AWS CLI verwendest.

Eine standardmäßige Amazon SQS-Warteschlange erstellen

Verwende die Amazon Simple Queue Service (Amazon SQS)-Konsole, um die SQS-Warteschlange zu erstellen.

Führe die folgenden Schritte aus:

  1. Öffne die Amazon-SQS-Konsole.
  2. Wähle Warteschlange erstellen.
  3. Wähle für Typ den Warteschlangentyp Standard.
  4. Gib einen Namen für die Warteschlange ein, zum Beispiel myEventBridgedLQ.
  5. Wähle Warteschlange erstellen.

Die SQS-Warteschlange dem Ziel einer EventBridge-Regel zuordnen

Führe die folgenden Schritte aus:

  1. Öffne die EventBridge-Konsole.
  2. Wähle im Navigationsbereich Regeln.
  3. Wähle die EventBridge-Regel aus, die das Ziel nicht aufrufen konnte, und wähle dann Bearbeiten.
  4. Wähle im Navigationsbereich Ziel(e) auswählen und wähle dann Zusätzliche Einstellungen.
  5. Wähle für Warteschlange für unzustellbare Nachrichten die Option Amazon-SQS-Warteschlange in meinem AWS-Konto auswählen, um sie als Warteschlange für unzustellbare Nachrichten zu verwenden. Wähle dann die SQS-Warteschlange in der Drop-down-Liste SQS-Warteschlange auswählen aus.
  6. Wähle Zur Überprüfung und Aktualisierung überspringen.
  7. Wähle Regel aktualisieren.

EventBridge muss die Berechtigung haben, Ereignisse mit fehlgeschlagenen Aufrufen an die SQS-Warteschlange zu senden. Wenn du die EventBridge-Konsole verwendest, um einen DLQ mit dem Ziel der EventBridge-Regel zu verknüpfen, fügt EventBridge die Berechtigung automatisch hinzu. Wenn du AWS CLI, AWS SDK oder AWS CloudFormation verwendest, musst du manuell eine ressourcenbasierte Richtlinie erstellen, die die erforderliche Berechtigung erteilt. Du kannst den Befehl set-queue-attributes ausführen, um die Richtlinie zu ändern.

Wichtig: Wenn du die SQS-Warteschlange verschlüsselt hast, musst du einen vom Kunden verwalteten Schlüssel erstellen. Du musst außerdem die folgende Genehmigung in die Schlüsselrichtlinie für den AWS Key Management Service (AWS KMS) aufnehmen:

{      "Sid": "Allow EventBridge to use the key",  
    "Effect": "Allow",  
    "Principal": {  
        "Service": "events.amazonaws.com"  
    },  
    "Action": [  
        "kms:Decrypt",  
        "kms:GenerateDataKey"  
    ],  
    "Resource": "*"  
}

Weitere Informationen findest du unter Konfigurieren von AWS KMS-Berechtigungen.

Ereignisse an den EventBridge-Event-Bus senden, die der EventBridge-Regel entsprechen

Um Ereignisse an den Standard-Event-Bus zu senden, die der Event-Regel entsprechen, ändere die AWS-Umgebung für AWS-Serviceereignisse. Wenn die EventBridge-Regel das Ziel nicht aufruft, sendet EventBridge alle fehlgeschlagenen Ereignisse an den DLQ.

Verwende die PutEvents-API oder den Befehl put-events, um Ereignisse an den benutzerdefinierten Event-Bus zu senden, die der Event-Regel entsprechen.

Gehe wie folgt vor, um die FailedInvocations-Metrik für die EventBridge-Regel zu überprüfen:

  1. Öffne die EventBridge-Konsole.
  2. Wähle die EventBridge-Regel aus und wähle dann die Registerkarte ** Überwachung**.
  3. Suche nach MatchedEvents und TriggeredRules, um zu bestätigen, dass die Regel mit einem Ereignis übereinstimmt.
  4. Überprüfe Invocations und ** FailedInvocations**, um zu bestätigen, dass die Regel versucht hat, das Ziel aufzurufen.

Hinweis: Wenn die Metriken keine Datenpunkte haben, stelle sicher, dass du das Regelmuster richtig konfiguriert hast.

Das fehlgeschlagene Ereignis abrufen, das EventBridge an den DLQ gesendet hat

Führe die folgenden Schritte aus:

  1. Öffne die EventBridge-Konsole.
  2. Wähle im Navigationsbereich Regeln.
  3. Wähle die EventBridge-Regel aus, bei der der Aufruf fehlgeschlagen ist.
  4. Wähle die Registerkarte Ziele und wähle dann den DLQ aus.
  5. Wähle Nachrichten senden und empfangen, um die Seite Nachrichten senden und empfangen in der SQS-Konsole zu öffnen.
  6. Wähle Abruf von Nachrichten.
    Hinweis: Im Abschnitt Nachrichten wird eine Liste der empfangenen Nachrichten angezeigt. Die Liste zeigt die Nachrichten-ID, das Sendedatum, die Größe und die Anzahl der empfangenen Nachrichten für jede Nachricht.
  7. Wähle eine der Nachrichten aus. Wähle dann Details anzeigen, um das Ereignis anzuzeigen, das EventBridge nicht an das Ziel senden konnte.
  8. Wähle die Registerkarte Attribute, um die Attribute ERROR_CODE, ERROR_MESSAGE, RULE_ARN und TARGET_ARN anzuzeigen.
    Hinweis: Die Attribute ERROR_CODE und ERROR_MESSAGE geben den Grund für den Fehler bei der Ereignisübermittlung an.

Ähnliche Informationen

Wie kann ich Probleme mit den Amazon-EventBridge-Regeln beheben?

Amazon SQS-Berechtigungen

AWS OFFICIALAktualisiert vor 5 Monaten