DLQ при неудачной задаче в шаговой функции - PullRequest
0 голосов
/ 09 января 2019

В случае сбойной задачи в пошаговой функции, после попытки с помощью стратегии повтора, есть ли способ, которым я могу поместить эти сбойные задачи в какой-то DLQ или что-то в этом роде, чтобы кто-то мог отслеживать эти сообщения позже и перенаправлять их после устранения проблемы

1 Ответ

0 голосов
/ 14 января 2019

Да, вы можете перехватить ошибку после повторной попытки и отправить ее в SQS. Вот пример.

{
   "StartAt": "GetMyRecords",
   "States": {
      "GetMyRecords": {
         "Type": "Task",
         "Resource": "<resource arn>",
         "TimeoutSeconds": 80,
         "Retry": [
            {
               "ErrorEquals": [
                  "CustomError"
               ],
               "IntervalSeconds": 300,
               "MaxAttempts": 10,
               "BackoffRate": 1.1
            }
         ],
         "Catch": [
            {
               "ErrorEquals": [
                  "CustomError"
               ],
               "Next": "SendToSQS",
               "ResultPath": "$.error"
            }
         ],
         "End": true
      },
      "SendToSQS": {
         "Type": "Task",
         "Resource": "arn:aws:states:::sqs:sendMessage",
         "Parameters": {
            "QueueUrl": "https://sqs.us-east-1.amazonaws.com/123456789012/myQueue",
            "MessageBody.$": "$.input.message",
            "MessageAttributes": {
               "MyAttribute1": {
                  "DataType": "String",
                  "StringValue": "Value of attribute 1"
               },
               "MyAttribute1": {
                  "DataType": "String",
                  "StringValue": "Value of attribute 2"
               }
            }
         },
         "End": true
      }
   }
}
...