Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Konfiguration der Warteschlange für unzustellbare Briefe eines Zeitplans im Scheduler EventBridge
Amazon EventBridge Scheduler unterstützt Warteschlangen mit unbestätigten Briefen (DLQ) mithilfe von Amazon Simple Queue Service. Wenn ein Zeitplan sein Ziel nicht aufrufen kann, übermittelt EventBridge Scheduler eine JSON Nutzlast mit Aufrufdetails und allen vom Ziel empfangenen Antworten an eine von Ihnen angegebene SQS Amazon-Standardwarteschlange.
Im folgenden Thema wird dies als Ereignis bezeichnet, bei dem es sich um ein unvorhergesehenes Ereignis handelt. JSON Bei einem Ereignis mit unerwartetem Datum können Sie Probleme mit Ihrem Zeitplan oder Ihren Zielen beheben. Wenn Sie eine Wiederholungsrichtlinie für Ihren Zeitplan konfigurieren, übermittelt EventBridge Scheduler das Ereignis, bei dem die von Ihnen festgelegte Höchstzahl an Wiederholungen ausgeschöpft ist.
In den folgenden Themen wird beschrieben, wie Sie eine SQS Amazon-Warteschlange DLQ für Ihren Zeitplan konfigurieren, die Berechtigungen einrichten können, die der EventBridge Scheduler für die Zustellung von Nachrichten an Amazon benötigtSQS, und wie Sie unzustellbare Ereignisse von empfangen können. DLQ
Themen
Erstellen Sie eine SQS Amazon-Warteschlange
Bevor Sie eine DLQ für Ihren Zeitplan konfigurieren, müssen Sie eine SQS Standard-Amazon-Warteschlange erstellen. Anweisungen zum Erstellen einer Warteschlange mit der SQS Amazon-Konsole finden Sie unter Erstellen einer SQS Amazon-Warteschlange im Amazon Simple Queue Service Developer Guide.
Anmerkung
EventBridge Scheduler unterstützt nicht die Verwendung einer FIFO Warteschlange als ZeitplanDLQ.
Verwenden Sie den folgenden AWS CLI Befehl, um eine Standardwarteschlange zu erstellen.
$
aws sqs create-queue --queue-name
queue-name
Wenn dies erfolgreich ist, werden Sie das QueueURL
in der Ausgabe sehen.
{
"QueueUrl": "https://sqs.us-west-2.amazonaws.com/123456789012/scheduler-dlq-test"
}
Nachdem Sie die Warteschlange erstellt haben, notieren Sie sich die WarteschlangeARN. Sie benötigen denARN, wenn Sie einen Zeitplan DLQ für Ihren EventBridge Scheduler angeben. Sie finden Ihre Warteschlange ARN in der SQS Amazon-Konsole oder mithilfe des get-queue-attributes
$
aws sqs get-queue-attributes --queue-url
your-dlq-url
--attribute-names QueueArn
Bei Erfolg wird die Warteschlange ARN in der Ausgabe angezeigt.
{ "Attributes": { "QueueArn": "arn:aws:sqs:us-west-2:123456789012:scheduler-dlq-test" } }
Im nächsten Abschnitt fügen Sie Ihrer Rolle für die Ausführung von Terminplänen die erforderlichen Berechtigungen hinzu, damit EventBridge Scheduler unvollständige Ereignisse an Amazon übermitteln kann. SQS
Richten Sie Berechtigungen für Ausführungsrollen ein
Damit EventBridge Scheduler unbemerkte Ereignisse an Amazon übermitteln kannSQS, benötigt Ihre Rolle für die Ausführung von Zeitplänen die folgende Berechtigungsrichtlinie. Weitere Informationen zum Hinzufügen einer neuen Berechtigungsrichtlinie zu Ihrer Rolle für die Ausführung von Zeitplänen finden Sie unter Ausführungsrolle einrichten.
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "sqs:SendMessage" ], "Effect": "Allow", "Resource": "*" } ] }
Anmerkung
Ihrer Rolle zur Ausführung von Zeitplänen sind möglicherweise bereits die erforderlichen Berechtigungen zugewiesen, wenn Sie EventBridge Scheduler verwenden, um ein SQS API Amazon-Ziel aufzurufen.
Im nächsten Abschnitt verwenden Sie die EventBridge Scheduler-Konsole und geben einen DLQ für Ihren Zeitplan an.
Geben Sie eine Warteschlange für unzustellbare Briefe an
Um einen anzugebenDLQ, verwenden Sie die EventBridge Scheduler-Konsole oder die AWS CLI , um einen vorhandenen Zeitplan zu aktualisieren oder einen neuen zu erstellen.
Im nächsten Abschnitt verwenden Sie die, AWS CLI um ein Ereignis mit unerlaubtem Brief von der zu empfangen. DLQ
Rufen Sie das Dead-Letter-Ereignis ab
Verwenden Sie den receive-message
--max-number-of-messages
$
aws sqs receive-message --queue-url
your-dlq-url
--attribute-names All --message-attribute-names All --max-number-of-messages 1
Bei Erfolg erhalten Sie eine Ausgabe, die der folgenden ähnelt.
{ "Messages": [ { "MessageId": "2aeg3510-fe3a-4f5a-ab6a-6906560eaf7e", "ReceiptHandle": "AQEBkNKTdOMrWgHKPoITRBwrPoK3eCSZIcZwVqCY0BZ+FfTcORFpopJbtCqj36VbBTlHreM8+qM/m5jcwqSlAlGmIJO/hYmMgn/+dwIty9izE7HnpvRhhEyHxbeTZ5V05RbeasYaBdNyi9WLcnAHviDh6MebLXXNWoFyYNsxdwJuG0f/w3htX6r3dxpXvvFNPGoQb8ihY37+u0gtsbuIwhLtUSmE8rbldEEwiUfi3IJ1zEZpUS77n/k1GWrMrnYg0Gx/BuaLzOrFi2F738XI/Hnh45uv3ca6OYwS1ojPQ1LtX2URg1haV5884FYlaRvY8jRlpCZabTkYRTZKSXG5KNgYZnHpmsspii6JNkjitYVFKPo0H91w5zkHlSx3REAuWk7m3r7PmOMvTNPMhctbD3CkTw==", "MD5OfBody": "07adc3fc889d6107d8bb8fda42fe0573", "Body": "{\"MessageBody\":\"Hello, world!",\"QueueUrl\":\"https://sqs.us-west-2.amazonaws.com/123456789012/does-not-exist\"}", "Attributes": { "SenderId": "AROA2DZE3W4CTL5ZR7EIN:ff00212d8c453aaaae644bc6846d4723", "ApproximateFirstReceiveTimestamp": "1652499058144", "ApproximateReceiveCount": "2", "SentTimestamp": "1652490733042" }, "MD5OfMessageAttributes": "f72c1d78100860e00403d849831d4895", "MessageAttributes": { "ERROR_CODE": { "StringValue": "AWS.SimpleQueueService.NonExistentQueue", "DataType": "String" }, "ERROR_MESSAGE": { "StringValue": "The specified queue does not exist for this wsdl version.", "DataType": "String" }, "EXECUTION_ID": { "StringValue": "ad06616e51cdf74a", "DataType": "String" }, "EXHAUSTED_RETRY_CONDITION": { "StringValue": "MaximumEventAgeInSeconds", "DataType": "String" } "IS_PAYLOAD_TRUNCATED": { "StringValue": "false", "DataType": "String" }, "RETRY_ATTEMPTS": { "StringValue": "0", "DataType": "String" }, "SCHEDULED_TIME": { "StringValue": "2022-05-14T01:12:00Z", "DataType": "String" }, "SCHEDULE_ARN": { "StringValue": "arn:aws:scheduler:us-west-2:123456789012:schedule/DLQ-test", "DataType": "String" }, "TARGET_ARN": { "StringValue": "arn:aws:scheduler:::aws-sdk:sqs:sendMessage", "DataType": "String" } } } ] }
Notieren Sie sich die folgenden Attribute im Dead-Letter-Ereignis, um mögliche Gründe für das Fehlschlagen des Zielaufrufs zu identifizieren und zu beheben.
-
ERROR_CODE
— Enthält den Fehlercode, den EventBridge Scheduler vom Dienst des Ziels erhält. API Im vorherigen Beispiel SQS lautet der von Amazon zurückgegebene FehlercodeAWS.SimpleQueueService.NonExistentQueue
. Wenn der Zeitplan aufgrund eines Problems mit dem EventBridge Scheduler kein Ziel aufrufen kann, wird stattdessen der folgende Fehlercode angezeigt:.AWS.Scheduler.InternalServerError
-
ERROR_MESSAGE
— Enthält die Fehlermeldung, die EventBridge Scheduler vom Dienst des Ziels erhält. API Im vorherigen Beispiel SQS lautet die von Amazon zurückgegebene FehlermeldungThe specified queue does not exist for this wsdl version
. Wenn der Zeitplan aufgrund eines Problems mit dem EventBridge Scheduler fehlschlägt, wird stattdessen die folgende Fehlermeldung angezeigt:Unexpected error occurred while processing the request
. -
TARGET_ARN
— Das ARN Ziel, das Ihr Zeitplan aufruft, im folgenden ARN Serviceformat:.arn:aws:scheduler:::aws-sdk:
service
:apiAction
-
EXHAUSTED_RETRY_CONDITION
— Gibt an, warum das Ereignis an die DLQ gesendet wurde. Dieses Attribut ist vorhanden, wenn es sich bei dem Fehler des Ziels um einen Fehler API handelt, der wiederholt werden kann, und nicht um einen dauerhaften Fehler. Das Attribut kann die Werte enthalten,MaximumRetryAttempts
wenn der EventBridge Scheduler es an die Adresse gesendet hat, DLQ nachdem es die maximale Anzahl an Wiederholungsversuchen überschritten hat, die Sie für den Zeitplan konfiguriert habenMaximumEventAgeInSeconds
, oder wenn das Ereignis älter als das im Zeitplan festgelegte Höchstalter ist und immer noch nicht zugestellt werden kann.
Im vorherigen Beispiel können wir anhand des Fehlercodes und der Fehlermeldung feststellen, dass die Zielwarteschlange, die wir für den Zeitplan angegeben haben, nicht existiert.