serverless-application-model icon indicating copy to clipboard operation
serverless-application-model copied to clipboard

Add "RedrivePolicy" setting the "SqsSubscription" property of an "SNS" event source mapping for an "AWS::Serverless::Function" resource

Open piersf opened this issue 4 years ago • 0 comments

Describe your idea/feature/enhancement

When using an SNS type of event source mapping for an AWS::Serverless::Function resource, one is able to specify an object to the SqsSubscription property. This enables batching SNS topic notifications in an SQS queue. Essentially this creates an SNS Subscription with the queue being the subscriber.

However, the SqsSubscription property object does not have a property to set a DLQ for this SNS subscription, like you can set in an AWS::SNS::Subscription resource by using the RedrivePolicy property.

Proposal

I propose that a RedrivePolicy property is added to the SNS event source mapping type of an AWS::Serverless::Function resource. A possible example can be seen below:

MyFunction:
    Type: "AWS::Serverless::Function"
    Properties:
    ..........
    ..........
    ..........
    Events:
        FanoutSnsTopic:
          Type: SNS
          Properties:
            Topic: MyTopic
            SqsSubscription:
              QueuePolicyLogicalId: "PolicyId"
              Enabled: true
              QueueArn: MyQueueArn
              QueueUrl: MyQueueUrl
              RedrivePolicy: MyDLQArn     # <------------------
              BatchSize: 1

piersf avatar Feb 14 '21 20:02 piersf