awssolutionsconstructsawssqslambda

package module
v2.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 1, 2022 License: Apache-2.0 Imports: 8 Imported by: 0

README

aws-sqs-lambda module



Reference Documentation: https://docs.aws.amazon.com/solutions/latest/constructs/
Language Package
Python Logo Python aws_solutions_constructs.aws_sqs_lambda
Typescript Logo Typescript @aws-solutions-constructs/aws-sqs-lambda
Java Logo Java 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 Typescipr:

import { SqsToLambda, SqsToLambdaProps } from "@aws-solutions-constructs/aws-sqs-lambda";

new SqsToLambda(this, 'SqsToLambdaPattern', {
  lambdaFunctionProps: {
      runtime: lambda.Runtime.NODEJS_14_X,
      handler: 'index.handler',
      code: lambda.Code.fromAsset(`${__dirname}/lambda`)
  }
});

Initializer

new SqsToLambda(scope: Construct, id: string, props: SqsToLambdaProps);

Parameters

Pattern Construct Props

Name Type Description
existingLambdaObj? lambda.Function Existing instance of Lambda Function object, providing both this and lambdaFunctionProps will cause an error.
lambdaFunctionProps? lambda.FunctionProps User provided props to override the default props for the Lambda function.
existingQueueObj? sqs.Queue An optional, existing SQS queue to be used instead of the default queue. Providing both this and queueProps will cause an error.
queueProps? sqs.QueueProps Optional user-provided props to override the default props for the SQS queue.
deadLetterQueueProps? sqs.QueueProps Optional user-provided props to override the default props for the dead letter SQS queue.
deployDeadLetterQueue? boolean Whether to create a secondary queue to be used as a dead letter queue. Defaults 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.
sqsEventSourceProps? SqsEventSourceProps Optional user provided properties for the queue event source.

Pattern Properties

Name Type Description
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.
deadLetterQueue? sqs.Queue Returns an instance of the dead-letter SQS queue created by the pattern.

Default settings

Out of the box implementation of the Construct without any override 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

Architecture Diagram


© Copyright 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.

Documentation

Overview

CDK constructs for defining an interaction between an Amazon SQS queue and an AWS Lambda function.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewSqsToLambda_Override

func NewSqsToLambda_Override(s SqsToLambda, scope constructs.Construct, id *string, props *SqsToLambdaProps)

func SqsToLambda_IsConstruct

func SqsToLambda_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

Types

type SqsToLambda

type SqsToLambda interface {
	constructs.Construct
	DeadLetterQueue() *awssqs.DeadLetterQueue
	LambdaFunction() awslambda.Function
	Node() constructs.Node
	SqsQueue() awssqs.Queue
	ToString() *string
}

func NewSqsToLambda

func NewSqsToLambda(scope constructs.Construct, id *string, props *SqsToLambdaProps) SqsToLambda

type SqsToLambdaProps

type SqsToLambdaProps struct {
	// Optional user provided properties for the dead letter queue.
	DeadLetterQueueProps *awssqs.QueueProps `json:"deadLetterQueueProps"`
	// Whether to deploy a secondary queue to be used as a dead letter queue.
	DeployDeadLetterQueue *bool `json:"deployDeadLetterQueue"`
	// Existing instance of Lambda Function object, providing both this and `lambdaFunctionProps` will cause an error.
	ExistingLambdaObj awslambda.Function `json:"existingLambdaObj"`
	// Existing instance of SQS queue object, Providing both this and queueProps will cause an error.
	ExistingQueueObj awssqs.Queue `json:"existingQueueObj"`
	// User provided props to override the default props for the Lambda function.
	LambdaFunctionProps *awslambda.FunctionProps `json:"lambdaFunctionProps"`
	// The number of times a message can be unsuccessfully dequeued before being moved to the dead-letter queue.
	MaxReceiveCount *float64 `json:"maxReceiveCount"`
	// Optional user provided properties.
	QueueProps *awssqs.QueueProps `json:"queueProps"`
	// Optional user provided properties for the queue event source.
	SqsEventSourceProps *awslambdaeventsources.SqsEventSourceProps `json:"sqsEventSourceProps"`
}

Directories

Path Synopsis
Package jsii contains the functionaility needed for jsii packages to initialize their dependencies and themselves.
Package jsii contains the functionaility needed for jsii packages to initialize their dependencies and themselves.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL