Ricerca nel sito web

Come creare una coda SQS su AWS utilizzando Terraform


Su questa pagina

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

In questo articolo, creeremo una coda SQS utilizzando Terraform in  \region=eu-west-3\. Aggiungeremo anche una politica che consentirà a tutti di inviare messaggi alla coda. Prima di procedere con l'articolo, si presume che tu abbia già una conoscenza di base anche di SQS e Terraform.

Dopo aver creato una coda SQS, fai clic qui se vuoi imparare a creare un abbonamento tra SQS e SNS poiché non rientra nell'ambito di questo articolo.

In questo articolo, creeremo una coda standard. Fai clic qui se desideri saperne di più sugli argomenti e le proprietà disponibili in Terraform per SQS. Puoi utilizzare queste proprietà per personalizzare la coda SQS.

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 le autorizzazioni necessarie per eseguire operazioni di creazione ed eliminazione SQS. (Fai clic qui per sapere come creare un utente IAM con access_key e secret_key su AWS, )

Cosa faremo

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

Scrivi i file di configurazione Terraform per la coda SQS

Creiamo un file \main.tf\ che conterrà la definizione della risorsa menzionata di seguito. Questo creerà un SQS in \region=eu-west-3\, ma se vuoi creare una coda in un'altra regione allora puoi cambiarne il valore.

Troverai il codice sul mio repository Github al seguente link.

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

resource "aws_sqs_queue" "my_first_sqs" {
  name = var.sqs_name
}

resource "aws_sqs_queue_policy" "my_sqs_policy" {
  queue_url = aws_sqs_queue.my_first_sqs.id

  policy = <<POLICY
{
  "Version": "2012-10-17",
  "Id": "sqspolicy",
  "Statement": [
    {
      "Sid": "First",
      "Effect": "Allow",
      "Principal": "*",
      "Action": "sqs:SendMessage",
      "Resource": "${aws_sqs_queue.my_first_sqs.arn}"
    }
  ]
}
POLICY
}

Qui,

  • nome: il valore è definito in variables.tf.
  • queue_url: l'ID viene recuperato dalla coda my_first_sqs

Ottieni l'accesso utente e la chiave segreta di AWS IAM e aggiungili al file \terraform.tfvars\. Questo utente IAM deve disporre di autorizzazioni sufficienti su SQS.

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

Ora, crea un file \variables.tf\ per definire le variabili in modo da non dover codificare nulla nel nostro file \main.tf\. Se vuoi usare un altro nome per la coda, puoi cambiare la variabile \sqs_name\.

Github Link: https://github.com/shivalkarrahul/DevOps/blob/master/aws/terraform/create-sqs-queue/variables.tf
File: variables.tf
variable "access_key" {
        description = "Access key of AWS IAM User with the required permissions for SQS Queue creation and deletion"
}
variable "secret_key" {
        description = "Secret key of AWS IAM user with the required permissions for SQS Queue creation and deletion"
}


variable "sqs_name" {
        description = "Name of the sqs queue to be created. You can assign any unique name for the Queue"
        default = "my-first-sqs"
}

Qui,

  • sqs_name: abbiamo specificato il valore predefinito come my-first-sqs. Puoi cambiarlo e assegnare un nome diverso alla coda da creare.

Crea una coda SQS utilizzando i file di configurazione di Terraform.

Una volta che hai main.tf, terraform.tfvars e variables.tf, sei pronto per creare una coda SQS 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 coda SQS nel tuo account AWS nella regione specificata insieme alla policy ad essa collegata.

terraform apply

Andiamo alla console AWS SQS per verificare l'SQS che abbiamo appena creato.

Elimina la coda SQS creata utilizzando Terraform.

Quando non hai più bisogno della coda SQS che hai creato e 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 coda SQS dopo aver confermato l'eliminazione. Una volta che la coda è stata eliminata, non può essere ripristinata, quindi fai molta attenzione mentre esegui l'operazione di eliminazione.

terraform destroy

Conclusione

In questo articolo, abbiamo creato una coda SQS con la policy allegata. Abbiamo salvato le nostre variabili in un file separato \variables.tf\ in modo da non dover codificare nulla nel nostro main.tf. Abbiamo visto con quanta facilità la risorsa può essere eliminata utilizzando un singolo comando in Terraform.