So erstellen Sie eine DynamoDB-Tabelle auf AWS mit Terraform

In diesem Artikel werden wir die Schritte zum Erstellen einer DynamoDB-Tabelle mit Terraform sehen. Wir werden eine DynamoDB-Tabelle mit dem Abrechnungsmodell „PAY_PER_REQUEST“ erstellen. Bevor wir mit diesem Artikel fortfahren, wird vorausgesetzt, dass Sie den AWS DynamoDB Service kennen und dessen Grundlagen sowie Terraform beherrschen.

Klicken Sie hier, um mehr über die in Terraform verfügbaren DynamoDB-Argumente und -Eigenschaften zu erfahren.

Vorraussetzungen

  1. Grundlegendes Verständnis von Terraform.
  2. Terraform ist auf Ihrem System installiert.
  3. AWS-Konto (Erstellen Sie es, wenn Sie noch keines haben).
  4. ‚access_key‘ & ’secret_key‘ eines AWS IAM Users mit ausreichenden Rechten, um eine DynamoDB Tabelle zu erstellen. (Klicken Sie hier, um zu erfahren, wie Sie einen IAM-Benutzer mit ‚access_key‘ & ’secret_key‘ auf AWS erstellen).

Was werden wir tun?

  1. Schreiben Sie Terraform-Konfigurationsdateien für die DynamoDB-Tabelle.
  2. Erstellen Sie eine DynamoDB-Tabelle mit Hilfe der Terraform-Konfigurationsdateien.
  3. Löschen Sie die erstellte DynamoDB-Tabelle mit Hilfe von Terraform.

Schreiben von Terraform-Konfigurationsdateien für DynamoDB Table

Erstellen Sie ein dediziertes Verzeichnis zum Schreiben und Speichern von Terraform-Dateien, um eine DynamoDB-Tabelle zu erstellen.

Erstellen Sie nun eine neue Datei mit dem Namen„main.tf“ und speichern Sie den folgenden Code darin. Derselbe Code ist auch in meinem Github Repo verfügbar. Sie können den Code auch von dort kopieren.

Der folgende Code erstellt eine Ressource in „region = eu-west-3“. Ändern Sie die Region nach Ihrer Wahl.

Github Link: https://github.com/shivalkarrahul/DevOps/blob/master/aws/terraform/create-dynamodb-table/main.tf
File: main.tf
provider "aws" {
    access_key = "${var.access_key}"
    secret_key = "${var.secret_key}"
    region = "eu-west-3"
}

resource "aws_dynamodb_table" "my_first_table" {
  name        = "${var.table_name}"
  billing_mode = "${var.table_billing_mode}"
  hash_key       = "employee-id"
  attribute {
    name = "employee-id"
    type = "S"
  }
   tags = {
    environment       = "${var.environment}"
  }
}

Hier,

  • name : (Erforderlich) Der Name der Tabelle, die Sie erstellen.
  • billing_mode :(Optional) Steuert die Art der Abrechnung von Lese- und Schreibvorgängen.
  • hash_key:(Erforderlich, erzwingt neue Ressource) Das Attribut, das als Hash-(Partitions-)Schlüssel für die Tabelle verwendet werden soll.
  • attribute: (Erforderlich) Liste der verschachtelten Attributdefinitionen. Nur erforderlich für die Attribute hash_key und range_key für die Tabelle.
  • tags: (Optional) Tags, die in die Tabelle eingefügt werden sollen.

Der nächste Schritt besteht darin, Ihre AWS-Zugangs- und Geheimschlüssel in eine Datei mit dem Namen„terraform.tfvars“ zu laden. Sie sollten bereits einen AWS IAM-Benutzer mit geheimen und Zugriffsschlüsseln haben, der über ausreichende Berechtigungen für DynamoDB verfügt. Holen Sie sich diese Schlüssel und speichern Sie sie in der Datei.

Github Link: https://github.com/shivalkarrahul/DevOps/blob/master/aws/terraform/create-dynamodb-table/terraform.tfvars
File: terraform.tfvars
access_key = "<your-aws-access-here>"
secret_key = "<your-aws-secret-here>"

Der letzte Schritt besteht darin,„variables.tf“ zu erstellen und den Variablen darin Werte zuzuweisen. Sie können die Werte von table_name, table_billing_mode und der Umgebungsvariablen ändern. Klicken Sie hier, um in der Terraform-Dokumentation nachzuschauen, welche gültigen Argumente/Eigenschaften zur Verfügung stehen.

Github Link: https://github.com/shivalkarrahul/DevOps/blob/master/aws/terraform/create-dynamodb-table/variables.tf
File: variables.tf
variable "access_key" {
        description = "Access key of AWS IAM user"
}
variable "secret_key" {
        description = "Secret key of AWS IAM user"
}

variable "table_name" {
  description = "Dynamodb table name (space is not allowed)"
  default = "my-first-test-table"
}

variable "table_billing_mode" {
  description = "Controls how you are charged for read and write throughput and how you manage capacity."
  default = "PAY_PER_REQUEST"
}


variable "environment" {
  description = "Name of environment"
  default = "test"
}

Hier,

  • table_name: definierter Wert = my-first-test-table. Sie können dies ändern.
  • table_billing_mode: definierter Wert = PAY_PER_REQUEST. Sie können entweder PROVISIONED oder PAY_PER_REQUEST angeben.
  • environment: definierter Tag-Wert = test. Sie können dem Tag-Schlüssel environment einen beliebigen Wert zuweisen.

Erstellen Sie eine DynamoDB-Tabelle mit Hilfe der Terraform-Konfigurationsdateien

Sobald Sie main.tf, terraform.tfvars und variables.tf haben, sind Sie bereit, Ihre DynamoDB-Tabelle mit Terraform zu erstellen.

Es folgt der erste Befehl, um ein Arbeitsverzeichnis zu initialisieren, das Terraform-Konfigurationsdateien enthält.

terraform init

Terraform-Init

Der nächste Befehl ist der folgende, um einen Ausführungsplan zu erstellen. Hier erfahren Sie, welche Änderungen vorgenommen werden.

terraform plan

Terraformplan

Nun können Sie mit dem folgenden Befehl die Änderungen vornehmen, um den gewünschten Zustand der Konfiguration zu erreichen. Dadurch wird eine DynamoDB-Tabelle in Ihrem AWS-Konto unter der angegebenen Region erstellt.

terraform apply

terraform anwenden

Jetzt können Sie zur AWS-Konsole gehen und überprüfen, ob die Tabelle erstellt wurde oder nicht.

DynamoDB-Tabelle

Löschen Sie die erstellte DynamoDB-Tabelle mit Terraform

Wenn Sie die Tabelle nicht mehr benötigen und sie löschen möchten, müssen Sie nicht zur AWS-Konsole gehen und sie von dort aus löschen. Stattdessen können Sie sie ganz einfach mit dem folgenden Befehl löschen. Der folgende Befehl löscht die Tabelle, nachdem Sie die Löschung bestätigt haben.

terraform destroy

Terraform zerstören

Fazit

In diesem Artikel haben wir die Schritte zum Erstellen einer DynamoDB-Tabelle mit dem Abrechnungsmodell „PAY_PER_REQUEST in der „region =eu-west-3″ unter Verwendung von AWS-Zugangs- und Geheimschlüsseln gesehen. Außerdem haben wir die Tabelle mit dem Befehl destroy gelöscht. Sie können nun die Funktionalität erweitern, indem Sie verschiedene verfügbare Eigenschaften verwenden und verschiedene Anwendungsfälle ausprobieren.

Das könnte dich auch interessieren …