Skip to main content
AWS Messaging 0.12.5Last updated in version 0.12.5

Simple Notification Service (SNS) Topic Module

View Source Release Notes

This module makes it easy to deploy a SNS topic along with the publisher and subscriber policies for the topic.

How do I access the SNS topic?

This module includes several Terraform outputs, including:

  1. topic_name: The Name of the created topic
  2. topic_display_name: The Display Name of the created topic
  3. topic_arn: The ARN of the created topic
  4. topic_policy: The Access policy of the created topic

Sample Usage

main.tf

# ------------------------------------------------------------------------------------------------------
# DEPLOY GRUNTWORK'S SNS MODULE
# ------------------------------------------------------------------------------------------------------

module "sns" {

source = "git::git@github.com:gruntwork-io/terraform-aws-messaging.git//modules/sns?ref=v0.12.5"

# ----------------------------------------------------------------------------------------------------
# REQUIRED VARIABLES
# ----------------------------------------------------------------------------------------------------

# The name of the SNS topic.
name = <string>

# ----------------------------------------------------------------------------------------------------
# OPTIONAL VARIABLES
# ----------------------------------------------------------------------------------------------------

# A list of IAM ARNs that will be given the rights to publish to the SNS
# topic.
allow_publish_accounts = []

# A list of AWS services that will be given the rights to publish to the SNS
# topic.
allow_publish_services = []

# A list of IAM ARNs that will be given the rights to subscribe to the SNS
# topic.
allow_subscribe_accounts = []

# A list of protocols that are allowed for subscription.
allow_subscribe_protocols = ["http","https","email","email-json","sms","sqs","application","lambda"]

# **Requires `enable_fifo = true`.** Flag to enable content-based
# deduplication for the SNS topic. If set to true, messages with identical
# content will be treated as duplicates and only delivered once. For more see
# the [Amazon
# Docs](https://docs.aws.amazon.com/sns/latest/dg/fifo-message-dedup.html)
content_based_deduplication = null

# Enable or disable creation of the resources of this module.
create_resources = true

# Delivery policy for sns topic.
delivery_policy = null

# The display name of the SNS topic. NOTE: Maximum length is 100 characters.
display_name = ""

# Flag to indicate if the SNS topic is FIFO. This will append `.fifo` to the
# name of the topic.
enable_fifo = false

# ARN of the http failure feedback role - when using delivery policy for sns
# topic.
http_failure_feedback_role_arn = null

# ARN of the http success feedback role - when using delivery policy for sns
# topic.
http_success_feedback_role_arn = null

# The ID of an AWS-managed customer master key (CMK) for Amazon SNS or a
# custom CMK
kms_master_key_id = null

# **Requires `enable_fifo = true`.** The number of days (up to 365) for Amazon
# SNS to retain messages. This will be used to create the archive policy for
# the SNS topic. For more see the [Amazon
# Docs](https://docs.aws.amazon.com/sns/latest/dg/message-archiving-and-replay-topic-owner.html)
message_retention_period = null

# A map of key value pairs to apply as tags to the SNS topic.
tags = {}

}


Reference

Required

namestringrequired

The name of the SNS topic.

Optional

allow_publish_accountslist(string)optional

A list of IAM ARNs that will be given the rights to publish to the SNS topic.

[]
allow_publish_serviceslist(string)optional

A list of AWS services that will be given the rights to publish to the SNS topic.

[]
allow_subscribe_accountslist(string)optional

A list of IAM ARNs that will be given the rights to subscribe to the SNS topic.

[]
allow_subscribe_protocolslist(string)optional

A list of protocols that are allowed for subscription.

[
"http",
"https",
"email",
"email-json",
"sms",
"sqs",
"application",
"lambda"
]

Requires enable_fifo = true. Flag to enable content-based deduplication for the SNS topic. If set to true, messages with identical content will be treated as duplicates and only delivered once. For more see the Amazon Docs

null
create_resourcesbooloptional

Enable or disable creation of the resources of this module.

true
delivery_policyanyoptional

Delivery policy for sns topic.

Any types represent complex values of variable type. For details, please consult `variables.tf` in the source repo.
null
display_namestringoptional

The display name of the SNS topic. NOTE: Maximum length is 100 characters.

""
enable_fifobooloptional

Flag to indicate if the SNS topic is FIFO. This will append .fifo to the name of the topic.

false

ARN of the http failure feedback role - when using delivery policy for sns topic.

null

ARN of the http success feedback role - when using delivery policy for sns topic.

null
kms_master_key_idstringoptional

The ID of an AWS-managed customer master key (CMK) for Amazon SNS or a custom CMK

null

Requires enable_fifo = true. The number of days (up to 365) for Amazon SNS to retain messages. This will be used to create the archive policy for the SNS topic. For more see the Amazon Docs

null
tagsmap(string)optional

A map of key value pairs to apply as tags to the SNS topic.

{}