Create a Lambda function that subscribes to an SQS queue
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: Serverless patterns - SQS to Lambda (uksb-1tthgi812) (tag:sqs-lambda)
Resources:
# Define the SQS queue
MySqsQueue:
Type: AWS::SQS::Queue
# Define the consumer Lambda function
QueueConsumerFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: src/
Handler: app.handler
Runtime: nodejs18.x
Timeout: 3
MemorySize: 128
Events:
MySQSEvent:
Type: SQS
Properties:
Queue: !GetAtt MySqsQueue.Arn
BatchSize: 10
Outputs:
QueueConsumerFunction:
Description: QueueConsumerFunction function name
Value: !Ref QueueConsumerFunction
SQSqueueName:
Description: SNS queue name
Value: !GetAtt MySqsQueue.QueueName
SQSqueueARN:
Description: SQS queue ARN
Value: !GetAtt MySqsQueue.Arn
SQSqueueURL:
Description: SQS queue URL
Value: !Ref MySqsQueue
Visit the GitHub repo for this pattern.
git clone https://github.com/aws-samples/serverless-patterns/ cd serverless-patterns/sqs-lambda
sam deploy --guided
sam delete --stack-name STACK_NAME
.aws sqs send-message --queue-url ENTER_YOUR_SQS_QUEUE_URL --message-body "Test message"
sam logs -n ENTER_YOUR_CONSUMER_FUNCTION_NAME
.sam delete --stack-name STACK_NAME
.aws cloudformation list-stacks --query "StackSummaries[?contains(StackName,'STACK_NAME')].StackStatus"