Objectifs
- Lire un bloc resource et son adresse.
- Distinguer arguments configurés et attributs exportés.
- Comprendre le graphe et les dépendances implicites.
- Utiliser depends_on seulement lorsque la relation n’est pas exprimable autrement.
Le cœur d’une configuration Terraform
Une resource représente un objet que Terraform peut créer, lire, modifier ou supprimer grâce à un provider. Son type vient du provider et son nom local est choisi dans le module.
Terraform construit un graphe de dépendances. Il peut ainsi ordonner les opérations et paralléliser celles qui sont indépendantes.
Type, nom local, arguments et attributs
Dans aws_s3_bucket.logs, aws_s3_bucket est le type et logs le nom local. bucket est un argument configuré ; id est un attribut que le provider expose après lecture ou création.
resource "aws_s3_bucket" "logs" {
bucket = "example-training-logs"
}
output "bucket_id" {
value = aws_s3_bucket.logs.id
}Dépendance implicite par référence
La référence aws_s3_bucket.logs.id indique que le bloc de protection dépend du bucket. Terraform déduit cette relation sans depends_on explicite.
resource "aws_s3_bucket_public_access_block" "logs" {
bucket = aws_s3_bucket.logs.id
block_public_acls = true
block_public_policy = true
ignore_public_acls = true
restrict_public_buckets = true
}depends_on et revue du plan
depends_on sert pour une dépendance réelle que les références ne révèlent pas, par exemple un effet indirect externe. Il rend le graphe moins précis et peut provoquer davantage de valeurs inconnues dans le plan : préférez les références implicites lorsqu’elles sont possibles.
terraform planUn exemple HCL n’est pas une preuve qu’un changement est sûr. Contrôlez le provider, le compte, la région, les coûts et les suppressions du plan.
Erreur fréquente : multiplier depends_on
Mini résumé
- Une resource possède un type de provider et un nom local.
- Les arguments configurent l’objet ; les attributs peuvent être référencés.
- Les références créent des dépendances implicites dans le graphe.
- terraform plan permet de relire les actions proposées.
Outils associés
Générer une configuration HCL
Utilisez Terraform HCL Generator pour préparer localement une base AWS, Azure, GCP ou Docker, puis relisez-la avant utilisation.
Ouvrir l’outilMini quiz
Trois questions pour vérifier les notions essentielles de la leçon.