I have a service that uses an SQS fifo queue as trigger for a lambda function. I’d like to have it re-try a few times before the message gets to the DLQ.
Here’s the relevant
resources: Resources: TestQueue: Type: "AWS::SQS::Queue" Properties: QueueName: "test.fifo" FifoQueue: true VisibilityTimeout: 30 MessageRetentionPeriod: 1440 # 24hs RedrivePolicy: deadLetterTargetArn: "Fn::GetAtt": - DeadLetterQueue - Arn maxReceiveCount: 2 DeadLetterQueue: Type: "AWS::SQS::Queue" Properties: QueueName: "test-dlq.fifo" MessageRetentionPeriod: 604800 # 7 days in seconds FifoQueue: true
With this, the function tries 2 times before the message gets to the DLQ. I’d like to increase that, but when I try to deploy I get this error:
Serverless Error ---------------------------------------
An error occurred: LambdaEvConf - 1 validation error detected: Value '3' at 'maximumRetryAttempts' failed to satisfy constraint: Member must have value less than or equal to 2 (Service: AWSLambdaInternal; Status Code: 400; Error Code: ValidationException;
But when I look at the console, I can increase this number all the way to 1000:
So why is the limit 2 here?
It looks like some people had a similar question on a PR on GitHub, but I didn’t really see an answer there.