0Pricing
Terraform Infrastructure as Code · Leçon

Fonctions intégrées de Terraform

Découvrez un large éventail de fonctions intégrées de Terraform pour manipuler les chaînes, traiter les listes, convertir les types et bien plus encore, afin d’enrichir vos configurations.

Fonctions intégrées de Terraform est une leçon Terraform Infrastructure as Code gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Terraform Infrastructure as Code, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Terraform Infrastructure as Code comprend 4 leçons au total.

Découvrez les configurations dynamiques

Les fonctions intégrées de Terraform sont comme de petits programmes qui vous aident à traiter et à transformer des valeurs directement dans vos fichiers de configuration.

Elles vous permettent de créer des définitions d'infrastructure dynamiques, réutilisables et plus intelligentes.

  • Transformer les données : modifier des chaînes, des nombres ou des listes.
  • Calculer des valeurs : effectuer des calculs ou des vérifications logiques.
  • Générer du contenu dynamique : créer des noms ou des balises de ressources à la volée.

Transformations de texte

Les fonctions de chaînes sont essentielles pour manipuler du texte. Deux fonctions de base sont upper() et lower(), qui modifient la casse d'une chaîne.

Elles sont utiles pour uniformiser les conventions de nommage ou respecter des exigences spécifiques.

variable "region_code" {
  type    = string
  default = "us-east-1"
}

output "upper_region" {
  value = upper(var.region_code)
}

output "lower_example" {
  value = lower("AWS_REGION")
}

Relier et diviser des chaînes

La fonction join() combine les éléments d'une liste en une seule chaîne à l'aide d'un séparateur spécifié. À l'inverse, split() divise une chaîne en une liste de sous-chaînes en fonction d'un séparateur.

Ces fonctions sont très utiles pour analyser des données ou construire des noms complexes.

variable "tags_list" {
  type    = list(string)
  default = ["web", "frontend", "prod"]
}

output "joined_tags" {
  value = join(",", var.tags_list)
}

output "split_string" {
  value = split("-", "server-01-app")
}

Les mathématiques dans vos configurations

Les fonctions numériques vous permettent d'effectuer des opérations mathématiques de base. ceil() arrondit à l'entier supérieur, floor() à l'entier inférieur, tandis que min()/max() recherchent les valeurs minimale et maximale d'un ensemble.

Elles sont très utiles pour calculer le nombre de ressources ou leur dimensionnement.

variable "instance_ratio" {
  type    = number
  default = 3.7
}

output "rounded_up_instances" {
  value = ceil(var.instance_ratio)
}

output "rounded_down_instances" {
  value = floor(var.instance_ratio)
}

output "smallest_val" {
  value = min(10, 5, 12, 8)
}

Travailler avec des listes

Les listes sont des collections ordonnées d'éléments. Des fonctions comme length() indiquent le nombre d'éléments d'une liste, et element() récupère un élément à partir de son index numérique (qui commence à 0).

Pratique pour parcourir une liste ou sélectionner des éléments précis.

variable "zones" {
  type    = list(string)
  default = ["us-east-1a", "us-east-1b", "us-east-1c"]
}

output "num_zones" {
  value = length(var.zones)
}

output "first_zone" {
  value = element(var.zones, 0)
}

Gérer les données clé-valeur

Les cartes stockent les données sous forme de paires clé-valeur. lookup() récupère la valeur correspondant à une clé donnée, avec une valeur par défaut facultative si la clé est introuvable. merge() combine plusieurs cartes en une seule.

Idéal pour gérer les métadonnées ou les balises de ressources.

variable "server_info" {
  type = map(string)
  default = {
    name = "backend-server"
    env  = "dev"
  }
}

variable "additional_info" {
  type = map(string)
  default = {
    owner = "team-a"
  }
}

output "server_name" {
  value = lookup(var.server_info, "name", "unknown")
}

output "merged_map" {
  value = merge(var.server_info, var.additional_info)
}

Modifier les types de données

Parfois, une valeur doit être d'un type de données précis (par exemple, une chaîne de caractères au lieu d'un nombre) pour un argument de ressource. Les fonctions de conversion de type telles que tostring() et tonumber() vous permettent de le faire.

Garantit la compatibilité entre les différentes parties de votre configuration.

variable "port_number" {
  type    = number
  default = 8080
}

output "port_as_string" {
  value = tostring(var.port_number)
}

output "string_to_number" {
  value = tonumber("123") + 7
}

Les fonctions en action

Les fonctions intégrées peuvent être combinées ou imbriquées pour effectuer des transformations de données complexes. Cet exemple construit un nom de ressource en combinant des variables, en convertissant l'une d'elles en majuscules et en veillant à ce que les types soient corrects.

variable "env" {
  type    = string
  default = "dev"
}

variable "service" {
  type    = string
  default = "app"
}

variable "instance_id" {
  type    = number
  default = 1
}

output "resource_name" {
  value = join("-", [
    upper(var.env),
    var.service,
    tostring(var.instance_id)
  ])
}

Bonnes pratiques

Lorsque vous utilisez des fonctions, privilégiez la clarté et la facilité de maintenance :

  • Conservez un code lisible : n'imbriquez pas excessivement les fonctions si cela rend le code difficile à comprendre.
  • Utilisez des variables : stockez les résultats intermédiaires complexes dans des variables locales pour améliorer la lisibilité.
  • Testez avec terraform console : expérimentez rapidement avec les fonctions pour voir leur sortie avant de les ajouter à votre configuration.

Défi sur les fonctions

Vérifions votre compréhension du fonctionnement conjoint des fonctions intégrées de Terraform.

Vous maîtrisez les fonctions !

Vous avez exploré les puissantes fonctions intégrées de Terraform !

Vous comprenez maintenant comment utiliser les fonctions de manipulation des chaînes, des nombres, des collections et de conversion de type pour rendre vos configurations dynamiques et adaptables. Ces outils sont essentiels pour écrire du code d'infrastructure efficace et réutilisable.

Questions Fréquemment Posées

La leçon « Fonctions intégrées de Terraform » est-elle gratuite ?

Oui — le texte complet de « Fonctions intégrées de Terraform » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Terraform Infrastructure as Code, passe à CoddyKit PRO. Le cours Terraform Infrastructure as Code comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Fonctions intégrées de Terraform » ?

Découvrez un large éventail de fonctions intégrées de Terraform pour manipuler les chaînes, traiter les listes, convertir les types et bien plus encore, afin d’enrichir vos configurations. Tu pratiques Terraform Infrastructure as Code avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Terraform Infrastructure as Code ?

Aucune expérience préalable n'est requise. Terraform Infrastructure as Code sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.

Combien de temps prend la leçon « Fonctions intégrées de Terraform » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Terraform Infrastructure as Code ?

Oui. Chaque leçon Terraform Infrastructure as Code inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Utiliser des boucles avec `for_each` et `count`
  2. Fonctions intégrées de Terraform
  3. Expressions conditionnelles et splats
  4. Blocs dynamiques pour une configuration imbriquée
← Retour à Terraform Infrastructure as Code