Terraform ist ein Open-Source-Infrastructure-as-Code-Tool, das von HashiCorp entwickelt wurde. Es ist ein Tool zum sicheren und effizienten Erstellen, Ändern und Versionieren von Infrastrukturen in der Cloud. Mit dem Infrastructure-as-Code-Tool können Entwickler die Infrastruktur so codieren, dass die Bereitstellung automatisiert, schneller und wiederholbar wird.
Amazon S3 ist ein Objektspeicher, mit dem Sie beliebige Datenmengen jederzeit und von überall im Web speichern und abrufen können.
In diesem Tutorial zeige ich Ihnen, wie Sie mit terraform Dateien von einem Laptop/PC in den AWS S3-Bucket hochladen.
Erfordernis
- AWS-Konto und Identity Access Management (IAM)-Benutzer mit einem geheimen Zugriffsschlüsselpaar.
- Terraform in Ihrem System installiert.
Schritt 1: Zugangsschlüssel bereitstellen
Erstellen Sie einen Dateinamen provider.tf und fügen Sie die folgende Codezeile ein. Der Zugriffsschlüssel und der geheime Schlüssel werden generiert, wenn Sie einen Benutzer hinzufügen ICH BIN. Stellen Sie sicher, dass der Benutzer mindestens die Berechtigung hat, AmazonS3FullAccess. Wählen Sie die Region aus, in der Sie arbeiten möchten.
Anbieter “aws” { access_key = “ACCESS_KEY_HERE” secret_key = “SECRET_KEY_HERE” region = “us-east-1” }
Schritt 2: Eimer erstellen
Öffnen Sie eine weitere Datei im selben Verzeichnis namens ‚s3bucket.tf‘ und erstellen Sie unseren ersten Bucket ‚b1‘, nennen Sie ihn ‚s3-terraform-bucket‘. Sie erhalten möglicherweise eine Fehlermeldung, wenn der angegebene Name Bucket ‘s3-terraform-bucket’ in der globalen AWS-Region nicht eindeutig ist. Eine andere wichtige Sache ist ACL die einen granularen Zugriff auf Ihren Bucket bietet, machen Sie ihn entweder privat oder öffentlich. Sie können Tags Ihrer Wahl zur Verfügung stellen.
Laden Sie außerdem die Datei hoch, die sich im Verzeichnis ‘myfiles’ befindet. Definieren Ressource als aws_s3_bucket_object. Um auf den oben gerade definierten Bucket zu verweisen, rufen Sie ihn von der Bucket-ID b1 ab. Taste ist der von Ihnen gewählte Name für das Objekt. Etag wird angegeben, um herauszufinden, ob die Datei seit ihrem letzten Upload mit md5-Summe geändert wurde.
# Create a bucket
resource "aws_s3_bucket" "b1" {
bucket = "s3-terraform-bucket-lab"
acl = "private" # or can be "public-read"
tags = {
Name = "My bucket"
Environment = "Dev"
}
}
# Upload an object
resource "aws_s3_bucket_object" "object" {
bucket = aws_s3_bucket.b1.id
key = "profile"
acl = "private" # or can be "public-read"
source = "myfiles/yourfile.txt"
etag = filemd5("myfiles/yourfile.txt")
}
Schritt 2.1: Mehrere Dateien hochladen (optional)
Wenn Sie alle Dateien eines Verzeichnisses hochladen möchten, müssen Sie die Schleife ‘for_each’ verwenden.
resource "aws_s3_bucket_object" "object1" {
for_each = fileset("myfiles/", "*")
bucket = aws_s3_bucket.b1.id
key = each.value
source = "myfiles/${each.value}"
etag = filemd5("myfiles/${each.value}")
}
Schritt 3: Ausführen
Die Terraform Plankommando wird verwendet, um einen Ausführungsplan zu erstellen. Terraform führt eine Aktualisierung durch, sofern sie nicht ausdrücklich deaktiviert ist, und bestimmt dann, welche Aktionen erforderlich sind, um den in den Konfigurationsdateien angegebenen gewünschten Zustand zu erreichen.
Endlich ausführen terraform anwenden und sehen Sie sich die Ausgabe an.
terraform plan
terraform apply
Melden Sie sich bei Ihrer AWS-Konsole an und gehen Sie zu S3 Service. Sie können dort einen Bucket s3-terraform -bucket und die darin hochgeladene Datei sehen.
Fazit
Wir sind am Ende dieses Artikels angelangt. In diesem Handbuch haben wir Sie durch die erforderlichen Schritte geführt, um einen Bucket in AWS s3 zu erstellen und einzelne oder mehrere Dateien mit Terraform hinzuzufügen.