0Pricing
Terraform Infrastructure as Code · Leçon

Tester l’intégration des ressources cloud

Mettez en œuvre des tests d’intégration pour vérifier le déploiement correct et le fonctionnement des ressources cloud réelles provisionnées par Terraform.

Tester l’intégration des ressources cloud est une leçon Terraform Infrastructure as Code gratuite sur CoddyKit. Ceci est la leçon 3 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.

Qu’est-ce que les tests d’intégration ?

Bienvenue ! Dans cette leçon, nous allons découvrir les tests d’intégration de vos configurations Terraform. Contrairement aux tests unitaires, qui vérifient des composants individuels de manière isolée, les tests d’intégration vérifient que plusieurs parties de votre infrastructure fonctionnent correctement ensemble.

Avec Terraform, cela signifie déployer de véritables ressources cloud, puis vérifier leur comportement et leurs interactions.

Pourquoi tester Terraform avec des tests d’intégration ?

Les tests d’intégration sont essentiels pour Terraform, car ils vous permettent d’avoir la certitude que votre code :

  • Déploie correctement : vérifie que les ressources sont créées comme prévu.
  • Fonctionne comme prévu : vérifie les fonctionnalités, et pas seulement la syntaxe.
  • Gère les dépendances : garantit que les ressources interconnectées communiquent entre elles.
  • Évite les régressions : détecte les problèmes introduits par les modifications.

Il s’agit de tester le fonctionnement réel dans un environnement contrôlé.

Présentation de Terratest

Bien que vous puissiez écrire vos propres scripts, l’outil le plus utilisé pour les tests d’intégration de Terraform est Terratest. Il s’agit d’une bibliothèque Go open source développée par HashiCorp.

Terratest vous permet de :

  • écrire du code Go pour déployer Terraform ;
  • exécuter des vérifications sur les ressources déployées ;
  • détruire les ressources après les tests.

Il fournit des fonctions d’aide pour interagir avec Terraform, les API cloud et bien plus encore.

Configurer Terratest

Pour utiliser Terratest, Go doit être installé sur votre machine. Une fois Go prêt, vous allez créer un nouveau module Go pour vos tests :

1. Créez un répertoire pour vos tests (par exemple : test/).

2. Initialisez un module Go à l’intérieur de ce répertoire :

cd test
go mod init my_tf_tests

Ajouter la dépendance Terratest

Après avoir initialisé votre module Go, vous devez ajouter Terratest comme dépendance. Cette commande récupère la bibliothèque et met à jour votre fichier go.mod :

go get github.com/gruntwork-io/terratest/modules/terraform

Notre module Terraform de test

Créons une configuration Terraform simple que nous voulons tester. Il s’agira d’un bucket S3 élémentaire. Enregistrez-la sous s3-module/main.tf :

resource "aws_s3_bucket" "example" {
  bucket = "my-unique-test-bucket-12345"
  tags = {
    Environment = "test"
    ManagedBy   = "Terraform"
  }
}

Écrire votre premier test Terratest

Écrivons maintenant votre fichier de test Go. Créez un fichier tel que test/s3_test.go. Les étapes principales sont les suivantes :

  • définir les options Terraform (chemin vers la configuration) ;
  • initialiser et appliquer Terraform ;
  • exécuter les vérifications ;
  • détruire les ressources.

Cela garantit un état propre après chaque exécution du test.

Terratest : initialiser, appliquer et vérifier

Voici le code Go de notre test de bucket S3. Remarquez que nous utilisons terraform.InitAndApply pour provisionner l’infrastructure, puis que nous récupérons les sorties ou appelons les API AWS pour effectuer les vérifications.

package test

import (
  "testing"
  "github.com/gruntwork-io/terratest/modules/aws"
  "github.com/gruntwork-io/terratest/modules/terraform"
  "github.com/stretchr/testify/assert"
)

func TestS3BucketCreation(t *testing.T) {
  t.Parallel()

  terraformOptions := &terraform.Options{
    TerraformDir: "../s3-module",
  }

  // Defer destroy to ensure cleanup
  defer terraform.Destroy(t, terraformOptions)

  // Init and apply Terraform
  terraform.InitAndApply(t, terraformOptions)

  // Get the bucket name directly from the config or outputs
  bucketName := "my-unique-test-bucket-12345"

  // Assertions
  aws.AssertS3BucketExists(t, "us-east-1", bucketName)
  tags := aws.GetS3BucketTags(t, "us-east-1", bucketName)
  assert.Equal(t, "test", tags["Environment"])
}

Exécuter votre test d’intégration

Pour exécuter votre test Terratest, accédez au répertoire test/ dans le terminal, puis exécutez la commande de test Go. L’option -v affiche une sortie détaillée.

Terratest va :

  • initialiser Terraform ;
  • appliquer la configuration ;
  • effectuer les vérifications ;
  • détruire les ressources créées.
cd test
go test -v

Bonnes pratiques pour les tests d’intégration

Gardez ces conseils à l’esprit pour réaliser des tests d’intégration efficaces :

  • Isolation : utilisez des noms uniques ou des suffixes aléatoires pour les ressources afin d’éviter les conflits.
  • Nettoyage : détruisez toujours les ressources après les tests (defer terraform.Destroy).
  • Coût : tenez compte du coût des ressources. Utilisez des ressources petites et peu coûteuses.
  • Rapidité : les tests d’intégration sont plus lents que les tests unitaires. Exécutez-les moins souvent, par exemple dans un pipeline CI/CD.
  • Réalisme : testez dans le même environnement cloud (ou sur un compte de test dédié) que celui dans lequel vous effectuerez le déploiement.

Vérifiez votre compréhension

Lequel des éléments suivants constitue un avantage principal de l’utilisation de tests d’intégration pour les configurations Terraform ?

Récapitulatif : tests d’intégration

Vous avez découvert les tests d’intégration pour Terraform ! Nous avons vu :

  • ce que sont les tests d’intégration et pourquoi ils sont essentiels pour Terraform ;
  • comment Terratest, une bibliothèque Go, facilite l’écriture de ces tests ;
  • le flux de travail élémentaire : configuration, application, vérification et destruction ;
  • les bonnes pratiques pour écrire des tests d’intégration efficaces et économiques.

Les tests d’intégration vous donnent l’assurance que votre infrastructure se comporte correctement dans des conditions réelles.

Questions Fréquemment Posées

La leçon « Tester l’intégration des ressources cloud » est-elle gratuite ?

Oui — le texte complet de « Tester l’intégration des ressources cloud » 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 « Tester l’intégration des ressources cloud » ?

Mettez en œuvre des tests d’intégration pour vérifier le déploiement correct et le fonctionnement des ressources cloud réelles provisionnées par Terraform. 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 3 sur 4.

Combien de temps prend la leçon « Tester l’intégration des ressources cloud » ?

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. `validate` et `fmt` de Terraform
  2. Tests unitaires avec Terratest
  3. Tester l’intégration des ressources cloud
  4. Politiques sous forme de code et contrôles de conformité
← Retour à Terraform Infrastructure as Code