_Ce numéro a été initialement ouvert par @kfrn en tant que hashicorp / terraform # 15579. Il a été migré ici en raison de la scission des fournisseurs . Le corps d'origine du numéro est ci-dessous._
Chaque fois que j'exécute terraform plan
, les politiques de redirection de mes files d'attente SQS apparaissent comme modifiées, même si elles n'ont en fait aucun changement.
J'utilise un module pour créer mes files d'attente SQS.
resource "aws_sqs_queue" "sqs_queue" {
name = "${var.environment}_${var.name}"
message_retention_seconds = "${var.sqs_queue["message_retention_seconds"]}"
visibility_timeout_seconds = "${var.sqs_queue["visibility_timeout_seconds"]}"
redrive_policy = <<-JSON
{
"deadLetterTargetArn": "${aws_sqs_queue.sqs_dead_queue.arn}",
"maxReceiveCount": "${var.sqs_queue["max_receive_count"]}"
}
JSON
}
resource "aws_sqs_queue" "sqs_dead_queue" {
name = "${var.environment}_${var.name}_dead"
message_retention_seconds = "${var.sqs_dead_queue["message_retention_seconds"]}"
visibility_timeout_seconds = "${var.sqs_dead_queue["visibility_timeout_seconds"]}"
}
maxReceiveCount
est défini dans les variables du module:
variable "sqs_queue" {
type = "map"
default = {
message_retention_seconds = 1209600
visibility_timeout_seconds = 30
max_receive_count = 10
}
}
Terraform v0.9.8
Qu'aucune modification n'est détectée pour les stratégies de redrive, car aucune modification n'a été apportée.
Veuillez énumérer les étapes nécessaires pour reproduire le problème, par exemple:
terraform get
terraform plan -var-file=<var-file>.tfvars -out=<my-update>.plan -state=<current-state-file>.tfstate
terraform apply -state-out=<new-state-file>.tfstate <my-update>.plan
Ce problème a été discuté en février 2016, ici: hashicorp / terraform # 5119
Cela semble être dû au fait que le maxReceiveCount
dans le code de cette personne était une chaîne, pas un nombre; le bogue a ensuite obtenu un correctif (# 5888).
Je ne sais donc vraiment pas pourquoi cela se produit pour moi. Pour mémoire, mon maxReceiveCount
est définitivement un entier.
@kfrn avez-vous
Dans votre configuration ci-dessus, vous avez "${var.sqs_queue["max_receive_count"]}"
. Les guillemets à l'intérieur de l'hérédoc JSON sont superflus et ne sont pas requis par la configuration de Terraform pour récupérer l'interpolation de variable dans ce cas, donc votre JSON peut ressembler à:
redrive_policy = <<-JSON
{
"deadLetterTargetArn": "${aws_sqs_queue.sqs_dead_queue.arn}",
"maxReceiveCount": ${var.sqs_queue["max_receive_count"]}
}
JSON
Clôture faute de réponse et proposition de solution ci-dessus.
Juste un suivi à ce sujet.
J'étais confronté au même problème et la suppression des citations superflues sur ${var.sqs_queue["max_receive_count"]
résolu le problème
merci @bflad
Commentaire le plus utile
@kfrn avez-vous
Dans votre configuration ci-dessus, vous avez
"${var.sqs_queue["max_receive_count"]}"
. Les guillemets à l'intérieur de l'hérédoc JSON sont superflus et ne sont pas requis par la configuration de Terraform pour récupérer l'interpolation de variable dans ce cas, donc votre JSON peut ressembler à: