0Pricing
DevOps Bootcamp · Leçon

Créer des fournisseurs personnalisés

Étendez Terraform au-delà de ses intégrations existantes en comprenant le fonctionnement des fournisseurs et en créant un fournisseur personnalisé avec le Terraform Plugin Framework.

Créer des fournisseurs personnalisés est une leçon DevOps Bootcamp gratuite sur CoddyKit. Ceci est la leçon 4 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.

Quand les fournisseurs existants ne suffisent plus

Le registre couvre la plupart des plateformes, mais les entreprises utilisent souvent des API internes sans fournisseur. Un fournisseur personnalisé permet à Terraform de gérer ces ressources avec le même cycle plan/apply.

Fonctionnement des fournisseurs

Un fournisseur est un plug-in binaire distinct que Terraform lance et auquel il communique via gRPC. Le plug-in traduit les opérations CRUD de Terraform en appels d’API vers le système cible.

Le cadre de plug-ins

Le Terraform Plugin Framework moderne de HashiCorp (Go) est la méthode recommandée pour créer des fournisseurs et remplace l’ancien SDKv2. Les fournisseurs sont écrits en Go.

import (
  "github.com/hashicorp/terraform-plugin-framework/provider"
)

Définir le fournisseur

Le type de fournisseur déclare son nom ainsi que les ressources et sources de données qu’il propose.

type widgetProvider struct{}

func (p *widgetProvider) Metadata(_ context.Context, _ provider.MetadataRequest, resp *provider.MetadataResponse) {
  resp.TypeName = "widget"
}

Le schéma de ressource

Chaque ressource déclare un schéma d’attributs avec des types et des métadonnées. C’est ce que les utilisateurs définissent dans leur HCL.

resp.Schema = schema.Schema{
  Attributes: map[string]schema.Attribute{
    "name": schema.StringAttribute{Required: true},
    "id":   schema.StringAttribute{Computed: true},
  },
}

Implémenter CRUD

Une ressource implémente Create, Read, Update et Delete. Chaque méthode appelle votre API et réécrit le résultat dans l’état Terraform.

func (r *widgetResource) Create(ctx context.Context, req resource.CreateRequest, resp *resource.CreateResponse) {
  // call API, then save state
}

Read préserve la fiabilité de l’état

La méthode Read actualise l’état à partir de l’API réelle. Si la ressource distante a disparu, vous la retirez de l’état afin que Terraform prévoie de la recréer.

Tests d’acceptation

Les fournisseurs utilisent des tests d’acceptation qui exécutent de vrais cycles plan/apply dans un environnement de test, activés par une variable d’environnement afin de ne pas être lancés accidentellement.

TF_ACC=1 go test ./... -v

Substitution pour le développement local

Pour tester un fournisseur avant sa publication, utilisez une substitution de développement dans la configuration de votre CLI afin que Terraform charge votre binaire local au lieu de le télécharger depuis un registre.

provider_installation {
  dev_overrides {
    "acme/widget" = "/home/dev/go/bin"
  }
  direct {}
}

Publier le fournisseur

Publiez-le dans le registre en étiquetant une version et en signant les binaires avec une clé GPG. Les utilisateurs le déclarent ensuite dans required_providers.

terraform {
  required_providers {
    widget = {
      source  = "acme/widget"
      version = "~> 1.0"
    }
  }
}

Points à prendre en compte pour la maintenance

Un fournisseur représente un engagement à long terme : les modifications d’API, la compatibilité des versions et la documentation nécessitent tous un entretien. Pour un besoin ponctuel, la source de données external ou un script peut être plus simple qu’un fournisseur complet.

Vérification rapide

Testez vos connaissances des fournisseurs personnalisés.

Récapitulatif : étendre Terraform

Vous avez appris à créer des fournisseurs personnalisés :

  • Les fournisseurs sont des plug-ins Go qui communiquent avec le cœur via gRPC.
  • Le Plugin Framework définit les schémas et les méthodes CRUD.
  • Les substitutions de développement permettent les tests locaux ; les tests d’acceptation vérifient le comportement.
  • La publication nécessite des étiquettes et des binaires signés.

Questions Fréquemment Posées

La leçon « Créer des fournisseurs personnalisés » est-elle gratuite ?

Oui — le texte complet de « Créer des fournisseurs personnalisés » 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 « Créer des fournisseurs personnalisés » ?

Étendez Terraform au-delà de ses intégrations existantes en comprenant le fonctionnement des fournisseurs et en créant un fournisseur personnalisé avec le Terraform Plugin Framework. 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 4 sur 4.

Combien de temps prend la leçon « Créer des fournisseurs personnalisés » ?

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. Architectures multicloud et cloud hybride
  2. Politiques Sentinel pour la gouvernance
  3. Terraform Cloud et Enterprise
  4. Créer des fournisseurs personnalisés
← Retour à DevOps Bootcamp