Wie behebe ich die Fehler „ReceipHandleIsInvalid“ und „InvalidParameterValue“ beim Aufrufen der AWS-SQS-DeleteMessage-API?

Lesedauer: 2 Minute
0

Ich erhalte den Fehler „ReceiptHandleIsInvalid“ oder „InvalidParameterValue“, wenn ich versuche, Nachrichten aus meiner Amazon-Simple-Queue-Service (Amazon SQS)-Warteschlange zu löschen.

Kurzbeschreibung

Wenn du eine Nachricht aus einer Amazon-SQS-Warteschlange erhältst, erhältst du auch einen Empfangsidentifikator für diese Nachricht für FIFO (First-In-First-Out) und Standardwarteschlangen. Der Empfangsidentifikator ist erforderlich, wenn du die Nachricht löschst oder deren Sichtbarkeit änderst.

Wenn der Empfangsidentifikator falsch ist, erhältst du eine Fehlermeldung, die dem folgenden Beispiel ähnelt:

Beim Aufrufen des DeleteMessage-Vorgangs ist ein Fehler aufgetreten (ReceiptHandleIsInvalid): Der eingegebene Empfangsidentifikator „IHR EMPFANGSIDENTIFIKATOR“ ist kein gültiger Empfangsidentifikator.

Wenn der Empfangsidentifikator abgelaufen ist, erhältst du eine Fehlermeldung, die dem folgenden Beispiel ähnelt:

Beim Aufrufen des DeleteMessage-Vorgangs ist ein Fehler aufgetreten (InvalidParameterValue): Der Wert „IHR EMPANGSIDENTIFIKATOR“ für den Parameter Empfangsidentifikator ist ungültig. Grund: Der Empfangsidentifikator ist abgelaufen.

Der Empfangsidentifikator läuft bei Überschreiten der Sichtbarkeitszeit ab. Wenn eine Sichtbarkeitszeit abläuft, kehrt die Nachricht in die Warteschlange zurück. Wenn du die Nachricht erneut von einem Benutzer erhältst, bekommst du einen neuen Empfangsidentifikator. Dieser Fehler tritt auf, weil du einen älteren Empfangsidentifikator anstelle des neuesten Empfangsidentifikators verwendet hast.

**Hinweis:**Ältere Empfangsidentifikatoren sind möglicherweise erfolgreich, wenn du Standard-SQS-Warteschlangen verwendest. Es hat sich jedoch bewährt, den neuesten Empfangs-Handle fürDeleteMessage-API-Aufrufe zu verwenden.

Behebung

Um Fehler durch falsche oder abgelaufene Empfangsidentifikatoren zu vermeiden, verwende den richtigen Empfangsidentifikator, um die Nachricht innerhalb der SQS-Warteschlangensichtbarkeitszeit zu löschen.

Wenn du eine Nachricht mehr als einmal erhältst, überprüfe die Antwort des letzten ReceiveMessage-API-Aufrufs und identifiziere den ReceiptHandle-Wert. Verwende dann den identifiziertenReceiptHandle-Wert, wenn du die DeleteMessage-API aufrufst.

Außerdem wird dieser Fehler möglicherweise angezeigt, wenn du denDeleteMessage-API-Aufruf ausführst:

Beim Aufrufen des DeleteMessage-Vorgangs ist ein Fehler aufgetreten (ReceiptHandleIsInvalid): Der Empfangsidentifikator „IHR EMPFANGSIDENTIFIKATOR“ ist für diese Warteschlange nicht gültig.

Dieser Fehler tritt auf, wenn du versuchst, eine Nachricht mit einem Empfangsidentifikator zu löschen, der aus einer anderen SQS-Warteschlange stammt. Um diesen Fehler zu vermeiden, verwende den richtigen Empfangsidentifikator aus der SQS-Warteschlange, in der sich die Nachricht befindet.

Ähnliche Informationen

Bewährte Methoden für Amazon SQS

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Monat