AWSCDK::SQS

20 types

Amazon Simple Queue Service Construct Library

Amazon Simple Queue Service (SQS) is a fully managed message queuing service that enables you to decouple and scale microservices, distributed systems, and serverless applications. SQS eliminates the complexity and overhead associated with managing and operating message oriented middleware, and empowers developers to focus on differentiating work. Using SQS, you can send, store, and receive messages between software components at any volume, without losing messages or requiring other services to be available.

Installation

Import to your project:

require 'aws-cdk-lib'

Basic usage

Here's how to add a basic queue to your application:

AWSCDK::SQS::Queue.new(self, "Queue")

Encryption

By default queues are encrypted using SSE-SQS. If you want to change the encryption mode, set the encryption property. The following encryption modes are supported:

To learn more about SSE-SQS on Amazon SQS, please visit the Amazon SQS documentation.

# Use managed key
AWSCDK::SQS::Queue.new(self, "Queue", {
    encryption: AWSCDK::SQS::QueueEncryption::KMS_MANAGED,
})

# Use custom key
my_key = AWSCDK::KMS::Key.new(self, "Key")

AWSCDK::SQS::Queue.new(self, "Queue", {
    encryption: AWSCDK::SQS::QueueEncryption::KMS,
    encryption_master_key: my_key,
})

# Use SQS managed server side encryption (SSE-SQS)
AWSCDK::SQS::Queue.new(self, "Queue", {
    encryption: AWSCDK::SQS::QueueEncryption::SQS_MANAGED,
})

# Unencrypted queue
AWSCDK::SQS::Queue.new(self, "Queue", {
    encryption: AWSCDK::SQS::QueueEncryption::UNENCRYPTED,
})

Encryption in transit

If you want to enforce encryption of data in transit, set the enforce_ssl property to true. A resource policy statement that allows only encrypted connections over HTTPS (TLS) will be added to the queue.

AWSCDK::SQS::Queue.new(self, "Queue", {
    enforce_ssl: true,
})

First-In-First-Out (FIFO) queues

FIFO queues give guarantees on the order in which messages are dequeued, and have additional features in order to help guarantee exactly-once processing. For more information, see the SQS manual. Note that FIFO queues are not available in all AWS regions.

A queue can be made a FIFO queue by either setting fifo: true, giving it a name which ends in ".fifo", or by enabling a FIFO specific feature such as: content-based deduplication, deduplication scope or fifo throughput limit.

Dead letter source queues permission

You can configure the permission settings for queues that can designate the created queue as their dead-letter queue using the redrive_allow_policy attribute.

By default, all queues within the same account and region are permitted as source queues.

source_queue = nil # AWSCDK::SQS::IQueue


# Only the sourceQueue can specify this queue as the dead-letter queue.
queue1 = AWSCDK::SQS::Queue.new(self, "Queue2", {
    redrive_allow_policy: {
        source_queues: [source_queue],
    },
})

# No source queues can specify this queue as the dead-letter queue.
queue2 = AWSCDK::SQS::Queue.new(self, "Queue", {
    redrive_allow_policy: {
        redrive_permission: AWSCDK::SQS::RedrivePermission::DENY_ALL,
    },
})

API Reference

Classes 7

CfnQueueThe `AWS::SQS::Queue` resource creates an Amazon SQS standard or FIFO queue. CfnQueueInlinePolicyThe `AWS::SQS::QueueInlinePolicy` resource associates one Amazon SQS queue with one policy CfnQueuePolicyThe `AWS::SQS::QueuePolicy` type applies a policy to Amazon SQS queues. QueueA new Amazon SQS queue. QueueBaseReference to a new or existing Amazon SQS queue. QueueGrantsCollection of grant methods for a IQueueRef. QueuePolicyThe policy for an SQS Queue.

Interfaces 9

CfnQueueInlinePolicyPropsProperties for defining a `CfnQueueInlinePolicy`. CfnQueuePolicyPropsProperties for defining a `CfnQueuePolicy`. CfnQueuePropsProperties for defining a `CfnQueue`. DeadLetterQueueDead letter queue settings. IQueueRepresents an SQS queue. QueueAttributesReference to a queue. QueuePolicyPropsProperties to associate SQS queues with a policy. QueuePropsProperties for creating a new Queue. RedriveAllowPolicyPermission settings for the dead letter source queue.

Enums 4

DeduplicationScopeWhat kind of deduplication scope to apply. FifoThroughputLimitWhether the FIFO queue throughput quota applies to the entire queue or per message group. QueueEncryptionWhat kind of encryption to apply to this queue. RedrivePermissionThe permission type that defines which source queues can specify the current queue as the