# Stripe Terraform-Anbieter installieren Richten Sie den Anbieter für die lokale Entwicklung ein. Mit dem Stripe Terraform Provider können Sie Stripe-Ressourcen mithilfe von Infrastructure as Code verwalten. Konfigurieren Sie Produkte, Preise, Abrechnungszähler und komplexe Preispläne mit der deklarativen Terraform-Syntax. Ihre Stripe-Infrastruktur wird versionskontrolliert, reproduzierbar und überprüfbar. Informationen zur API finden Sie in der [Stripe-API-Dokumentation](https://docs.stripe.com/api.md). ## Beispiel-Workflow Bitte befolgen Sie diesen Arbeitsablauf, um ein Produkt mit einem wiederkehrenden Preis und einem Webhook-Endpoint zum Empfang von Ereignissen zu erstellen. Erstellen Sie eine neue Terraform-Datei, `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 } ``` Legen Sie Ihren API-Schlüssel fest: ```bash export STRIPE_API_KEY="<>" ``` Vorschau und Änderungen anwenden: ```bash terraform plan terraform apply terraform output ``` ## Unterstützte Ressourcen In diesem Abschnitt finden Sie einen kurzen Überblick über die verfügbaren Ressourcen. Detaillierte Dokumentation und alle konfigurierbaren Parameter finden Sie unter [Unterstützte Ressourcen](https://docs.stripe.com/terraform/resources.md). ### Produktkatalog | Ressource | Beschreibung | | ----------------------------- | --------------------------------- | | `stripe_product` | Produktdefinitionen | | `stripe_price` | Preiskonfigurationen | | `stripe_coupon` | Rabattgutscheine | | `stripe_shipping_rate` | Konfiguration der Versandraten | | `stripe_tax_rate` | Definitionen von Steuersätzen | | `stripe_entitlements_feature` | Funktionsflags für Berechtigungen | ### Kernressourcen | Ressource | Beschreibung | | ---------------------------------- | --------------------------------- | | `stripe_customer` | Kundendatensätze | | `stripe_webhook_endpoint` | Webhook-Endpoint-Konfigurationen | | `stripe_billing_meter` | Nutzungsmessgeräte | | `stripe_v2_core_event_destination` | Konfigurationen für Ereignisziele | ### Erweiterte nutzungsbasierte Abrechnung (Private preview) Diese Ressourcen sind Teil der Billing v2 API und erfordern Zugriff auf die private Vorschau. | Ressource | Beschreibung | | ------------------------------------------ | ------------------------------------------- | | `stripe_v2_billing_pricing_plan` | Preismodell-Container | | `stripe_v2_billing_pricing_plan_component` | Modellkomponenten | | `stripe_v2_billing_licensed_item` | Lizenzierte Zugriffselemente | | `stripe_v2_billing_license_fee` | Abonnementgebühren | | `stripe_v2_billing_metered_item` | Nutzungsbasierte abrechnungsfähige Elemente | | `stripe_v2_billing_rate_card` | Preiscontainer | | `stripe_v2_billing_rate_card_rate` | Individuelle Tarife | | `stripe_v2_billing_service_action` | Gutschriften und Anpassungen | ### Datenquellen | Datenquelle | Beschreibung | | ---------------------- | ------------------------------------- | | `stripe_billing_meter` | Vorhandene Abrechnungszähler abfragen | ## Verwalten Sie mehrere Umgebungen mit Arbeitsbereichen Mit Terraform-Arbeitsbereichen können Sie separate Stripe-Umgebungen (Sandbox versus Live-Modus) mit isolierten Statusdateien verwalten. Dadurch werden versehentliche Änderungen an Produktionsressourcen während der Arbeit in einer Sandbox verhindert. ### Einrichten von Arbeitsbereichen Erstellen Sie Arbeitsbereiche für eine Sandbox und einen Live-Modus: ```bash # Create workspaces terraform workspace new sandbox terraform workspace new livemode # List available workspaces terraform workspace list ``` ### Wechseln Sie zwischen Umgebungen Jeder Arbeitsbereich verfügt über eine eigene Statusdatei. Wechseln Sie den Arbeitsbereich und legen Sie den entsprechenden API-Schlüssel fest: ```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 ``` ## Begrenzungen handhaben Terraform führt standardmäßig Vorgänge parallel aus, was bei der Verwaltung vieler Stripe-Ressourcen zu Fehlern bei der Begrenzung führen kann. Die Stripe-API ermöglicht bis zu [100 Lesevorgänge pro Sekunde im Live-Modus und 25 im Sandbox-Modus](https://docs.stripe.com/rate-limits.md), wobei einzelne API-Endpoints ihre eigenen Grenzen haben. Verwenden Sie das Flag `-parallelism`, um die Anzahl der gleichzeitigen Vorgänge zu reduzieren, um zu verhindern, dass es zu einer Überschreitung der Begrenzungen kommt: ```bash terraform plan -parallelism=2 terraform apply -parallelism=2 ``` Für große Infrastrukturbereitstellungen empfehlen wir, `parallelism` auf 2 bis 5 einzustellen, um die Begrenzungen einzuhalten. Dies ist im Sandbox-Modus wichtig, wo die Begrenzungen niedriger sind.