Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

551
Vistas
Marco sin servidor, ¿cómo crear una cola de DeadLetter de AWS SQS?

Estoy tratando de crear una cola de mensajes fallidos de AWS SQS, utilizando el marco sin servidor
La idea es tener un SQS para activar una función Lambda,
y tener otro SQS como DeadLetterQueue, es decir. para recoger el mensaje en caso de que Lambda falle o supere el tiempo de espera

Hice lo siguiente para crear un proyecto de prueba:

 mkdir dlq cd dlq/ serverless create --template aws-nodejs

Lo siguiente es mi serverless.yaml -

 service: dlq provider: name: aws runtime: nodejs12.x region: ap-southeast-1 role: arn:aws:iam::xxxx:role/dlqLambdaRole plugins: - serverless-plugin-lambda-dead-letter functions: dlq: handler: handler.hello events: - sqs: arn: Fn::GetAtt: - MainQueue - Arn deadLetter: targetArn: GetResourceArn: DeadLetterQueue resources: Resources: MainQueue: Type: AWS::SQS::Queue Properties: QueueName: main DeadLetterQueue: Type: AWS::SQS::Queue Properties: QueueName: dlq

También probé lo siguiente:

 service: dlq provider: name: aws runtime: nodejs12.x region: ap-southeast-1 role: arn:aws:iam::xxxx:role/dlqLambdaRole plugins: - serverless-plugin-lambda-dead-letter functions: dlq: handler: handler.hello events: - sqs: arn: Fn::GetAtt: - MainQueue - Arn deadLetter: sqs: dlq resources: Resources: MainQueue: Type: AWS::SQS::Queue Properties: QueueName: main

Pero en ambos casos, el marco solo está creando un SQS normal

Estoy siguiendo este documento -
https://www.serverless.com/plugins/serverless-plugin-lambda-dead-letter

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Mejor tarde que nunca. Espero que esto te ayude a ti o a alguien que esté buscando este problema.

Cuando configura SQS para activar Lambda, se supone que DLQ debe configurarse en SQS (ya que no sería una invocación asincrónica). Observe la sección 'Nota' en el enlace Fuente

Por lo tanto, su serverless.yaml debe declarar ReddrivePolicy en la cola principal para hacer referencia a la DLQ. (Abajo)

 service: dlq provider: name: aws runtime: nodejs12.x region: ap-southeast-1 role: arn:aws:iam::xxxx:role/dlqLambdaRole functions: dlq: handler: handler.hello events: - sqs: arn: Fn::GetAtt: - MainQueue - Arn deadLetter: targetArn: GetResourceArn: DeadLetterQueue resources: Resources: MainQueue: Type: AWS::SQS::Queue Properties: QueueName: main RedrivePolicy: deadLetterTargetArn: Fn::GetAtt: - "DeadLetterQueue" - "Arn" maxReceiveCount: 5 DeadLetterQueue: Type: AWS::SQS::Queue Properties: QueueName: dlq

maxReceiveCount se establece en 5 según la documentación de AWS.

over 4 years ago · Santiago Trujillo Denunciar

0

Para brindarle algunos antecedentes, Dead Letter Queue es solo eso, una cola SQS normal. es la configuración en AWS Lambda la que le informa que envíe un mensaje a esta cola siempre que haya algún error al procesar el mensaje.

Puede verificar esto desde la consola de administración consultando el "Servicio de cola de mensajes fallidos" en "Invocación asíncrona"

ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda