Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Terraform-Ressourcen verstehen
Der Hauptgrund für die Existenz sowohl AWS CloudFormation von Terraform als auch von Terraform ist die Erstellung und Wartung von Cloud-Ressourcen. Aber was genau ist eine Cloud-Ressource? Und sind CloudFormation Ressourcen und Terraform-Ressourcen dasselbe? Die Antwort lautet... ja und nein. Um dies zu veranschaulichen, finden Sie in diesem Handbuch ein Beispiel für die Verwendung CloudFormation und anschließend Terraform zur Erstellung eines Amazon Simple Storage Service (Amazon S3) -Buckets.
Das folgende CloudFormation Codebeispiel erstellt einen Amazon S3 S3-Beispiel-Bucket.
{ "myS3Bucket": { "Type": "AWS::S3::Bucket", "Properties": { "BucketName": "my-s3-bucket", "BucketEncryption": { "ServerSideEncryptionConfiguration": [ { "ServerSideEncryptionByDefault": { "SSEAlgorithm": "AES256" } } ] }, "PublicAccessBlockConfiguration": { "BlockPublicAcls": true, "BlockPublicPolicy": true, "IgnorePublicAcls": true, "RestrictPublicBuckets": true }, "VersioningConfiguration": { "Status": "Enabled" } } } }
Das folgende Terraform-Codebeispiel erstellt einen identischen Amazon S3 S3-Bucket.
resource "aws_s3_bucket" "myS3Bucket" { bucket = "my-s3-bucket" } resource "aws_s3_bucket_server_side_encryption_configuration" "bucketencryption" { bucket = aws_s3_bucket.myS3Bucket.id rule { apply_server_side_encryption_by_default { sse_algorithm = "AES256" } } } resource "aws_s3_bucket_public_access_block" "publicaccess" { bucket = aws_s3_bucket.myS3Bucket.id block_public_acls = true block_public_policy = true ignore_public_acls = true restrict_public_buckets = true } resource "aws_s3_bucket_versioning" "versioning" { bucket = aws_s3_bucket.myS3Bucket.id versioning_configuration { status = "Enabled" } }
Für Terraform definiert ein Anbieter die Ressource, und dann deklarieren und konfigurieren Entwickler diese Ressourcen. Anbieter sind ein Konzept, das in diesem Handbuch im nächsten Abschnitt behandelt wird. Das Terraform-Beispiel erstellt völlig separate Ressourcen für mehrere Einstellungen des S3-Buckets. Das Erstellen separater Ressourcen für Einstellungen ist nicht unbedingt typisch dafür, wie der AWS Terraform-Anbieter mit Ressourcen umgeht. AWS Dieses Beispiel zeigt jedoch einen wichtigen Unterschied. Während eine CloudFormation Ressource durch die CloudFormationRessourcenspezifikation streng definiert ist, hat Terraform keine solche Anforderung. In Terraform ist das Konzept einer Ressource etwas nebulöser.
Obwohl sich die Tools in Bezug auf die genauen Leitplanken, die definieren, was eine einzelne Ressource ist, unterscheiden können, ist eine Cloud-Ressource im Allgemeinen jede bestimmte Entität, die in der Cloud existiert und erstellt, aktualisiert oder gelöscht werden kann. Unabhängig davon, um wie viele Ressourcen es sich handelt, erstellen die beiden vorherigen Beispiele beide exakt dasselbe Objekt mit den exakt gleichen Einstellungen innerhalb eines. AWS-Konto