So erstellen Sie eine SQS-Warteschlange auf AWS mit Terraform

In diesem Artikel werden wir eine SQS-Warteschlange mit Terraform in „region = eu-west-3″ erstellen. Wir werden auch eine Richtlinie hinzufügen, die es allen erlaubt, Nachrichten an die Warteschlange zu senden. Bevor wir mit dem Artikel fortfahren, wird vorausgesetzt, dass Sie bereits ein grundlegendes Verständnis von SQS und auch von Terraform haben.

Nachdem Sie eine SQS-Warteschlange erstellt haben, klicken Sie hier, wenn Sie lernen möchten, wie man ein Abonnement zwischen SQS und SNS erstellt, da dies nicht im Rahmen dieses Artikels liegt.

In diesem Artikel werden wir eine Standard-Warteschlange erstellen. Klicken Sie hier, wenn Sie mehr über die in Terraform für SQS verfügbaren Argumente und Eigenschaften wissen wollen. Sie können diese Eigenschaften verwenden, um die SQS-Warteschlange anzupassen.

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 den notwendigen Berechtigungen, um SQS create und delete Operationen durchzuführen. (Klicken Sie hier, um zu erfahren, wie Sie einen IAM-Benutzer mit ‚access_key‘ & ’secret_key‘ auf AWS erstellen, )

Was wir tun werden

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

Terraform-Konfigurationsdateien für die SQS-Queue schreiben

Lassen Sie uns eine Datei„main.tf“ erstellen, die die unten genannte Ressourcendefinition enthalten wird. Dies wird eine SQS in„region = eu-west-3“ erstellen, aber wenn Sie eine Queue in einer anderen Region erstellen wollen, können Sie den Wert ändern.

Sie finden den Code in meinem Github Repo unter dem folgenden 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
}

Hier,

  • name: Wert wird in variables.tf definiert.
  • queue_url: Id wird von my_first_sqs queue
    abgerufen.

Holen Sie sich Ihren AWS IAM-Benutzerzugang und den geheimen Schlüssel und fügen Sie diese in die Datei „terraform.tfvars“ ein. Dieser IAM-Benutzer muss über ausreichende Berechtigungen auf SQS verfügen.

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

Legen Sie nun eine Datei„variables.tf“ an, um Variablen zu definieren, damit wir in unserer Datei„main.tf“ nichts hart codieren müssen. Wenn Sie einen anderen Namen für die Warteschlange verwenden möchten, können Sie die Variable„sqs_name“ ändern.

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

Hier,

  • sqs_name: Wir haben den Standardwert als my-first-sqs angegeben. Sie können dies ändern und der zu erstellenden Warteschlange einen anderen Namen zuweisen.

Erstellen Sie eine SQS-Warteschlange mit Hilfe der Terraform Konfigurationsdateien.

Wenn Sie main.tf, terraform.tfvars und variables.tf haben,sind Sie bereit, eine SQS-Queue mit Terraform zu erstellen.

Mit dem folgenden Befehl wird zunächst ein Arbeitsverzeichnis initialisiert, das die Terraform-Konfigurationsdateien enthält.

terraform init

Terraform-Init

Der nächste Befehl ist folgender, um einen Ausführungsplan zu erstellen. Hier erfahren Sie, was alles geändert werden soll.

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 SQS-Warteschlange in Ihrem AWS-Konto unter der angegebenen Region zusammen mit der dazugehörigen Richtlinie erstellt.

terraform apply

terraform anwenden

Wechseln wir zur AWS SQS-Konsole, um die soeben erstellte SQS zu überprüfen.

terraform anwenden

Löschen Sie die erstellte SQS-Warteschlange mit Terraform.

Wenn Sie die erstellte SQS-Queue 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 SQS-Warteschlange, nachdem Sie die Löschung bestätigt haben. Sobald die Warteschlange gelöscht ist, kann sie nicht wiederhergestellt werden, seien Sie also sehr vorsichtig bei der Durchführung des Löschvorgangs.

terraform destroy

Terraform zerstören

Fazit

In diesem Artikel haben wir eine SQS-Warteschlange mit der dazugehörigen Richtlinie erstellt. Wir haben unsere Variablen in einer separaten Datei „variables.tf“ gespeichert, damit wir in unserer main .tf nichts hart codieren müssen . Wir haben gesehen, wie einfach die Ressource mit einem einzigen Befehl in Terraform gelöscht werden kann.

Das könnte dich auch interessieren …