aws-sqs-lambda

All classes are under active development and subject to
non-backward compatible changes or removal in any future version.
These are not subject to the
Semantic Versioning
Language | Package |
---|---|
![]() |
aws_solutions_constructs.aws_sqs_lambda
|
![]() |
@aws-solutions-constructs/aws-sqs-lambda
|
![]() |
software.amazon.awsconstructs.services.sqslambda
|
This AWS Solutions Construct implements an Amazon SQS queue connected to an AWS Lambda function.
Here is a minimal deployable pattern definition in TypeScript:
const { SqsToLambda } = require('@aws-solutions-constructs/aws-sqs-lambda'); new SqsToLambda(stack, 'SqsToLambdaPattern', { lambdaFunctionProps: { runtime: lambda.Runtime.NODEJS_10_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) } });
Initializer
new SqsToLambda(scope: Construct, id: string, props: SqsToLambdaProps);
Parameters
-
scope
Construct
-
id
string
-
props SqsToLambdaProps
Pattern Construct Props
Name | Type | Description |
---|---|---|
existingLambdaObj? |
lambda.Function
|
An optional, existing Lambda function to be used instead of the default function.
If an existing function is provided, the lambdaFunctionProps property will be ignored.
|
lambdaFunctionProps? |
lambda.FunctionProps
|
Optional user-provided properties to override the default properties for the
Lambda function. Ignored if an existingLambdaObj is provided.
|
existingQueueObj? |
sqs.Queue
|
An optional, existing SQS queue to be used instead of the default queue. If an existing
queue
is provided, the queueProps property will be ignored.
|
queueProps? |
sqs.QueueProps
|
Optional user-provided properties to override the default properties for the SQS queue.
Ignored
if an existingQueueObj is provided.
|
deployDeadLetterQueue? |
boolean
|
Whether to create a secondary queue to be used as a dead letter queue. Defaults to
true .
|
deadLetterQueueProps? |
sqs.QueueProps
|
Optional user-provided props to override the default props for the dead letter queue.
Only used if the
deployDeadLetterQueue property is set to true.
|
maxReceiveCount? |
number
|
The number of times a message can be unsuccessfully dequeued before being moved to
the dead letter
queue. Defaults to 15 .
|
Pattern Properties
Name | Type | Description |
---|---|---|
deadLetterQueue? |
sqs.Queue
|
Returns an instance of the dead letter queue created by the pattern, if one is deployed. |
lambdaFunction |
lambda.Function
|
Returns an instance of the Lambda function created by the pattern. |
sqsQueue |
sqs.Queue
|
Returns an instance of the SQS queue created by the pattern. |
Default settings
Out-of-the-box implementation of this pattern without any overrides will set the following defaults:
Amazon SQS Queue
-
Deploy SQS dead-letter queue for the source SQS Queue.
-
Enable server-side encryption for source SQS Queue using AWS Managed KMS Key.
-
Enforce encryption of data in transit.
AWS Lambda Function
-
Configure limited privilege access IAM role for Lambda function.
-
Enable reusing connections with Keep-Alive for NodeJs Lambda function.
-
Enable X-Ray tracing.
-
Set environment variables:
-
AWS_NODEJS_CONNECTION_REUSE_ENABLED
(for Node 10.x and higher functions)
-
Architecture

GitHub
To view the code for this pattern, create/view issues and pull requests, and more: | |
---|---|
![]() |
@aws-solutions-constructs/aws-sqs-lambda |