Comment créer une file d’attente SQS sur AWS à l’aide de Terraform

Dans cet article, nous allons créer une file d’attente SQS à l’aide de Terraform dans« region = eu-west-3« . Nous allons également ajouter une politique qui permettra à tous d’envoyer des messages à la file d’attente. Avant de poursuivre l’article, il est supposé que tu as déjà des connaissances de base sur SQS et Terraform également.

Après avoir créé une file d’attente SQS, clique ici si tu veux apprendre à créer un abonnement entre SQS et SNS car cela n’entre pas dans le cadre de cet article.

Dans cet article, nous allons créer une file d’attente standard. Cliqueici si tu veux en savoir plus sur les arguments et les propriétés disponibles dans Terraform pour SQS. Tu peux utiliser ces propriétés pour personnaliser la file d’attente SQS.

Pré-requis

  1. Compréhension de base de Terraform.
  2. Terraform installé sur ton système.
  3. Compte AWS (à créer si tu n’en as pas).
  4. ‘access_key’ & ‘secret_key’ d’un utilisateur AWS IAM ayant les autorisations requises pour effectuer les opérations de création et de suppression SQS. (Cliqueici pour apprendre à créer un utilisateur IAM avec ‘access_key’ et ‘secret_key’ sur AWS, ).

Ce que nous allons faire

  1. Écrire les fichiers de configuration Terraform pour SQS Queue.
  2. Créer une SQS Queue à l’aide des fichiers de configuration Terraform.
  3. Supprimer la SQS Queue créée à l’aide de Terraform.

Écrire les fichiers de configuration Terraform pour SQS Queue

Créons un fichier« main.tf » qui contiendra la définition de ressource mentionnée ci-dessous. Cela créera une SQS dans« region = eu-west-3« , mais si tu veux créer une file d’attente dans une autre région, tu peux changer sa valeur.

Tu trouveras le code sur mon repo Github sur le lien suivant.

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
}

Ici,

  • name : La valeur est définie dans variables.tf.
  • queue_url : L’identifiant est récupéré dans la file d’attente de my_first_sqs
    .

Récupère l’accès et la clé secrète de ton utilisateur AWS IAM et ajoute-les au fichier « terraform.tfvars ». Cet utilisateur IAM doit avoir des permissions suffisantes sur 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>"

Maintenant, crée un fichier« variables.tf » pour définir les variables afin que nous n’ayons pas besoin de coder en dur quoi que ce soit dans notre fichier« main.tf« . Si tu veux utiliser un autre nom pour la file d’attente, tu peux modifier 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"
}

Ici,

  • sqs_name : Nous avons spécifié que la valeur par défaut est my-first-sqs. Tu peux la modifier et attribuer un nom différent à la file d’attente à créer.

Crée une file d’attente SQS à l’aide des fichiers de configuration Terraform.

Une fois que tu asmain.tf, terraform.tfvars etvariables.tf, tu es prêt à créer une file SQS à l’aide de Terraform.

La commande suivante est la première à initialiser un répertoire de travail contenant les fichiers de configuration Terraform.

terraform init

La terraforme est en place

La commande suivante est la suivante pour créer un plan d’exécution. Ici, tu peux prendre connaissance de tous les changements qui auront lieu.

terraform plan

plan de terraformation

Tu es maintenant prêt à appliquer les changements nécessaires pour atteindre l’état souhaité de la configuration en utilisant la commande suivante. Cela créera une file d’attente SQS dans ton compte AWS sous la région spécifiée ainsi que la politique qui lui est attachée.

terraform apply

appliquer la terraforme

Allons dans la console AWS SQS pour vérifier la SQS que nous venons de créer.

appliquer la terraforme

Supprime la file d’attente SQS créée à l’aide de Terraform.

Lorsque tu n’as plus besoin de la file d’attente SQS que tu as créée et que tu veux la supprimer, il n’est pas nécessaire d’aller dans la console AWS et de la supprimer de là. Au lieu de cela, tu peux la supprimer très facilement à l’aide de la commande suivante. La commande suivante supprimera la file d’attente SQS après que tu auras confirmé la suppression. Une fois que la file d’attente est supprimée, elle ne peut pas être restaurée, alors fais très attention lorsque tu effectues l’opération de suppression.

terraform destroy

terraformer détruire

Conclusion

Dans cet article, nous avons créé une file d’attente SQS avec la politique qui lui est attachée. Nous avons enregistré nos variables dans un fichier séparé« variables.tf » afin de ne pas avoir à coder en dur quoi que ce soit dans notre main.tf. Nous avons vu avec quelle facilité la ressource peut être supprimée à l’aide d’une seule commande dans Terraform.

Vous aimerez aussi...