Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Configurazione della coda di lettere non scritte di una pianificazione in Scheduler EventBridge
Amazon EventBridge Scheduler supporta le code di lettere morte () DLQ utilizzando Amazon Simple Queue Service. Quando una pianificazione non riesce a richiamare la sua destinazione, EventBridge Scheduler invia un JSON payload contenente i dettagli di chiamata e qualsiasi risposta ricevuta dalla destinazione a una coda Amazon SQS standard specificata.
Il seguente argomento si riferisce a questo evento come a un evento non valido. JSON Un evento con lettera morta consente di risolvere problemi relativi alla pianificazione o agli obiettivi. Se configuri una politica di nuovi tentativi per la tua EventBridge pianificazione, Scheduler invia l'evento «dead-letter» che contiene, esaurendo il numero massimo di tentativi impostato.
I seguenti argomenti descrivono come configurare una SQS coda Amazon come programma, impostare le autorizzazioni necessarie a EventBridge Scheduler DLQ per recapitare messaggi ad Amazon SQS e ricevere eventi con lettera morta da. DLQ
Argomenti
Crea una SQS coda Amazon
Prima di configurarne una DLQ per la tua pianificazione, devi creare una SQS coda Amazon standard. Per istruzioni sulla creazione di una coda utilizzando la SQS console Amazon, consulta Creating an Amazon SQS queue nella Amazon Simple Queue Service Developer Guide.
Nota
EventBridge Scheduler non supporta l'utilizzo di una FIFO coda come pianificazione. DLQ
Utilizzate il seguente AWS CLI comando per creare una coda standard.
$
aws sqs create-queue --queue-name
queue-name
In caso di successo, lo vedrai QueueURL
nell'output.
{
"QueueUrl": "https://sqs.us-west-2.amazonaws.com/123456789012/scheduler-dlq-test"
}
Dopo aver creato la coda, prendi nota della codaARN. Ti servirà ARN quando specifichi una DLQ per la tua EventBridge pianificazione di Scheduler. Puoi trovare la tua coda ARN nella SQS console Amazon o utilizzando il get-queue-attributes
$
aws sqs get-queue-attributes --queue-url
your-dlq-url
--attribute-names QueueArn
In caso di successo, vedrai la coda ARN nell'output.
{ "Attributes": { "QueueArn": "arn:aws:sqs:us-west-2:123456789012:scheduler-dlq-test" } }
Nella sezione successiva, aggiungerai le autorizzazioni necessarie al tuo ruolo di esecuzione della pianificazione per consentire a EventBridge Scheduler di inviare eventi con lettera morta ad Amazon. SQS
Imposta le autorizzazioni per i ruoli di esecuzione
Per consentire a EventBridge Scheduler di inviare eventi con lettera morta ad AmazonSQS, il tuo ruolo di esecuzione della pianificazione richiede la seguente politica di autorizzazione. Per ulteriori informazioni su come allegare una nuova politica di autorizzazione al ruolo di esecuzione pianificata, consulta Configurazione del ruolo di esecuzione.
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "sqs:SendMessage" ], "Effect": "Allow", "Resource": "*" } ] }
Nota
Il tuo ruolo di esecuzione della pianificazione potrebbe già avere le autorizzazioni richieste allegate se utilizzi EventBridge Scheduler per richiamare un target Amazon. SQS API
Nella sezione successiva, utilizzerai la console EventBridge Scheduler e specificherai una DLQ per la tua pianificazione.
Specificate una coda di lettere non scritte
Per specificare aDLQ, usa la console EventBridge Scheduler o AWS CLI per aggiornare una pianificazione esistente o crearne una nuova.
Nella sezione successiva, utilizzerai il AWS CLI per ricevere un evento senza lettera morta da. DLQ
Recupera l'evento con lettera morta
Utilizzate il 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
In caso di successo, verrà visualizzato un output simile al seguente.
{ "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" } } } ] }
Nota i seguenti attributi nell'evento dead-letter per aiutarti a identificare e risolvere i possibili motivi per cui l'invocazione di Target non è riuscita.
-
ERROR_CODE
— Contiene il codice di errore che EventBridge Scheduler riceve dal servizio della destinazione. API Nell'esempio precedente, il codice di errore restituito da Amazon SQS èAWS.SimpleQueueService.NonExistentQueue
. Se la pianificazione non riesce a richiamare un obiettivo a causa di un problema con EventBridge Scheduler, vedrai invece il seguente codice di errore:.AWS.Scheduler.InternalServerError
-
ERROR_MESSAGE
— Contiene il messaggio di errore che EventBridge Scheduler riceve dal servizio della destinazione. API Nell'esempio precedente, il messaggio di errore restituito da Amazon SQS èThe specified queue does not exist for this wsdl version
. Se la pianificazione fallisce a causa di un problema con EventBridge Scheduler, vedrai invece il seguente messaggio di errore:.Unexpected error occurred while processing the request
-
TARGET_ARN
- La ARN destinazione richiamata dalla pianificazione, nel seguente formato di servizioARN:.arn:aws:scheduler:::aws-sdk:
service
:apiAction
-
EXHAUSTED_RETRY_CONDITION
— Indica il motivo per cui l'evento è stato consegnato a. DLQ Questo attributo sarà presente se l'errore proveniente dalla destinazione API è un errore ripetibile e non un errore permanente. L'attributo può contenere i valoriMaximumRetryAttempts
se EventBridge Scheduler lo ha inviato DLQ dopo aver superato il numero massimo di tentativi configurato per la pianificazione oppureMaximumEventAgeInSeconds
se l'evento è più vecchio dell'età massima configurata nella pianificazione e continua a non riuscire a consegnarlo.
Nell'esempio precedente, possiamo determinare, in base al codice di errore e al messaggio di errore, che la coda di destinazione specificata per la pianificazione non esiste.