# Installer le fournisseur Terraform pour Stripe Configurez le fournisseur pour un environnement de développement local. Le fournisseur Terraform pour Stripe vous permet de gérer les ressources Stripe à l’aide d’une infrastructure sous forme de code. Configurez des produits, des prix, des compteurs de facturation et des offres tarifaires complexes grâce à la syntaxe déclarative de Terraform. Votre infrastructure Stripe devient ainsi versionnée, reproductible et auditable. Pour plus d’informations sur les API, consultez la [documentation de l’API Stripe](https://docs.stripe.com/api.md). ## Exemple de flux Suivez ce flux pour créer un produit avec un prix périodique et un endpoint de webhook afin de recevoir des événements. Créez un nouveau fichier Terraform, `main.tf` : ```hcl terraform { required_providers { stripe = { source = "stripe/stripe" version = "0.1.3" } } } provider "stripe" { # API key is read from STRIPE_API_KEY environment variable # Alternatively, set it explicitly (not recommended for production) # api_key = "sk_test_..." } # Define a product resource "stripe_product" "pro_plan" { name = "Pro Plan" description = "Professional tier with advanced features" } # Create a recurring price for the product resource "stripe_price" "pro_monthly" { product = stripe_product.pro_plan.id currency = "usd" unit_amount = 2900 recurring { interval = "month" } } # Set up a webhook endpoint for payment events resource "stripe_webhook_endpoint" "payments" { url = "https://api.example.com/webhooks/stripe" enabled_events = [ "payment_intent.succeeded", "payment_intent.payment_failed", "customer.subscription.created", "customer.subscription.deleted", ] } output "price_id" { value = stripe_price.pro_monthly.id } ``` Définissez votre clé API : ```bash export STRIPE_API_KEY="<>" ``` Prévisualisez et appliquez les modifications : ```bash terraform plan terraform apply terraform output ``` ## Ressources prises en charge Cette section propose une référence rapide des ressources disponibles. Pour une documentation détaillée et la liste complète des paramètres configurables, consultez [Ressources prises en charge](https://docs.stripe.com/terraform/resources.md). ### Product Catalog | Ressource | Description | | ----------------------------- | --------------------------------------------------- | | `stripe_product` | Définitions des produits | | `stripe_price` | Configurations tarifaires | | `stripe_coupon` | Bons de réduction | | `stripe_shipping_rate` | Configurations des frais de livraison | | `stripe_tax_rate` | Définitions des taux de taxe | | `stripe_entitlements_feature` | Drapeaux de fonctionnalités pour les droits d’accès | ### Ressources principales | Ressource | Description | | ---------------------------------- | -------------------------------------------- | | `stripe_customer` | Fiches clients | | `stripe_webhook_endpoint` | Configurations des endpoints de webhook | | `stripe_billing_meter` | Compteurs de suivi de l’utilisation | | `stripe_v2_core_event_destination` | Configurations des destinations d’événements | ### Facturation avancée à l’usage (Private preview) Ces ressources font partie de l’API Billing v2 et nécessitent un accès à la version bêta privée. | Ressource | Description | | ------------------------------------------ | -------------------------------------- | | `stripe_v2_billing_pricing_plan` | Conteneurs d’offres tarifaires | | `stripe_v2_billing_pricing_plan_component` | Composants du plan | | `stripe_v2_billing_licensed_item` | Éléments d’accès sous licence | | `stripe_v2_billing_license_fee` | Frais d’abonnement | | `stripe_v2_billing_metered_item` | Éléments facturables basés sur l’usage | | `stripe_v2_billing_rate_card` | Conteneurs tarifaires | | `stripe_v2_billing_rate_card_rate` | Tarifs unitaires | | `stripe_v2_billing_service_action` | Crédits et réajustements | ### Sources de données | Source de données | Description | | ---------------------- | ------------------------------------------------- | | `stripe_billing_meter` | Rechercher les compteurs de facturation existants | ## Gérer plusieurs environnements avec des espaces de travail Les espaces de travail Terraform vous permettent de gérer des environnements Stripe distincts (environnement de test ou mode production) à l’aide de fichiers d’état isolés. Cela évite toute modification accidentelle des ressources de production lorsque vous travaillez dans un environnement de test. ### Configurer des espaces de travail Créez des espaces de travail pour un environnement de test et le mode production : ```bash # Create workspaces terraform workspace new sandbox terraform workspace new livemode # List available workspaces terraform workspace list ``` ### Basculer entre les environnements Chaque espace de travail dispose de son propre fichier d’état. Basculez entre les espaces de travail et définissez la clé API correspondante : ```bash # Work in sandbox terraform workspace select sandbox export STRIPE_API_KEY=<> terraform plan terraform apply # Work in livemode (production) terraform workspace select livemode export STRIPE_API_KEY="sk_live_..." terraform plan terraform apply ``` ## Gérer les limites d’appels Par défaut, Terraform exécute les opérations en parallèle, ce qui peut provoquer des erreurs de limitation d’appels lorsqu’on gère de nombreuses ressources Stripe. L’API Stripe autorise jusqu’à [100 opérations de lecture par seconde en mode production et 25 en environnement de test](https://docs.stripe.com/rate-limits.md), chaque endpoint API ayant ses propres limites. Pour éviter d’atteindre les limites d’appels, utilisez l’option `-parallelism` pour réduire le nombre d’opérations simultanées : ```bash terraform plan -parallelism=2 terraform apply -parallelism=2 ``` Pour les déploiements d’infrastructure importants, nous recommandons de régler `parallelism` entre 2 et 5 afin de rester dans les limites d’appels. Cela est particulièrement important en environnement de test, où les limites sont plus basses.