0
votes

Comment utiliser la condition avec des listes sur Terraform 11

J'ai besoin de créer une condition dans Terraform 11 où je vérifie si une variable de liste locale existe, si elle utilise ensuite cette liste et s'il n'en utilise pas un autre.

Par exemple, j'ai: P>

myVar = ["${length(var.localList) > 0 ? var.localList : var.remoteList}"]


1 commentaires

Pouvez-vous publier votre bloc de ressources? Qu'est-ce que vous vouliez faire exactement avec la liste de résultats?


3 Réponses :


2
votes

Vous pouvez le faire avec Valeurs locales :

variable "local_list" {
  default = ["foo"]
}

variable "remote_list" {
  default = ["bar"]
}

locals {
  myvar = length(var.local_list) > 0 ? var.local_list : var.remote_list
}

# myvar value is "foo"
output "myvar" {
  value = local.myvar
}


1 commentaires

Cet exemple dans la réponse fonctionne pour moi comme prévu. Faites-vous quelque chose de différent? Si vous devez modifier votre question pour montrer exactement ce que vous avez essayé dans un exemple de reproductible minimal .



0
votes

J'ai trouvé la réponse ici https://github.com/hashicorp/terraform/issues/ 18259

Fondamentalement, c'est un travail autour de ce point xxx


1 commentaires

Utilisez-vous Terraform 0,11 ou plus bas? Si vous auriez donc dû expliquer que dans votre question parce que Terraform 0,12 gérerait correctement ces listes qui se trouvent dans l'autre réponse et qui est maintenant sortie depuis plus de 9 mois, il est donc assez raisonnable de s'attendre à ce que les personnes utilisent 0,12, à moins qu'elles n'étaient exclicantes autrement.



0
votes

La fonction coalesceliste semble faire exactement ce que vous voulez.

de Les docs

CoalesCelist prend tout nombre d'arguments de liste et renvoie le premier qui n'est pas vide.

Vous écririez donc quelque chose comme xxx


0 commentaires