Ricerca nel sito web

Come creare una tabella DynamoDB su AWS utilizzando Terraform


Su questa pagina

  1. Prerequisiti
  2. Cosa faremo?
  3. Scrivi i file di configurazione Terraform per la tabella DynamoDB
  4. Crea una tabella DynamoDB utilizzando i file di configurazione Terraform
  5. Elimina la tabella DynamoDB creata utilizzando Terraform
  6. Conclusione

In questo articolo, vedremo i passaggi per creare una tabella DynamoDB utilizzando Terraform. Creeremo una tabella DynamoDB con il modello di fatturazione \PAY_PER_REQUEST\. Prima di procedere con questo articolo, si presuppone che tu sia a conoscenza del servizio AWS DynamoDB e ne conosca le basi, insieme a Terraform.

Fai clic qui per saperne di più sugli argomenti e le proprietà di DynamoDB disponibili in Terraform.

Prerequisiti

  1. Comprensione di base di Terraform.
  2. Terraform installato sul tuo sistema.
  3. Account AWS (crea se non ne hai uno).
  4. access_key e secret_key di un utente AWS IAM con autorizzazioni sufficienti per creare una tabella DynamoDB. (Fai clic qui per sapere come creare un utente IAM con access_key e secret_key su AWS, )

Che cosa faremo?

  1. Scrivi i file di configurazione Terraform per la tabella DynamoDB.
  2. Crea una tabella DynamoDB utilizzando i file di configurazione Terraform.
  3. Elimina la tabella DynamoDB creata utilizzando Terraform.

Scrivi i file di configurazione Terraform per la tabella DynamoDB

Crea una directory dedicata per scrivere e archiviare i file Terraform per creare una tabella DynamoDB.

Ora, crea un nuovo file chiamato \main.tf\ e salva il seguente codice al suo interno. Lo stesso codice è disponibile anche sul mio repository Github. Puoi persino copiare il codice da lì.

Il codice seguente creerà una risorsa in \region = eu-west-3\. Cambia la regione secondo la tua scelta.

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

Qui,

  • name : (Obbligatorio) Il nome della tabella che stai creando.
  • billing_mode :(facoltativo) controlla il modo in cui ti vengono addebitati i costi di lettura e scrittura.
  • hash_key:(Obbligatorio, Forza nuova risorsa) L'attributo da usare come chiave hash (di partizione) per la tabella.
  • attribute: (obbligatorio) elenco di definizioni di attributi nidificati. Richiesto solo per gli attributi hash_key e range_key per la tabella.
  • tags: (facoltativo) tag da inserire nella tabella.

Il passaggio successivo consiste nel caricare l'accesso AWS e le chiavi segrete in un file denominato \terraform.tfvars\. Dovresti già disporre di un utente AWS IAM con segreto e chiavi di accesso con autorizzazioni sufficienti su DynamoDB. Prendi quelle chiavi e memorizzale nel file.

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>"

L'ultimo passo è creare \variables.tf\ e assegnare valori alle variabili in esso contenute. È possibile modificare i valori di table_name, table_billing_mode e la variabile di ambiente. Fai clic qui per fare riferimento alla documentazione di Terraform per verificare la disponibilità di argomenti/proprietà validi.

Github Link: 
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"
}

Qui,

  • table_name: valore definito=my-first-test-table. Puoi cambiare questo.
  • table_billing_mode: valore definito = PAY_PER_REQUEST. Puoi specificare PROVISIONED o PAY_PER_REQUEST.
  • ambiente:  valore tag definito=test. È possibile assegnare qualsiasi valore all'ambiente della chiave del tag.

Crea una tabella DynamoDB utilizzando i file di configurazione di Terraform

Una volta che hai main.tf, terraform.tfvars e variables.tf, sei pronto per creare la tua tabella DynamoDB utilizzando Terraform.

Di seguito è riportato il primo comando per inizializzare una directory di lavoro contenente i file di configurazione Terraform.

terraform init

Il comando successivo è il seguente per creare un piano di esecuzione. Qui puoi venire a sapere quali saranno tutti i cambiamenti.

terraform plan

Ora sei pronto per applicare le modifiche necessarie per raggiungere lo stato desiderato della configurazione utilizzando il seguente comando. Questo creerà una tabella DynamoDB nel tuo account AWS nella regione specificata.

terraform apply

Ora puoi andare alla console AWS e verificare se la tabella è stata creata o meno.

Elimina la tabella DynamoDB creata utilizzando Terraform

Quando non hai più bisogno della tabella e di cosa eliminarla, non è necessario andare alla console AWS ed eliminarla da lì. Invece, puoi eliminarlo usando il seguente comando molto facilmente. Il seguente comando eliminerà la tabella dopo aver confermato l'eliminazione.

terraform destroy

Conclusione

In questo articolo, abbiamo visto i passaggi per creare una tabella DynamoDB con il modello di fatturazione \PAY_PER_REQUEST\ nella \region = eu-west-3\ utilizzando l'accesso AWS e le chiavi segrete. Abbiamo anche eliminato la tabella utilizzando il comando destroy. È ora possibile estendere la funzionalità utilizzando diverse proprietà disponibili e provare diversi casi d'uso.