Cómo crear una cola SQS en AWS usando Terraform

En este artículo, crearemos una cola SQS utilizando Terraform en«región = eu-west-3«. También añadiremos una política que permita a todos enviar mensajes a la cola. Antes de continuar con el artículo, se supone que ya tienes conocimientos básicos de SQS y también de Terraform.

Después de crear una cola SQS, haz clic aquí si quieres aprender a crear una suscripción entre SQS y SNS, ya que no entra en el ámbito de este artículo.

En este artículo, crearemos una cola estándar. Haz clicaquí si quieres saber más sobre los argumentos y propiedades disponibles en Terraform para SQS. Puedes utilizar esas propiedades para personalizar la cola SQS.

Requisitos previos

  1. Conocimientos básicos de Terraform.
  2. Terraform instalado en tu sistema.
  3. Cuenta de AWS(Créala si no tienes una).
  4. ‘access_key’ & ‘secret_key’ de un Usuario IAM de AWS con los permisos necesarios para realizar operaciones de creación y eliminación de SQS. (Haz clicaquí para aprender a crear un usuario IAM con ‘access_key’ & ‘secret_key’ en AWS, )

Qué vamos a hacer

  1. Escribir los archivos de configuración de Terraform para SQS Queue.
  2. Crear una SQS Queue utilizando los archivos de configuración de Terraform.
  3. Eliminar la SQS Queue creada utilizando Terraform.

Escribir los archivos de configuración de Terraform para SQS Queue

Vamos a crear un archivo«main.tf» que contendrá la definición de recursos mencionada a continuación. Esto creará un SQS en«región = eu-oeste-3«, pero si quieres crear una cola en otra región puedes cambiar su valor.

Encontrarás el código en mi repo de Github en el siguiente enlace.

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
}

Aquí,

  • nombre: El valor se define en variables.tf.
  • queue_url: El Id se recupera de la cola my_first_sqs

Consigue el acceso de tu usuario IAM de AWS y la clave secreta y añádelos al archivo «terraform.tfvars». Este usuario IAM debe tener suficientes permisos en 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>"

Ahora, crea un archivo«variables.tf» para definir las variables, de modo que no tengamos que codificar nada en nuestro archivo«main.tf«. Si quieres utilizar otro nombre para la cola, puedes cambiar la variable«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"
}

Aquí,

  • Nombre_sqs: Hemos especificado el valor por defecto como mi-primer-sqs. Puedes cambiarlo y asignar un nombre diferente a la cola que se va a crear.

Crea una cola SQS utilizando los archivos de configuración de Terraform.

Una vez que tengasmain.tf, terraform.tfvars yvariables.tf estarás preparado para crear una cola SQS utilizando Terraform.

El siguiente es el primer comando para inicializar un directorio de trabajo que contenga los archivos de configuración de Terraform.

terraform init

terraformar init

El siguiente comando es el siguiente para crear un plan de ejecución. Aquí podrás conocer todos los cambios que se producirán.

terraform plan

plan de terraformación

Ahora estás preparado para aplicar los cambios necesarios para alcanzar el estado deseado de la configuración mediante el siguiente comando. Esto creará una cola SQS en tu cuenta de AWS bajo la región especificada junto con la política adjunta.

terraform apply

aplicar terraformación

Vamos a la consola de AWS SQS para comprobar el SQS que acabamos de crear.

aplicar terraformación

Elimina la cola SQS creada mediante Terraform.

Cuando ya no necesites la cola SQS que has creado y quieras eliminarla, no hace falta que vayas a la consola de AWS y la elimines desde allí. En su lugar, puedes eliminarla utilizando el siguiente comando de forma muy sencilla. El siguiente comando borrará la cola SQS después de que confirmes el borrado. Una vez que la cola se haya borrado, no se podrá restaurar, así que ten mucho cuidado al realizar la operación de borrado.

terraform destroy

terraform destroy

Conclusión

En este artículo, hemos creado una cola SQS con la política adjunta. Hemos guardado nuestras variables en un archivo separado«variables.tf» para no tener que codificar nada en nuestro main.tf. Hemos visto la facilidad con la que se puede eliminar el recurso mediante un único comando en Terraform.

También te podría gustar...