Skip to content

mzupan/terraform-aws-sqs

 
 

Repository files navigation

AWS SQS Terraform module

Terraform module which creates SQS resources on AWS.

Usage

module "user_queue" {
  source  = "terraform-aws-modules/sqs/aws"
  version = "~> 2.0"

  name = "user"

  tags = {
    Service     = "user"
    Environment = "dev"
  }
}

Examples

Conditional creation

Sometimes you need to have a way to create SQS queue conditionally but Terraform does not allow to use count inside module block, so the solution is to specify argument create.

# This SQS queue will not be created
module "user_queue" {
  source  = "terraform-aws-modules/sqs/aws"
  version = "~> 2.0"

  create = false
  # ... omitted
}

Requirements

Name Version
terraform >= 0.13.1
aws >= 3.63

Providers

Name Version
aws >= 3.63

Modules

No modules.

Resources

Name Type
aws_sqs_queue.this resource
aws_arn.this data source

Inputs

Name Description Type Default Required
content_based_deduplication Enables content-based deduplication for FIFO queues bool false no
create Whether to create SQS queue bool true no
deduplication_scope Specifies whether message deduplication occurs at the message group or queue level string null no
delay_seconds The time in seconds that the delivery of all messages in the queue will be delayed. An integer from 0 to 900 (15 minutes) number 0 no
fifo_queue Boolean designating a FIFO queue bool false no
fifo_throughput_limit Specifies whether the FIFO queue throughput quota applies to the entire queue or per message group string null no
kms_data_key_reuse_period_seconds 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) number 300 no
kms_master_key_id The ID of an AWS-managed customer master key (CMK) for Amazon SQS or a custom CMK string null no
max_message_size 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) number 262144 no
message_retention_seconds The number of seconds Amazon SQS retains a message. Integer representing seconds, from 60 (1 minute) to 1209600 (14 days) number 345600 no
name This is the human-readable name of the queue. If omitted, Terraform will assign a random name. string null no
name_prefix A unique name beginning with the specified prefix. string null no
policy The JSON policy for the SQS queue string "" no
receive_wait_time_seconds 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) number 0 no
redrive_allow_policy The JSON policy to set up the Dead Letter Queue redrive permission, see AWS docs. string "" no
redrive_policy The JSON policy to set up the Dead Letter Queue, see AWS docs. Note: when specifying maxReceiveCount, you must specify it as an integer (5), and not a string ("5") string "" no
sqs_managed_sse_enabled Boolean to enable server-side encryption (SSE) of message content with SQS-owned encryption keys bool false no
tags A mapping of tags to assign to all resources map(string) {} no
visibility_timeout_seconds The visibility timeout for the queue. An integer from 0 to 43200 (12 hours) number 30 no

Outputs

Name Description
sqs_queue_arn The ARN of the SQS queue
sqs_queue_id The URL for the created Amazon SQS queue
sqs_queue_name The name of the SQS queue

Authors

Module is maintained by Anton Babenko with help from these awesome contributors.

License

Apache 2 Licensed. See LICENSE for full details.

About

Terraform module which creates SQS resources on AWS

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • HCL 100.0%