0Pricing
Terraform Infrastructure as Code · Lektion

Integrationstests für Cloud-Ressourcen

Implementieren Sie Integrationstests, um die korrekte Bereitstellung und Funktion tatsächlicher Cloud-Ressourcen zu überprüfen, die von Terraform bereitgestellt wurden.

Integrationstests für Cloud-Ressourcen ist eine kostenlose Terraform Infrastructure as Code-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Terraform Infrastructure as Code-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Terraform Infrastructure as Code-Kurs umfasst insgesamt 4 Lektionen.

Was sind Integrationstests?

Willkommen! In dieser Lektion beschäftigen wir uns mit Integrationstests für Ihre Terraform-Konfigurationen. Im Gegensatz zu Unit-Tests, die einzelne Komponenten isoliert prüfen, verifizieren Integrationstests, dass mehrere Teile Ihrer Infrastruktur korrekt zusammenarbeiten.

Bei Terraform bedeutet dies, echte Cloud-Ressourcen bereitzustellen und anschließend deren Verhalten und Interaktionen zu überprüfen.

Warum Terraform mit Integrationstests testen?

Integrationstests sind für Terraform besonders wichtig, weil sie Ihnen die Sicherheit geben, dass Ihr Code:

  • korrekt bereitstellt: Überprüft, ob Ressourcen wie erwartet erstellt werden.
  • wie vorgesehen funktioniert: Prüft die Funktionalität und nicht nur die Syntax.
  • Abhängigkeiten verarbeitet: Stellt sicher, dass miteinander verbundene Ressourcen kommunizieren.
  • Regressionen verhindert: Erkennt Probleme, wenn Änderungen vorgenommen werden.

Es geht darum, die tatsächlichen Gegebenheiten in einer kontrollierten Umgebung zu testen.

Terratest kennenlernen

Sie könnten zwar eigene Skripte schreiben, doch das beliebteste Tool für Integrationstests von Terraform ist Terratest. Dabei handelt es sich um eine von HashiCorp entwickelte Open-Source-Go-Bibliothek.

Mit Terratest können Sie:

  • Go-Code schreiben, der Terraform bereitstellt.
  • Assertions für bereitgestellte Ressourcen ausführen.
  • Ressourcen nach den Tests zerstören.

Terratest bietet Hilfsfunktionen für die Interaktion mit Terraform, Cloud-APIs und mehr.

Terratest einrichten

Für die Verwendung von Terratest muss Go auf Ihrem Computer installiert sein. Sobald Go bereit ist, erstellen Sie ein neues Go-Modul für Ihre Tests:

1. Erstellen Sie ein Verzeichnis für Ihre Tests (z. B. test/).

2. Initialisieren Sie darin ein Go-Modul:

cd test
go mod init my_tf_tests

Terratest-Abhängigkeit hinzufügen

Nach der Initialisierung Ihres Go-Moduls müssen Sie Terratest als Abhängigkeit hinzufügen. Dieser Befehl ruft die Bibliothek ab und aktualisiert Ihre Datei go.mod:

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

Unser Terraform-Testmodul

Erstellen wir eine einfache Terraform-Konfiguration, die wir testen möchten. Dabei handelt es sich um einen einfachen S3-Bucket. Speichern Sie sie als s3-module/main.tf:

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

Ihren ersten Terratest schreiben

Schreiben wir nun unsere Go-Testdatei. Erstellen Sie eine Datei wie test/s3_test.go. Die grundlegenden Schritte sind:

  • Terraform-Optionen definieren (Pfad zur Konfiguration).
  • Terraform initialisieren und anwenden.
  • Assertions ausführen.
  • Ressourcen zerstören.

So wird nach jeder Testausführung ein sauberer Zustand sichergestellt.

Terratest: Initialisieren, Anwenden und Überprüfen

Hier sehen Sie den Go-Code für unseren Test des S3-Buckets. Beachten Sie, wie wir terraform.InitAndApply verwenden, um die Infrastruktur bereitzustellen, und anschließend Ausgaben abrufen oder AWS-APIs für Assertions aufrufen.

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"])
}

Ihren Integrationstest ausführen

Um Ihren Terratest auszuführen, wechseln Sie im Terminal in Ihr test/-Verzeichnis und führen Sie den Go-Testbefehl aus. Das Flag -v zeigt eine ausführliche Ausgabe an.

Terratest wird:

  • Terraform initialisieren.
  • Die Konfiguration anwenden.
  • Assertions ausführen.
  • Die erstellten Ressourcen zerstören.
cd test
go test -v

Bewährte Methoden für Integrationstests

Beachten Sie die folgenden Tipps für effektive Integrationstests:

  • Isolation: Verwenden Sie eindeutige Namen oder zufällige Suffixe für Ressourcen, um Konflikte zu vermeiden.
  • Bereinigung: Zerstören Sie Ressourcen nach den Tests immer (defer terraform.Destroy).
  • Kosten: Achten Sie auf die Ressourcenkosten. Verwenden Sie kleine, günstige Ressourcen.
  • Geschwindigkeit: Integrationstests sind langsamer als Unit-Tests. Führen Sie sie seltener aus, beispielsweise in CI/CD.
  • Realitätsnähe: Testen Sie in derselben Cloud-Umgebung (oder einem eigenen Testkonto), in der Sie später bereitstellen.

Verständnis überprüfen

Welcher der folgenden Punkte ist ein wesentlicher Vorteil der Verwendung von Integrationstests für Terraform-Konfigurationen?

Zusammenfassung: Integrationstests

Sie haben Integrationstests für Terraform kennengelernt! Wir haben Folgendes behandelt:

  • Was Integrationstests sind und warum sie für Terraform wichtig sind.
  • Wie Terratest, eine Go-Bibliothek, beim Schreiben dieser Tests unterstützt.
  • Den grundlegenden Ablauf: Einrichtung, Anwenden, Überprüfen und Zerstören.
  • Wichtige bewährte Methoden für effektive und kosteneffiziente Integrationstests.

Integrationstests geben Ihnen die Sicherheit, dass sich Ihre Infrastruktur in der Praxis korrekt verhält.

Häufig gestellte Fragen

Ist die Lektion „Integrationstests für Cloud-Ressourcen“ kostenlos?

Ja — der vollständige Text von „Integrationstests für Cloud-Ressourcen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Terraform Infrastructure as Code-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Terraform Infrastructure as Code-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Integrationstests für Cloud-Ressourcen“?

Implementieren Sie Integrationstests, um die korrekte Bereitstellung und Funktion tatsächlicher Cloud-Ressourcen zu überprüfen, die von Terraform bereitgestellt wurden. Du übst Terraform Infrastructure as Code mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Terraform Infrastructure as Code zu starten?

Keine Vorkenntnisse erforderlich. Terraform Infrastructure as Code auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „Integrationstests für Cloud-Ressourcen“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Terraform Infrastructure as Code-Lektion Code schreiben und ausführen?

Ja. Jede Terraform Infrastructure as Code-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Terraform `validate` und `fmt`
  2. Unit-Tests mit Terratest
  3. Integrationstests für Cloud-Ressourcen
  4. Policy as Code und Compliance-Prüfungen
← Zurück zu Terraform Infrastructure as Code