Лямбда не помещает сообщение в dlq

Я просто пытаюсь проверить свой DLQ на Lambda, и я не понимаю, почему сообщения не помещаются на него. Мой код просто делает 1 вещь throw new Exception("Test");,

Первая ошибка была понятна, я пытался сделать это синхронно, используя кнопку Test, После этого я настраиваю Kinesis и начал отправлять на него сообщение, но ничего не изменилось. На странице мониторинга на CloudWatch metrics Я видел, что было несколько ошибок в Errors, Availability но не было ошибок в DeadLetterErrors,

Что касается DLQ, который был создан, то это просто простая стандартная очередь без изменений в конфигурации.

Заранее спасибо за помощь

0 ответов

Вызов лямбды асинхронно, как показано ниже, с помощью AWS SDK.

$ aws lambda invoke --function-name my-function --invocation-type Event --payload '{ "key": "value" }' response.json { "StatusCode": 202 }

Документы - https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html

  • Использование потоков Kinesis для запуска лямбда означает, что вы используете синхронный вызов. Однако DLQ доступен только для асинхронных вызовов.
  • Хорошей новостью является то, что в ноябре 2019 года AWS опубликовала новые механизмы обработки ошибок для источников событий Kinesis и DynamoDB.

С помощью этой функции вы можете настроить место назначения в случае сбоя. Этим местом назначения может быть тема SNS, очередь SQS, другая лямбда-функция или шина событий EventBridge.

Чтобы добавить это через интерфейс консоли,

  1. Перейти к лямбда-функции
  2. Нажми на Add Destination кнопка
  3. Выберите вызов потока
  4. Выбрать при отказе
  5. Выберите очередь SQS в качестве места назначения и укажите ее на SQS, который вы хотите использовать как DLQ.

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

LambdaTrigger:
  Type: AWS::Lambda::EventSourceMapping
  Properties:
    FunctionName: !GetAtt Lambda.Arn
    EventSourceArn: !GetAtt Kinesis.Arn
    DestinationConfig:
      OnFailure:
        Destination: !GetAtt DLQ.Arn
Другие вопросы по тегам