This piece of code creates an sqs ressource
if we don’t use the EOf we should then give the json payloads with the escaped formats like this
resource "aws_sqs_queue" "terraform_queue" { name = "terraform-example-queue" delay_seconds = 90 max_message_size = 2048 message_retention_seconds = 86400 receive_wait_time_seconds = 10 #redrive_policy = "{\"deadLetterTargetArn\":\"${aws_sqs_queue.terraform_queue_deadletter.arn}\",\"maxReceiveCount\":4}" policy= "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Action\":[\"sqs:*\"],\"Effect\":\"Allow\",\"Resource\":\"*\"}]}" tags { Environment = "test" } }
if we use EOF we can pass the brut json format without escaping it with / \ or /n /r
resource "aws_sqs_queue" "terraform_queue" { name = "terraform-example-queue" delay_seconds = 90 max_message_size = 2048 message_retention_seconds = 86400 receive_wait_time_seconds = 10 #redrive_policy = "{\"deadLetterTargetArn\":\"${aws_sqs_queue.terraform_queue_deadletter.arn}\",\"maxReceiveCount\":4}" policy= <<EOF { "Version": "2012-10-17", "Statement": [ { "Action": [ "sqs:*" ], "Effect": "Allow", "Resource": "*" } ] } EOF tags { Environment = "test" } }
Multiline strings can use shell-style « here doc » syntax, with the string starting with a marker like <<EOF and then the string ending with EOF on a line of its own. The lines of the string and the end marker must not be indented.