Queue

The Queue construct is a higher level CDK construct that makes it easy to create a SQS Queues. You can create a queue by specifying a consumer function. And then publish to the queue from any part of your serverless app.

This construct makes it easier to define a queue and a consumer. It also internally connects the consumer and queue together.

Initializer#

new Queue(scope: Construct, id: string, props: QueueProps)

Parameters

Examples#

Using the minimal config#

new Queue(this, "Queue", {
consumer: "src/queueConsumer.main",
});

Lazily adding consumer#

Create an empty queue and lazily add the consumer.

const queue = new Queue(this, "Queue");
queue.addConsumer(this, "src/queueConsumer.main");

Giving the consumer some permissions#

Allow the consumer function to access S3.

const queue = new Queue(this, "Queue", {
consumer: "src/queueConsumer.main",
});
queue.attachPermissions(["s3"]);

Configuring the SQS queue#

Configure the internally created CDK Queue instance.

new Queue(this, "Queue", {
consumer: "src/queueConsumer.main",
sqsQueue: {
queueName: "my-queue",
visibilityTimeout: cdk.Duration.seconds(5),
},
});

Configuring the consumer#

Configure the internally created CDK Event Source.

new Queue(this, "Queue", {
consumer: {
function: "src/queueConsumer.main",
consumerProps: {
batchSize: 5,
},
},
});

Importing an existing queue#

Override the internally created CDK Queue instance.

new Queue(this, "Queue", {
consumer: "src/queueConsumer.main",
sqsQueue: sqs.Queue.fromQueueArn(this, "MySqsQueue", queueArn),
});

Properties#

An instance of Queue contains the following properties.

sqsQueue#

Type : cdk.aws-sqs.Queue

The internally created CDK Queue instance.

consumerFunction#

Type : Function

The internally created consumer Function instance.

Methods#

An instance of Queue contains the following methods.

addConsumer#

addConsumer(scope: cdk.Construct, consumer: FunctionDefinition | QueueConsumerProps)

Parameters

  • scope cdk.Construct
  • consumer FunctionDefinition | TopicSubscriberProps

Takes FunctionDefinition or QueueConsumerProps object that'll be used to create the consumer for the queue.

Note that, only 1 consumer can be added to a queue.

attachPermissions#

attachPermissions(permissions: Permissions)

Parameters

Attaches the given list of permissions to the consumerFunction. This allows the consumer to access other AWS resources.

Internally calls Function.attachPermissions.

QueueProps#

consumer?#

Type : FunctionDefinition | QueueConsumerProps, defaults to undefined

Takes FunctionDefinition or QueueConsumerProps object used to create the consumer for the queue.

sqsQueue?#

Type : cdk.aws-sqs.Queue | cdk.aws-sqs.QueueProps, defaults to undefined

Or optionally pass in a CDK cdk.aws-sqs.QueueProps or a cdk.aws-sqs.Queue instance. This allows you to override the default settings this construct uses internally to create the queue.

QueueConsumerProps#

function#

Type : FunctionDefinition

A FunctionDefinition object that'll be used to create the consumer function for the queue.

consumerProps?#

Type : cdk.aws-lambda-event-sources.lambdaEventSources.SqsEventSourceProps, defaults to undefined

Or optionally pass in a CDK SqsEventSourceProps. This allows you to override the default settings this construct uses internally to create the consumer.