Comment faire une boucle en terraform

Comment faire une boucle en terraform
Terraform propose un modèle de langage déclaratif. Bien que cela soit très facile et efficace pour définir les ressources, il peut manquer de caractéristiques fondamentales utiles dans les opérations quotidiennes.

Par exemple, les langages déclaratifs spécifiques ne prennent pas en charge le flux de contrôle, comme les boucles. Par conséquent, lorsque vous devez créer un morceau de code de manière répétitive, vous devrez faire défaut pour copier et coller. Ce n'est pas une méthode très efficace pour un développeur.

Terraform le comprend et fournit quelques fonctionnalités qui aident les fonctionnalités, telles que les conditionnels et les boucles. Dans cet article, vous apprendrez à utiliser le nombre, pour_ach et pour les expressions dans Terraform.

Les bases

Terraform fournit trois structures principales lorsque vous travaillez avec des boucles. Ceux-ci inclus:

  1. Compter
  2. Pour chaque
  3. Pour

Comprenons comment utiliser chacune de ces constructions de boucle.

Paramètre de comptage

Le bloc de ressources dans Terraform définit et gère principalement un seul objet dans le cloud. Cependant, vous devrez peut-être créer ou gérer plusieurs objets sans créer chaque bloc pour chaque objet. Faire cela supprime le code répétitif, ce qui facilite la lecture et le fonctionnement.

Une façon d'y parvenir est l'utilisation du méta-argument du comte. Si vous définissez un bloc de ressources qui inclut le paramètre de comptage avec la valeur comme un nombre entier, Terraform effectuera les actions sur le nombre de ressources spécifié.

Utilisation de base

Le paramètre de nombre, également appelé méta-argument, peut être utilisé dans les blocs de ressources ou de modules.

Il accepte un entier ou un numéro entier et effectuera les actions spécifiées sur les nombreuses instances sélectionnées. Par exemple, si vous définissez le nombre sur 5 sur un bloc de ressources qui crée des seaux S3, Terraform créera cinq instances de seau S3.

Cependant, Terraform créera un objet d'infrastructure unique pour chaque élément. Par conséquent, chaque élément reçoit des opérations CRUD séparément.

L'exemple suivant montre comment utiliser le paramètre Count dans Terraform:

Terraform
requis_providers
aws =
source = "hashicorp / aws"
version = "-> 3.27 "


required_version = "> = 0.12 "

fournisseur "aws"
profil = "par défaut"
région = "US-East-1"

ressource "aws_instance" "web_server"
AMO = "AMI-234C45E2"
instance_type = "t1.micro "
Count = 3
tags =
Name = "version Webserver: $ count.indice"

L'exemple de code ci-dessus crée trois instances AWS de type T1.micro. Nous utilisons également la méthode du nombre pour créer des balises avec le nombre d'instances.

L'attribut d'index vous permet de modifier la configuration de chaque élément. L'indice de nombre est une valeur distincte qui décrit chaque instance à partir de 0.

Contrairement à la plupart des méta-arguments Terraform, la valeur du paramètre de comptage doit être connue au préalable.

Paramètre pour_

Le paramètre For_Each est étroitement similaire à l'argument du nombre. Vous pouvez l'utiliser avec un bloc de ressources et de module.

Utilisation de base

Le paramètre For_Each accepte un ensemble de chaînes ou une carte. Ensuite, il crée une instance spécifique pour chaque élément de la collection. Semblable à Count, chaque élément a un ID d'infrastructure d'objet unique permettant à Terraform d'effectuer des opérations CRUD individuellement sur un objet spécifique.

L'extrait suivant montre comment utiliser l'élément for_each pour créer plusieurs utilisateurs:

Ressource "aws_iam_user" "Manager Web"
for_each = toset (["John", "Lucy", "Harley", "David"])
nom = chacun.clé

L'exemple précédent montre comment utiliser le For_Each avec un ensemble de chaînes. Pour utiliser une carte, considérez le code ci-dessous:

for_each =
group = "web"
group_b = "db"

nom = chacun.clé
Emplacement = chacun.valeur

Pour paramètre

Le paramètre de boucle FOR n'est pas très différent de l'opération pour la plupart des langages de programmation. Il vous permet de faire un peu de boucle sur une liste d'éléments.

Par exemple, supposons que vous ayez une liste d'utilisateurs et que vous souhaitez convertir les noms d'utilisateur en majuscules. Dans le cas, vous pouvez utiliser une boucle pour une boucle:

username = tolist (["username1", "username2", username3])
[ForiinUsern noms.Liste: supérieur (s)]]

Le code précédent étend les éléments de la liste et convertit chacun en majuscules. En savoir plus sur Terraform pour les expressions dans la documentation.

Conclusion

Ce guide vous donne les bases de l'exécution des opérations de boucle dans Terraform en utilisant le comte, pour_ach et pour les expressions. Nous espérons que vous avez trouvé les exemples utilisant les trois paramètres utiles. Consultez l'indice de Linux pour plus de conseils et d'informations.