Terraform-provider-aws: Sur plan, redrive_policy est toujours marqué comme modifié

Créé le 18 juil. 2017  ·  3Commentaires  ·  Source: hashicorp/terraform-provider-aws

_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
  }
}

Version Terraform

Terraform v0.9.8

Comportement attendu

Qu'aucune modification n'est détectée pour les stratégies de redrive, car aucune modification n'a été apportée.

Comportement réel

screen shot 2017-07-18 at 4 39 38 pm

Étapes à suivre pour reproduire

Veuillez énumérer les étapes nécessaires pour reproduire le problème, par exemple:

  1. terraform get
  2. terraform plan -var-file=<var-file>.tfvars -out=<my-update>.plan -state=<current-state-file>.tfstate
  3. terraform apply -state-out=<new-state-file>.tfstate <my-update>.plan

Références

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.

bug servicsqs

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 à:

redrive_policy = <<-JSON
    {
      "deadLetterTargetArn": "${aws_sqs_queue.sqs_dead_queue.arn}",
      "maxReceiveCount": ${var.sqs_queue["max_receive_count"]}
    }
  JSON

Tous les 3 commentaires

@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

Cette page vous a été utile?
0 / 5 - 0 notes