0Pricing
DevOps Bootcamp · Leçon

Ressources nulles et déclencheurs

Découvrez `null_resource` pour exécuter des commandes arbitraires qui ne correspondent à aucune ressource cloud réelle, et utilisez des déclencheurs pour contrôler le moment d’exécution des provisionneurs.

Ressources nulles et déclencheurs est une leçon DevOps Bootcamp 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 DevOps Bootcamp, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours DevOps Bootcamp comprend 4 leçons au total.

Qu'est-ce qu'une null_resource ?

La null_resource de Terraform est un type spécial de ressource qui ne crée ni ne gère directement d'objet d'infrastructure chez votre fournisseur infonuagique.

Elle sert plutôt d'espace réservé pour exécuter des commandes ou des scripts arbitraires, souvent dans le cadre de tâches qui sortent du périmètre du provisionnement habituel des ressources.

Pourquoi utiliser null_resource ?

Vous vous demandez peut-être pourquoi utiliser une ressource « null ». Elle est particulièrement utile pour :

  • Exécuter des scripts locaux : exécuter des commandes sur la machine où Terraform est exécuté (par exemple, préparer des fichiers de configuration).
  • Effectuer des actions après le déploiement : réaliser des tâches de configuration ou de nettoyage après le provisionnement des ressources réelles.
  • Interagir avec des API externes : lorsqu'aucun fournisseur Terraform dédié n'existe pour un service donné.
  • Appliquer une logique personnalisée : orchestrer des étapes personnalisées qui ne sont pas liées à une ressource infonuagique précise.

Structure de base d'une null_resource

Un bloc null_resource ressemble à toute autre ressource Terraform. Utilisé seul, sans provisionneurs ni déclencheurs, il crée simplement un objet « null » dans l'état Terraform et ne fait rien d'autre.

Il est généralement associé à des provisionneurs pour exécuter des commandes et à des déclencheurs pour contrôler le moment où ces commandes s'exécutent.

Exemple simple de null_resource

Voici une null_resource minimale. Si vous exécutez terraform apply, elle sera créée dans l'état, mais aucune action externe ne se produira.

Il s'agit simplement d'un espace réservé, prêt à être enrichi d'actions.

resource "null_resource" "my_placeholder" {
  # This resource exists in state but performs no action.
  # It's ready to attach provisioners or triggers.
}

Provisionneurs avec null_resource

La véritable puissance de null_resource apparaît lorsque vous l'associez à des provisionneurs.

Les provisionneurs vous permettent d'exécuter des scripts ou des commandes sur la machine qui exécute Terraform (local-exec) ou sur la ressource distante elle-même (remote-exec, bien que cette combinaison soit moins courante avec null_resource).

Ainsi, null_resource peut servir d'exécuteur d'actions.

Présentation des déclencheurs

Les triggers sont une carte de paires clé-valeur arbitraires définies dans un bloc null_resource.

Ils servent à indiquer à Terraform : « Si une valeur de cette carte change, cette null_resource (ainsi que ses provisionneurs) doit être réexécutée. »

Ce mécanisme est essentiel pour que la null_resource réagisse aux changements de votre infrastructure.

Fonctionnement des déclencheurs

Lorsqu'une valeur de la carte triggers change, Terraform détecte une modification de la null_resource.

Lors d'un terraform apply, Terraform va alors :

  • Détruire la null_resource existante (si elle existe).
  • Recréer la null_resource.
  • Réexécuter tous les provisionneurs associés.

Ce mécanisme garantit que vos actions personnalisées ne sont exécutées que lorsque des dépendances pertinentes changent.

Exemple : déclencheurs et local-exec

Ici, nous utilisons une null_resource pour simuler la mise à jour d'un fichier de configuration à partir d'une simple variable. Le provisionneur local-exec exécute une commande, et les triggers garantissent sa réexécution si var.app_version change.

variable "app_version" {
  description = "The version of the application."
  type        = string
  default     = "1.0.0"
}

resource "null_resource" "update_config_file" {
  triggers = {
    version_change = var.app_version
  }

  provisioner "local-exec" {
    command = "echo 'Config updated for version: ${self.triggers.version_change}' > app_config.txt"
  }
}

Bonnes pratiques et solutions de remplacement

Bien que puissante, utilisez null_resource avec discernement :

  • Privilégiez les fournisseurs : si un fournisseur ou une ressource Terraform dédiée existe pour une tâche, utilisez-la plutôt.
  • Préservez l'idempotence : veillez à ce que les scripts exécutés par les provisionneurs puissent être relancés plusieurs fois sans effets indésirables.
  • Évitez de gérer l'état : n'essayez pas de gérer un état externe avec null_resource : c'est le rôle des systèmes principaux d'état distant.
  • Envisagez la source de données external : pour une logique externe complexe qui renvoie des données structurées, la source de données external peut constituer une solution de remplacement plus claire.

Vérification rapide : ressources null

Vous avez découvert null_resource et les triggers. Vérifions votre compréhension.

Récapitulatif : null et déclencheurs

Dans cette leçon, vous avez découvert la polyvalence de la null_resource de Terraform, un outil puissant pour exécuter des commandes et des scripts personnalisés qui ne correspondent pas à des ressources infonuagiques concrètes.

Vous avez également découvert les triggers, un mécanisme intégré à null_resource qui vous permet de définir des dépendances et de garantir la réexécution des provisionneurs chaque fois que ces dépendances changent. Cela permet une automatisation personnalisée, dynamique et réactive dans votre infrastructure en tant que code.

Questions Fréquemment Posées

La leçon « Ressources nulles et déclencheurs » est-elle gratuite ?

Oui — le texte complet de « Ressources nulles et déclencheurs » 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 DevOps Bootcamp, passe à CoddyKit PRO. Le cours DevOps Bootcamp comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Ressources nulles et déclencheurs » ?

Découvrez `null_resource` pour exécuter des commandes arbitraires qui ne correspondent à aucune ressource cloud réelle, et utilisez des déclencheurs pour contrôler le moment d’exécution des provision… Tu pratiques DevOps Bootcamp 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 DevOps Bootcamp ?

Aucune expérience préalable n'est requise. DevOps Bootcamp 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 « Ressources nulles et déclencheurs » ?

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 DevOps Bootcamp ?

Oui. Chaque leçon DevOps Bootcamp 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. Interroger des données avec les sources de données
  2. Provisionneurs local et distant
  3. Ressources nulles et déclencheurs
  4. Utiliser des données externes et des modèles
← Retour à DevOps Bootcamp