Skip to content

Instantly share code, notes, and snippets.

@ikushlianski
Created April 11, 2023 11:29
Show Gist options
  • Save ikushlianski/73f898f09905b1e16ff4291b7eb81c8d to your computer and use it in GitHub Desktop.
Save ikushlianski/73f898f09905b1e16ff4291b7eb81c8d to your computer and use it in GitHub Desktop.
Dead Letter Queue (Serverless Stack, SST)
/*
"@serverless-stack/resources": "0.59.1"
*/
const deadLetterQueue = new sst.Queue(this, "DeadLetterQueue", {
sqsQueue: {
visibilityTimeout: Duration.hours(12),
},
});
const updatePartsConsumer = new sst.Function(this, "UpdatePartsConsumer", {
handler: "src/admin-operations/update-parts/consumer.handler",
permissions: ["ssm", "dynamodb", "s3", "sqs"],
vpc,
securityGroups: [sg],
environment: {
stage: scope.stage,
},
deadLetterQueueEnabled: true,
deadLetterQueue: deadLetterQueue.sqsQueue,
});
const updatePartsQueue = new sst.Queue(this, "UpdatePartsQueue", {
consumer: updatePartsConsumer,
sqsQueue: {
// send messages that could not be consumed to Dead-Letter Queue in 10 seconds
visibilityTimeout: Duration.seconds(10),
deadLetterQueue: {
queue: deadLetterQueue.sqsQueue,
// if the message is not consumed successfully, send it to DLQ immediately
maxReceiveCount: 1,
},
},
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment