GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So verwenden Sie Cloudformation zum Erstellen von SQS-Warteschlangen auf AWS

AWS Simple Queue Service (SQS) ist ein vollständig verwalteter Nachrichtenwarteschlangendienst, der es uns ermöglicht, Mikrodienste, serverlose Anwendungen und verteilte Systeme zu entkoppeln und zu skalieren. Mit SQS können wir Nachrichten zwischen Softwarekomponenten senden, speichern und empfangen, ohne sie zu verlieren. AWS SQS bietet zwei Arten von Nachrichtenwarteschlangen, Standardwarteschlangen und FIFO-Warteschlangen. Um mehr über SQS-Warteschlangen zu erfahren, suchen Sie nach „How to create an SQS Queue on AWS?“. Artikel.

AWS CloudFormation ermöglicht es uns, Programmiersprachen (yaml/json) oder eine einfache Textdatei zu verwenden, um alle für unsere Anwendungen erforderlichen Ressourcen zu modellieren und bereitzustellen. Dies gibt uns eine einzige Quelle der Wahrheit für unsere AWS-Ressourcen.

In diesem Artikel sehen wir die Schritte zum Erstellen einer Standard- und FIFO-Warteschlange mit Cloudformation Stack.

Voraussetzungen

  1. AWS-Konto (erstellen, falls Sie noch keins haben).
  2. Grundlegendes Verständnis von Cloudformation Stack.
  3. Grundlegendes Verständnis von SQS-Warteschlangen.

Was werden wir tun?

  1. Melden Sie sich bei AWS an.
  2. Erstellen Sie eine Standardwarteschlange mit Cloudformation Stack
  3. Erstellen Sie eine FIFO-Warteschlange mit Cloudformation Stack

Melden Sie sich bei AWS an

  1. Klicken Sie hier, um zur AWS-Anmeldeseite zu gelangen.

Wenn wir auf den obigen Link klicken, sehen wir eine Webseite wie folgt, auf der wir uns mit unseren Anmeldedaten anmelden müssen.

Sobald wir uns erfolgreich bei AWS angemeldet haben, sehen wir die Hauptkonsole mit allen aufgelisteten Diensten.

Erstellen Sie eine Standardwarteschlange mit Cloudformation Stack

Bevor wir mit der Erstellung einer Standardwarteschlange fortfahren, kopieren Sie den Code aus dem folgenden Block oder laden Sie die Vorlage hier herunter und speichern Sie sie auf Ihrem lokalen Computer. Diese Vorlage wird beim Erstellen eines Cloudformation Stacks benötigt.

---
AWSTemplateFormatVersion: '2010-09-09'
Description: This stack creates a Standard Queue
Parameters:
  DelaySeconds:
    Description: "The time in seconds that the delivery of all messages in the queue is delayed"
    Type: Number
    Default: '5'
  MaximumMessageSize:
    Type: Number
    Description: "The limit of how many bytes that a message can contain before Amazon SQS rejects it"
    Default: '262144'
  MessageRetentionPeriod:
    Description: "The number of seconds that Amazon SQS retains a message."
    Type: Number
    Default: '345600'
  ReceiveMessageWaitTimeSeconds:
    Description: "Specifies the duration, in seconds, that the ReceiveMessage action call waits until a message is in the queue in order to include it in the response"
    Type: Number
    Default: '0'
  UsedeadletterQueue:
    Description: "A dead-letter queue is a queue that other (source) queues can target for messages that can't be processed (consumed) successfully."
    Type: String
    AllowedValues:
    - 'true'
    - 'false'
    Default: 'false'
  VisibilityTimeout:
    Description: "This should be longer than the time it would take to process and delete a message"
    Type: Number
    Default: '5'
Mappings: {}
Conditions:
  CreateDeadLetterQueue:
    Fn::Equals:
    - Ref: UsedeadletterQueue
    - 'true'
Resources:
  SQSQueue:
    Type: AWS::SQS::Queue
    Properties:
      DelaySeconds:
        Ref: DelaySeconds
      MaximumMessageSize:
        Ref: MaximumMessageSize
      MessageRetentionPeriod:
        Ref: MessageRetentionPeriod
      ReceiveMessageWaitTimeSeconds:
        Ref: ReceiveMessageWaitTimeSeconds
      RedrivePolicy:
        Fn::If:
        - CreateDeadLetterQueue
        - deadLetterTargetArn:
            Fn::GetAtt:
            - MyDeadLetterQueue
            - Arn
          maxReceiveCount: 5
        - Ref: AWS::NoValue
      VisibilityTimeout:
        Ref: VisibilityTimeout
  MyDeadLetterQueue:
    Condition: CreateDeadLetterQueue
    Type: AWS::SQS::Queue
Outputs:
  QueueURL:
    Description: URL of the created SQS
    Value:
      Ref: SQSQueue
  QueueARN:
    Description: ARN of the created SQS
    Value:
      Fn::GetAtt:
      - SQSQueue
      - Arn
  QueueName:
    Description: Name of the created SQS
    Value:
      Fn::GetAtt:
      - SQSQueue
      - QueueName
  DeadLetterQueueURL:
    Condition: CreateDeadLetterQueue
    Description: URL of the dead letter queue
    Value:
      Ref: MyDeadLetterQueue
  DeadLetterQueueARN:
    Condition: CreateDeadLetterQueue
    Description: ARN of the dead letter queue
    Value:
      Fn::GetAtt:
      - MyDeadLetterQueue
      - Arn

Um eine Standardwarteschlange mit dem Cloudformation-Stack zu erstellen, klicken Sie in der oberen Menüleiste auf „Dienste“ und suchen Sie nach „Cloudformation“.

Klicken Sie auf dem Haupt-Dashboard für Cloudformation auf „Create Stack“, um einen Stack zu erstellen.

Um die Vorlage von Ihrem lokalen Computer hochzuladen, klicken Sie auf das Optionsfeld „Vorlagendatei hochladen“ und dann auf „Weiter“.

Geben Sie einen Namen für den zu erstellenden Stapel an und füllen Sie die erforderlichen Details aus oder fahren Sie mit den Standardwerten fort und klicken Sie auf "Weiter".

Geben Sie das Tag an, das bei seiner Erstellung auf den SQS angewendet werden kann, und klicken Sie auf "Weiter".

Scrollen Sie auf der Seite nach unten und klicken Sie auf die Schaltfläche "Stapel erstellen", um einen Stapel zu erstellen, der eine Standardwarteschlange erstellt.

Sie können den Status unter Ereignisse sehen. Sobald sich der Status des Stapels auf "CREATE_COMPLETE" ändert, bedeutet dies, dass die Warteschlange erstellt wurde.

Klicken Sie auf "Dienste" und suchen Sie nach "SQS", um zu sehen, ob die Warteschlange erstellt wurde oder nicht.

Auf dem Haupt-Dashboard des SQS können Sie sehen, dass die Warteschlange erstellt wurde und der Name der Warteschlange Cloudformation Stack name mit einer zufälligen Suffix-Zeichenfolge dazu ist, the Der Grund dafür ist, dass wir den Queue-Namen nicht im Stack angegeben haben.

Erstellen Sie eine FIFO-Warteschlange mit Cloudformation Stack

Bevor wir mit der Erstellung einer FIFO-Warteschlange fortfahren, kopieren Sie den Code aus dem folgenden Block oder laden Sie die Vorlage hier herunter und speichern Sie sie auf Ihrem lokalen System.

---
AWSTemplateFormatVersion: '2010-09-09'
Description: This stack creates a FIFO Queue
Parameters:
  ContentBasedDeduplication:
    Description: Specifie whether to enable content-based deduplication
    Type: String
    AllowedValues:
    - 'true'
    - 'false'
    Default: 'true'
  QueueName:
    Description: This stack will append .fifo to the end of the Queue name.
    Type: String
  DelaySeconds:
    Description: "The time in seconds that the delivery of all messages in the queue"
    Type: Number
    Default: '5'
  MaximumMessageSize:
    Type: Number
    Description: "The limit of how many bytes that a message can contain before Amazon"
    Default: '262144'
  MessageRetentionPeriod:
    Description: "The number of seconds that Amazon SQS retains a message."
    Type: Number
    Default: '345600'
  ReceiveMessageWaitTimeSeconds:
    Description: "Specifies the duration, in seconds, that the ReceiveMessage action
      call waits until a message is in the queue in order to include it in the response"
    Type: Number
    Default: '0'
  UsedeadletterQueue:
    Description: "A dead-letter queue is a queue that other (source) queues can target
      for messages that can't be processed (consumed) successfully."
    Type: String
    AllowedValues:
    - 'true'
    - 'false'
    Default: 'false'
  VisibilityTimeout:
    Description: "This should be longer than the time it would take to process and
      delete a message"
    Type: Number
    Default: '5'
Mappings: {}
Conditions:
  CreateDeadLetterQueue:
    Fn::Equals:
    - Ref: UsedeadletterQueue
    - 'true'
Resources:
  SQSQueue:
    Type: AWS::SQS::Queue
    Properties:
      ContentBasedDeduplication:
        Ref: ContentBasedDeduplication
      FifoQueue: 'true'
      QueueName:
        Fn::Join:
        - ''
        - - Ref: QueueName
          - ".fifo"
      MaximumMessageSize:
        Ref: MaximumMessageSize
      MessageRetentionPeriod:
        Ref: MessageRetentionPeriod
      ReceiveMessageWaitTimeSeconds:
        Ref: ReceiveMessageWaitTimeSeconds
      RedrivePolicy:
        Fn::If:
        - CreateDeadLetterQueue
        - deadLetterTargetArn:
            Fn::GetAtt:
            - MyDeadLetterQueue
            - Arn
          maxReceiveCount: 5
        - Ref: AWS::NoValue
      VisibilityTimeout:
        Ref: VisibilityTimeout
  MyDeadLetterQueue:
    Condition: CreateDeadLetterQueue
    Type: AWS::SQS::Queue
    Properties:
      FifoQueue: 'true'
      QueueName:
        Fn::Join:
        - ''
        - - Ref: QueueName
          - Deadletter
          - ".fifo"
Outputs:
  QueueURL:
    Description: URL of the created SQS
    Value:
      Ref: SQSQueue
  QueueARN:
    Description: ARN of the created SQS
    Value:
      Fn::GetAtt:
      - SQSQueue
      - Arn
  QueueName:
    Description: Name of the created SQS
    Value:
      Fn::GetAtt:
      - SQSQueue
      - QueueName

Kehren Sie zum Haupt-Dashboard von Cloudformation zurück und befolgen Sie die gleichen Schritte , die wir zum Erstellen einer Standardwarteschlange befolgt haben.

Sobald der Stack erstellt wurde, können Sie sehen, dass die FIFO-Warteschlange einsatzbereit ist. Hier sehen Sie, dass die FIFO-Warteschlange keine zufällige Zeichenfolge enthält. Der Grund dafür ist, dass wir in der Cloudformation-Vorlage eine Option haben, mit der wir den Namen für die zu erstellende Warteschlange angeben können.

Wenn die Warteschlangen nicht mehr benötigt werden, können sie gelöscht werden, indem Sie den Cloudformation Stack aus dem Haupt-Dashboard löschen.

Schlussfolgerung

In diesem Artikel haben wir die Schritte zum Erstellen einer Standard- und FIFO-Warteschlange mit Cloudformation Stack gesehen.


Linux
  1. So verwenden Sie den mkdir-Befehl zum Erstellen oder Erstellen eines Linux-Verzeichnisses

  2. So erstellen und verwenden Sie benutzerdefinierte Fakten in Ansible

  3. Verwalten Sie AWS SQS-Warteschlangen mit aws-cli

  4. So erstellen Sie eine IAM-Rolle in AWS mit Terraform

  5. So verwenden Sie AWS CLI zum Verwalten von Amazon S3

So erstellen Sie ein VPC-Peering zwischen 2 VPCs auf AWS

So erstellen Sie einen S3-Bucket mit Python Boto3 auf AWS

So erstellen Sie ein SNS-Thema und einen Abonnenten auf AWS

So erstellen Sie eine DynamoDB-Tabelle in AWS

So erstellen Sie einen Kubernetes-Cluster mit AWS CLI

So erstellen und verwenden Sie eine Auslagerungsdatei unter Linux