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.