To install, run
npm i --save-dev @totallymoney/serverless-sns-to-sqs-events
This is a Serverless framework plugin that simplifies the configuration of SNS to SQS to Lambda.
Instead of:
- configure the SNS topic
- configure the SNS subscription
- configure the SQS queue
- configure the SQS queue policy
- configure the SQS event subscription for Lambda
you can do all 5 as a snsToSqs
event:
plugins:
- "@totallymoney/serverless-sns-to-sqs-events"
functions:
hello:
handler: handler.hello
events:
- snsToSqs: # subscribe an existing queue to an existing topic
sns: "arn:aws:sns:#{AWS::Region}:#{AWS::AccountId}:my-topic"
rawMessageDelivery: true
sqs: "arn:aws:sqs:#{AWS::Region}:#{AWS::AccountId}:my-queue"
- snsToSqs: # reference custom resources in serverless.yml
sns: !Ref MyTopic
rawMessageDelivery: true
sqs: !GetAtt MyQueue.Arn
- snsToSqs: # configure a new queue and subscribe to new topic
sns:
topicName: yc-test-${self:provider.region}
displayName: yc-test-${self:provider.region} # required
rawMessageDelivery: false
batchSize: 10
sqs:
delaySeconds: 60
visibilityTimeout: 120
queueName: yc-${self:provider.region} # required
dlq:
maxReceiveCount: 3
visibilityTimeout: 120
queueName: yc-dlq-${self:provider.region} # required
The full schema spec is available here.