Daten mit Data Sources abfragen
Nutzen Sie Data Sources, um Informationen über vorhandene Infrastruktur oder externe Dienste abzurufen und dadurch dynamischere und anpassungsfähigere Konfigurationen zu ermöglichen.
Daten mit Data Sources abfragen ist eine kostenlose Terraform Infrastructure as Code-Lektion auf CoddyKit. Dies ist Lektion 1 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 Data Sources?
In Terraform müssen wir häufig auf vorhandene Infrastruktur oder externe Daten verweisen, die nicht von unserer aktuellen Konfiguration verwaltet werden.
Hier kommen Data Sources ins Spiel! Sie ermöglichen es Ihrer Terraform-Konfiguration, Informationen über bereits bereitgestellte Ressourcen oder externe Dienste abzurufen.
Data Sources im Vergleich zu Ressourcen
Es ist wichtig, Data Sources von Ressourcen zu unterscheiden.
- Ressourcen definieren Infrastruktur, die Terraform erstellt, aktualisiert oder löscht.
- Data Sources rufen lediglich Informationen über vorhandene Infrastruktur oder Daten ab. Sie erstellen oder ändern nichts.
Betrachten Sie sie als schreibgeschützte Abfragen für Ihre Infrastruktur.
Praktische Anwendungsfälle
Data Sources sind besonders nützlich, um:
- die ID einer vorhandenen Virtual Private Cloud (VPC) zu ermitteln,
- das neueste Amazon Machine Image (AMI) für eine EC2-Instanz abzurufen,
- Secrets aus einem Secret-Management-Dienst abzurufen,
- DNS-Einträge oder Netzwerkkonfigurationen nachzuschlagen.
Dadurch werden Ihre Konfigurationen dynamischer und müssen weniger Werte fest kodieren.
Eine Data Source definieren
Ein Data-Source-Block sieht einem Ressourcenblock ähnlich. Er beginnt mit dem Schlüsselwort data, gefolgt von Provider und Typ sowie einem lokalen Namen.
data "aws_vpc" "selected" {
filter {
name = "tag:Name"
values = ["my-existing-vpc"]
}
}Abgerufene Daten verwenden
Sobald eine Data Source Informationen abruft, stehen ihre Attribute in anderen Teilen Ihrer Konfiguration zur Verfügung. Sie können mithilfe der folgenden Syntax darauf verweisen: data.<TYPE>.<NAME>.<ATTRIBUTE>.
Um beispielsweise die ID der ausgewählten VPC abzurufen:
output "vpc_id" {
value = data.aws_vpc.selected.id
}Das neueste AMI abrufen
Eine häufige Aufgabe besteht darin, das neueste Amazon Machine Image (AMI) für eine EC2-Instanz zu ermitteln. So müssen AMI-IDs nicht fest kodiert werden, wodurch Ihre Konfiguration robuster wird.
So rufen Sie das neueste Amazon-Linux-2-AMI ab:
provider "aws" {
region = "us-east-1"
}
data "aws_ami" "amazon_linux_2" {
most_recent = true
owners = ["amazon"]
filter {
name = "name"
values = ["amzn2-ami-hvm-*-x86_64-gp2"]
}
filter {
name = "virtualization-type"
values = ["hvm"]
}
}
output "latest_ami_id" {
value = data.aws_ami.amazon_linux_2.id
}Dynamisches S3-Richtliniendokument
Data Sources sind nicht nur für Cloud-Ressourcen gedacht. Die Data Source aws_iam_policy_document hilft dabei, komplexe IAM-Richtlinien strukturiert zu erstellen.
Sie erstellt keine Richtlinie, sondern generiert das JSON-Dokument, das Sie anschließend auf eine Ressource wie einen S3-Bucket anwenden können.
provider "aws" {
region = "us-east-1"
}
data "aws_iam_policy_document" "s3_read_only_policy" {
statement {
principals {
type = "AWS"
identifiers = ["arn:aws:iam::123456789012:user/example-user"]
}
actions = [
"s3:GetObject",
"s3:ListBucket"
]
resources = [
"arn:aws:s3:::my-example-bucket",
"arn:aws:s3:::my-example-bucket/*"
]
}
}
output "policy_json" {
value = data.aws_iam_policy_document.s3_read_only_policy.json
}Ihre Suche verfeinern
Viele Data Sources unterstützen filter-Blöcke. Damit können Sie Kriterien angeben, um die Ergebnisse einzugrenzen und sicherzustellen, dass die richtige Ressource oder die richtigen Daten abgerufen werden.
Filter akzeptieren typischerweise einen name-Wert (das Attribut, nach dem gefiltert wird) und values (eine Liste zulässiger Werte für dieses Attribut).
data "aws_instance" "web" {
instance_state_names = ["running"]
filter {
name = "tag:Environment"
values = ["production"]
}
filter {
name = "instance-type"
values = ["t2.micro", "t3.micro"]
}
}Bewährte Vorgehensweisen für Data Sources
So bleiben Ihre Konfigurationen übersichtlich und effizient:
- Seien Sie spezifisch: Verwenden Sie Filter, um genau die benötigten Daten abzurufen und Mehrdeutigkeiten zu vermeiden.
- Idempotenz: Data Sources sind von Natur aus idempotent. Das bedeutet, dass ihre mehrfache Ausführung dasselbe Ergebnis liefert.
- Anzahl der Aufrufe minimieren: Rufen Sie Daten nur ab, wenn dies erforderlich ist, um
terraform plan-Vorgänge zu beschleunigen. - Mit Outputs kombinieren: Verwenden Sie Outputs, um abgerufene Daten bereitzustellen, die andere Konfigurationen oder Benutzer benötigen könnten.
Quiz zu Data Sources
Welche der folgenden Aussagen über Terraform Data Sources sind RICHTIG?
Zusammenfassung: Daten abfragen
Sie haben gelernt, wie Terraform-Data-Sources Ihren Konfigurationen ermöglichen, Informationen über vorhandene Infrastruktur oder externe Dienste abzufragen und abzurufen.
Diese leistungsstarke Funktion ermöglicht dynamische, flexible und robuste Konfigurationen, da fest kodierte Werte vermieden und die aktuelle Umgebung berücksichtigt werden. Denken Sie daran: Data Sources lesen nur, sie erstellen oder ändern niemals etwas!
Häufig gestellte Fragen
Ist die Lektion „Daten mit Data Sources abfragen“ kostenlos?
Ja — der vollständige Text von „Daten mit Data Sources abfragen“ 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 „Daten mit Data Sources abfragen“?
Nutzen Sie Data Sources, um Informationen über vorhandene Infrastruktur oder externe Dienste abzurufen und dadurch dynamischere und anpassungsfähigere Konfigurationen zu ermöglichen. 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 1 von 4.
Wie lange dauert die Lektion „Daten mit Data Sources abfragen“?
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
- Daten mit Data Sources abfragen
- Lokale und Remote-Exec-Provisioner
- Null-Ressourcen und Trigger
- Externe Daten und Templates verwenden