Resource: awsSqsQueue
Example Usage
/*Provider bindings are generated by running cdktf get.
See https://cdk.tf/provider-generation for more details.*/
import * as aws from "./.gen/providers/aws";
new aws.sqsQueue.SqsQueue(this, "terraform_queue", {
delaySeconds: 90,
maxMessageSize: 2048,
messageRetentionSeconds: 86400,
name: "terraform-example-queue",
receiveWaitTimeSeconds: 10,
redrivePolicy:
"${jsonencode({\n deadLetterTargetArn = aws_sqs_queue.terraform_queue_deadletter.arn\n maxReceiveCount = 4\n })}",
tags: {
Environment: "production",
},
});
FIFO queue
/*Provider bindings are generated by running cdktf get.
See https://cdk.tf/provider-generation for more details.*/
import * as aws from "./.gen/providers/aws";
new aws.sqsQueue.SqsQueue(this, "terraform_queue", {
contentBasedDeduplication: true,
fifoQueue: true,
name: "terraform-example-queue.fifo",
});
High-throughput FIFO queue
/*Provider bindings are generated by running cdktf get.
See https://cdk.tf/provider-generation for more details.*/
import * as aws from "./.gen/providers/aws";
new aws.sqsQueue.SqsQueue(this, "terraform_queue", {
deduplicationScope: "messageGroup",
fifoQueue: true,
fifoThroughputLimit: "perMessageGroupId",
name: "terraform-example-queue.fifo",
});
Dead-letter queue
/*Provider bindings are generated by running cdktf get.
See https://cdk.tf/provider-generation for more details.*/
import * as aws from "./.gen/providers/aws";
new aws.sqsQueue.SqsQueue(this, "terraform_queue_deadletter", {
name: "terraform-example-deadletter-queue",
redriveAllowPolicy:
'${jsonencode({\n redrivePermission = "byQueue",\n sourceQueueArns = [aws_sqs_queue.terraform_queue.arn]\n })}',
});
Server-side encryption (SSE)
Using SSE-SQS:
/*Provider bindings are generated by running cdktf get.
See https://cdk.tf/provider-generation for more details.*/
import * as aws from "./.gen/providers/aws";
new aws.sqsQueue.SqsQueue(this, "terraform_queue", {
name: "terraform-example-queue",
sqsManagedSseEnabled: true,
});
Using SSE-KMS:
/*Provider bindings are generated by running cdktf get.
See https://cdk.tf/provider-generation for more details.*/
import * as aws from "./.gen/providers/aws";
new aws.sqsQueue.SqsQueue(this, "terraform_queue", {
kmsDataKeyReusePeriodSeconds: 300,
kmsMasterKeyId: "alias/aws/sqs",
name: "terraform-example-queue",
});
Argument Reference
The following arguments are supported:
name
- (Optional) The name of the queue. Queue names must be made up of only uppercase and lowercase ASCII letters, numbers, underscores, and hyphens, and must be between 1 and 80 characters long. For a FIFO (first-in-first-out) queue, the name must end with thefifo
suffix. If omitted, Terraform will assign a random, unique name. Conflicts withnamePrefix
namePrefix
- (Optional) Creates a unique name beginning with the specified prefix. Conflicts withname
visibilityTimeoutSeconds
- (Optional) The visibility timeout for the queue. An integer from 0 to 43200 (12 hours). The default for this attribute is 30. For more information about visibility timeout, see AWS docs.messageRetentionSeconds
- (Optional) The number of seconds Amazon SQS retains a message. Integer representing seconds, from 60 (1 minute) to 1209600 (14 days). The default for this attribute is 345600 (4 days).maxMessageSize
- (Optional) The limit of how many bytes a message can contain before Amazon SQS rejects it. An integer from 1024 bytes (1 KiB) up to 262144 bytes (256 KiB). The default for this attribute is 262144 (256 KiB).delaySeconds
- (Optional) The time in seconds that the delivery of all messages in the queue will be delayed. An integer from 0 to 900 (15 minutes). The default for this attribute is 0 seconds.receiveWaitTimeSeconds
- (Optional) The time for which a ReceiveMessage call will wait for a message to arrive (long polling) before returning. An integer from 0 to 20 (seconds). The default for this attribute is 0, meaning that the call will return immediately.policy
- (Optional) The JSON policy for the SQS queue. For more information about building AWS IAM policy documents with Terraform, see the AWS IAM Policy Document Guide.redrivePolicy
- (Optional) The JSON policy to set up the Dead Letter Queue, see AWS docs. Note: when specifyingmaxReceiveCount
, you must specify it as an integer (5
), and not a string ("5"
).redriveAllowPolicy
- (Optional) The JSON policy to set up the Dead Letter Queue redrive permission, see AWS docs.fifoQueue
- (Optional) Boolean designating a FIFO queue. If not set, it defaults tofalse
making it standard.contentBasedDeduplication
- (Optional) Enables content-based deduplication for FIFO queues. For more information, see the related documentationsqsManagedSseEnabled
- (Optional) Boolean to enable server-side encryption (SSE) of message content with SQS-owned encryption keys. See Encryption at rest. Terraform will only perform drift detection of its value when present in a configuration.kmsMasterKeyId
- (Optional) The ID of an AWS-managed customer master key (CMK) for Amazon SQS or a custom CMK. For more information, see Key Terms.kmsDataKeyReusePeriodSeconds
- (Optional) The length of time, in seconds, for which Amazon SQS can reuse a data key to encrypt or decrypt messages before calling AWS KMS again. An integer representing seconds, between 60 seconds (1 minute) and 86,400 seconds (24 hours). The default is 300 (5 minutes).deduplicationScope
- (Optional) Specifies whether message deduplication occurs at the message group or queue level. Valid values aremessageGroup
andqueue
(default).fifoThroughputLimit
- (Optional) Specifies whether the FIFO queue throughput quota applies to the entire queue or per message group. Valid values areperQueue
(default) andperMessageGroupId
.tags
- (Optional) A map of tags to assign to the queue. If configured with a providerdefaultTags
configuration block present, tags with matching keys will overwrite those defined at the provider-level.
Attributes Reference
In addition to all arguments above, the following attributes are exported:
id
- The URL for the created Amazon SQS queue.arn
- The ARN of the SQS queuetagsAll
- A map of tags assigned to the resource, including those inherited from the providerdefaultTags
configuration block.url
- Same asid
: The URL for the created Amazon SQS queue.
Import
SQS Queues can be imported using the queueUrl
, e.g.,