Skip to Content

Qu’est-ce que Terraform Output ?

Illustration de plusieurs piles de serveurs abstraits dans un environnement numérique sur fond bleu.

Terraform est un outil largement accepté pour définir et provisionner l’infrastructure sous forme de code . L’une des principales fonctionnalités de cet outil est la sortie Terraform, qui permet aux utilisateurs d’extraire et d’afficher des informations utiles à partir des configurations Terraform.

Cet article aborde l’importance des résultats Terraform, leur syntaxe et leur utilisation, ainsi que les bonnes pratiques pour améliorer vos projets d’infrastructure en tant que code.

Comprendre les résultats de Terraform

Supposons que vous gériez une infrastructure complexe et que vous ayez besoin de partager des données critiques entre différentes ressources ou systèmes externes. La sortie Terraform est une fonctionnalité qui vous permet de le faire. Cette fonctionnalité extrait et affiche sans effort des informations précieuses à partir de vos configurations Terraform et vous permet de les partager entre différents modules, espaces de travail et systèmes externes.

Les résultats Terraform fournissent des informations précieuses sur les ressources gérées par Terraform. L’outil de ligne de commande de sortie terraforme vous permet ensuite de récupérer et d’afficher ces valeurs de sortie, que d’autres composants de votre infrastructure ou systèmes externes peuvent ensuite consommer.

La fonctionnalité Terraform Output offre plusieurs avantages, principalement :

  • Partage de données : Les résultats Terraform excellent dans le partage des attributs des ressources générées dynamiquement entre les configurations Terraform et les autres systèmes. Supposons que vous créiez une instance EC2 avec Terraform. Le bloc de sortie peut capturer l’adresse IP publique, qui peut ensuite être utilisée par une autre configuration Terraform pour configurer une règle de groupe de sécurité ou transmise à un outil externe de gestion de la configuration.
  • Automatisation : Les sorties permettent une gestion automatisée de la configuration en fournissant des valeurs dynamiques pour les ressources dépendantes. Par exemple, si vous provisionnez un serveur de base de données avec Terraform et que le port de base de données est attribué dynamiquement, le bloc de sortie peut capturer ce port. Ce port capturé peut ensuite être utilisé dans une autre configuration pour établir une connexion à la base de données à partir d’une application Web.
  • Débogage et vérification : Les résultats vont au-delà de la simple vérification de l’état des ressources. Pendant le dépannage, vous pouvez examiner les valeurs de sortie pour identifier les incohérences ou les configurations inattendues des ressources susceptibles de provoquer des problèmes avec les processus dépendants.
  • Cohérence : Les résultats favorisent la cohérence entre les environnements. En faisant référence à des sorties plutôt qu’à des valeurs codées en dur, vous pouvez maintenir une logique de configuration identique entre les environnements de développement, de test et de production.
  • Documentation : Les résultats peuvent servir de documentation, en fournissant des informations claires et concises sur l’infrastructure fournie par Terraform. Cela peut être particulièrement utile pour les autres ingénieurs ou équipes qui ont besoin de comprendre le système.

Syntaxe et utilisation des données Terraform

Les sorties Terraform sont définies dans les fichiers de configuration à l’aide du bloc de sortie. Voici le détail de la syntaxe :

output "<name>" {
  value = <expression>
}
  • <name> : il s'agit d'un nom défini par l'utilisateur pour la variable de sortie. Choisissez un nom descriptif qui reflète les données qu’il contient.
  • <expression> : il s’agit d’une expression Terraform qui évalue la valeur que vous souhaitez exposer. Il peut faire référence aux attributs des ressources, utiliser des fonctions ou effectuer des calculs.

Exemples de résultats

Les exemples d’instance AWS suivants montrent comment afficher les sorties Terraform sous différents types de données :

  • Chaîne de sortie :

output "instance_id" {
  value = aws_instance.example.id
}
  • Nombre de résultats :

output "instance_count" {
  value = length(aws_instance.example)
}
  • Sortie de liste :

output "instance_ips" {
  value = aws_instance.example[*].public_ip
}
  • Sortie de carte :

output "instance_tags" {
  value = {
    for instance in aws_instance.example :
    instance.id => instance.tags
  }
}

Référencement des résultats dans votre code

Une fois défini, vous pouvez référencer les résultats dans votre code Terraform à l’aide de leurs noms. Voici un exemple :

module "example_module" {
  source  = "./modules/example"
  # Reference the output from another module
  instance_id = var.other_module_name.instance_id
}

Dans cet exemple, example_module fait référence à la sortie instance_id d’un autre module nommé other_module_name. Cela montre comment les sorties facilitent la communication et l’échange de données entre les modules.

Variables de sortie et sources de données

Les sorties et les sources de données Terraform peuvent sembler similaires à première vue, mais elles servent des objectifs distincts dans vos flux de travail d’infrastructure en tant que code (IaC). Voici une répartition pour clarifier les différences :

Variables de sortie Terraform

Les résultats Terraform exposent des informations sur les ressources gérées par Terraform. Les valeurs de sortie sont dérivées des attributs des ressources existantes dans votre configuration Terraform. Les résultats sont généralement utilisés dans les cas suivants :

  • Partage de données entre les modules ou configurations Terraform
  • Transmission d’informations à des systèmes externes pour la gestion ou la surveillance de la configuration
  • Simplifier la logique de configuration en faisant référence à des valeurs dynamiques au lieu de données codées en dur

Un exemple de ce scénario est l’extraction de l’adresse IP publique d’une instance EC2 et son utilisation pour configurer une règle de groupe de sécurité dans un autre module Terraform.

Sources de données Terraform

Les sources de données récupèrent les données de sources externes. Il interagit avec des API ou des plug-ins pour récupérer des informations auprès de fournisseurs cloud, d’outils de gestion de la configuration ou d’autres systèmes externes. Les sources de données sont utilisées dans les cas suivants :

  • Accéder aux informations sur les ressources existantes qui ne sont pas gérées par Terraform elle-même
  • Utilisation de données externes pour configurer dynamiquement les ressources Terraform
  • Intégration de votre IaC à d’autres outils et plateformes

Par exemple, l’utilisation d’une source de données pour récupérer une liste des régions disponibles dans un fournisseur de cloud avant de créer des ressources dans ces régions.

En termes simples, le choix entre utiliser une variable de sortie ou une source de données dépend de l’origine des données dont vous avez besoin :

  • Si les données proviennent de ressources gérées dans votre configuration Terraform, utilisez une variable de sortie.
  • Si les données résident dans un système externe ou doivent être extraites dynamiquement, utilisez une source de données.

Bonnes pratiques d’utilisation de Terraform Output

Lorsque vous utilisez les résultats Terraform, vous devez tenir compte des bonnes pratiques suivantes :

  • Utilisez des noms descriptifs : Choisissez des noms clairs et concis qui reflètent les données exposées par la variable de sortie. Évitez les noms génériques comme « sortie1 » ou « données ». Utilisez plutôt des noms comme « rds_instance_public_ip » ou « webserver_security_group_id ». Cela améliore la lisibilité et la maintenance de vos configurations.
  • Utilisez une convention de dénomination cohérente : Maintenez une convention de dénomination cohérente sur l’ensemble de votre base de code Terraform. Il peut s’agir d’utiliser des traits de soulignement ou des traits d’union pour séparer et de maintenir le schéma de dénomination aligné sur tous les modules et configurations.
  • Résultats liés au groupe : Regroupez logiquement les résultats associés. Par exemple, si vous avez plusieurs sorties associées à une instance de base de données (adresse IP, port, nom d’utilisateur), regroupez-les sous un seul en-tête dans votre fichier de configuration. Cela améliore l’organisation et facilite la recherche d’informations spécifiques.
  • Commentaires : Incluez des commentaires clairs pour expliquer l’objectif et l’utilisation de chaque variable de sortie. Cela est particulièrement utile pour les résultats qui peuvent ne pas être immédiatement explicites ou lorsqu’ils sont utilisés par d’autres modules ou équipes.
  • Évitez les extrants inutiles : Évitez de définir des résultats pour des données qui ne sont pas réellement nécessaires. Des sorties excessives peuvent encombrer la sortie et compliquer l’identification des informations les plus pertinentes. Évaluez si les données peuvent être utilisées directement dans votre configuration Terraform ou si une approche alternative pourrait être plus efficace.
  • Évitez les extrants de secrets : Si possible, évitez de stocker des données sensibles dans les configurations Terraform. Découvrez d’autres méthodes de gestion des secrets, comme l’exploitation de HashiCorp Vault ou des variables d’environnement.
  • Utilisez l’attribut sensible Terraform : Si l’utilisation de sorties pour des secrets est inévitable, les marquer comme sensibles à l’aide de l’attribut sensible dans le bloc de sortie. Cela indique à la commande de sortie terraforme de supprimer la valeur lors de l’affichage de la sortie.

Voici un exemple avec l’attribut sensible ajouté :

output "db_password" {
  value     = aws_db_instance.example.password
  sensitive = true
}

Conclusion

La sortie Terraform vous permet de combler le fossé entre les configurations statiques et l’infrastructure dynamique. En exploitant les résultats, vous pouvez rationaliser le partage de données, automatiser les tâches et simplifier la vérification.

Pour libérer tout le potentiel de votre infrastructure, envisagez d’utiliser des solutions Pure Storage comme Portworx® pour assurer un stockage persistant pour vos déploiements Terraform Kubernetes, ainsi que Pure Cloud Block Store™ pour fournir la solution de stockage idéale pour vos applications basées sur le cloud.

Nous vous recommandons également…

10/2025
Virtual Machine Provisioning at Enterprise Scale
Sizing and scaling Red Hat OpenShift Virtualization with Portworx.
Livre blanc
22 pages

Parcourez les ressources clés et les événements

VIDÉO
À voir : Avantages d’Enterprise Data Cloud

Charlie Giancarno : l’avenir dépend de la gestion des données, pas du stockage Découvrez comment une approche unifiée peut transformer les opérations informatiques au sein de l’entreprise

Regarder maintenant
RESSOURCE
Le stockage traditionnel ne peut pas alimenter l’avenir.

Les charges de travail modernes exigent des vitesses, des mesures de sécurité et une évolutivité adaptées à l’IA. Votre pile est-elle prête ?

Lancer l’évaluation
PURE360-DEMOS
Pure Storage erkunden, kennenlernen und erleben.

Überzeugen Sie sich mit On-Demand-Videos und -Demos von den Möglichkeiten von Pure Storage.

Demos ansehen
LEADERSHIP ÉCLAIRÉ
La course à l’innovation

Les dernières informations stratégiques et perspectives fournies par des leaders du secteur, pionniers de l’innovation en matière de stockage.

En savoir plus
Votre navigateur n’est plus pris en charge !

Les anciens navigateurs présentent souvent des risques de sécurité. Pour profiter de la meilleure expérience possible sur notre site, passez à la dernière version de l’un des navigateurs suivants.