Amazon-SQS-Beispiele unter Verwendung von AWS CLI - AWS Command Line Interface

Amazon-SQS-Beispiele unter Verwendung von AWS CLI

Die folgenden Codebeispiele zeigen, wie Sie Aktionen durchführen und gängige Szenarien implementieren, indem Sie das AWS Command Line Interface mit Amazon SQS nutzen.

Aktionen sind Codeauszüge aus größeren Programmen und müssen im Kontext ausgeführt werden. Während Aktionen Ihnen zeigen, wie Sie einzelne Service-Funktionen aufrufen, können Sie Aktionen im Kontext der zugehörigen Szenarien anzeigen.

Jedes Beispiel enthält einen Link zum vollständigen Quellcode, wo Sie Anleitungen zum Einrichten und Ausführen des Codes im Kontext finden.

Themen

Aktionen

Das folgende Codebeispiel zeigt, wie add-permission verwendet wird.

AWS CLI

So fügen Sie einer Warteschlange ein Thema hinzu

In diesem Beispiel wird das angegebene AWS-Konto aktiviert, um Nachrichten an die angegebene Warteschlange zu senden.

Befehl:

aws sqs add-permission --queue-url https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue --label SendMessagesFromMyQueue --aws-account-ids 12345EXAMPLE --actions SendMessage

Ausgabe:

None.
  • API-Details finden Sie unter AddPermission in der AWS CLI-Befehlsreferenz.

Das folgende Codebeispiel zeigt, wie cancel-message-move-task verwendet wird.

AWS CLI

So brechen Sie eine Aufgabe zum Verschieben von Nachrichten ab

Im folgenden Beispiel für cancel-message-move-task wird die angegebene Aufgabe zum Verschieben von Nachrichten abgebrochen.

aws sqs cancel-message-move-task \ --task-handle AQEB6nR4...HzlvZQ==

Ausgabe:

{ "ApproximateNumberOfMessagesMoved": 102 }

Weitere Informationen finden Sie unter Amazon SQS API-Berechtigungen: Referenztabelle für Aktionen und Ressourcen im Entwicklerhandbuch.

Das folgende Codebeispiel zeigt, wie change-message-visibility-batch verwendet wird.

AWS CLI

So ändern Sie die Timeout-Sichtbarkeit mehrerer Nachrichten als Batch

In diesem Beispiel wird die Timeout-Sichtbarkeit der beiden angegebenen Nachrichten auf 10 Stunden (10 Stunden x 60 Minuten x 60 Sekunden) geändert.

Befehl:

aws sqs change-message-visibility-batch --queue-url https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue --entries file://change-message-visibility-batch.json

Eingabedatei (change-message-visibility-batch.json):

[ { "Id": "FirstMessage", "ReceiptHandle": "AQEBhz2q...Jf3kaw==", "VisibilityTimeout": 36000 }, { "Id": "SecondMessage", "ReceiptHandle": "AQEBkTUH...HifSnw==", "VisibilityTimeout": 36000 } ]

Ausgabe:

{ "Successful": [ { "Id": "SecondMessage" }, { "Id": "FirstMessage" } ] }

Das folgende Codebeispiel zeigt, wie change-message-visibility verwendet wird.

AWS CLI

So ändern Sie die Timeout-Sichtbarkeit einer Nachricht

In diesem Beispiel wird die Timeout-Sichtbarkeit der angegebenen Nachricht auf 10 Stunden (10 Stunden x 60 Minuten x 60 Sekunden) geändert.

Befehl:

aws sqs change-message-visibility --queue-url https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue --receipt-handle AQEBTpyI...t6HyQg== --visibility-timeout 36000

Ausgabe:

None.

Das folgende Codebeispiel zeigt, wie create-queue verwendet wird.

AWS CLI

So erstellen Sie eine Warteschlange

In diesem Beispiel wird eine Warteschlange mit dem angegebenen Namen erstellt, die Aufbewahrungsdauer für Nachrichten auf 3 Tage (3 Tage * 24 Stunden * 60 Minuten * 60 Sekunden) festgelegt, und die Warteschlange für unzustellbare Nachrichten der Warteschlange wird auf die angegebene Warteschlange mit einer maximalen Empfangszahl von 1 000 Nachrichten festgelegt.

Befehl:

aws sqs create-queue --queue-name MyQueue --attributes file://create-queue.json

Eingabedatei (create-queue.json):

{ "RedrivePolicy": "{\"deadLetterTargetArn\":\"arn:aws:sqs:us-east-1:80398EXAMPLE:MyDeadLetterQueue\",\"maxReceiveCount\":\"1000\"}", "MessageRetentionPeriod": "259200" }

Ausgabe:

{ "QueueUrl": "https://queue.amazonaws.com/80398EXAMPLE/MyQueue" }
  • API-Details finden Sie unter CreateQueue in der AWS CLI-Befehlsreferenz.

Das folgende Codebeispiel zeigt, wie delete-message-batch verwendet wird.

AWS CLI

So löschen Sie mehrere Nachrichten als Batch

In diesem Beispiel werden die angegebenen Nachrichten gelöscht.

Befehl:

aws sqs delete-message-batch --queue-url https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue --entries file://delete-message-batch.json

Eingabedatei (delete-message-batch.json):

[ { "Id": "FirstMessage", "ReceiptHandle": "AQEB1mgl...Z4GuLw==" }, { "Id": "SecondMessage", "ReceiptHandle": "AQEBLsYM...VQubAA==" } ]

Ausgabe:

{ "Successful": [ { "Id": "FirstMessage" }, { "Id": "SecondMessage" } ] }

Das folgende Codebeispiel zeigt, wie delete-message verwendet wird.

AWS CLI

So löschen Sie eine Nachricht

In diesem Beispiel wird die angegebene Nachricht gelöscht.

Befehl:

aws sqs delete-message --queue-url https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue --receipt-handle AQEBRXTo...q2doVA==

Ausgabe:

None.
  • API-Details finden Sie unter DeleteMessage in der AWS CLI-Befehlsreferenz.

Das folgende Codebeispiel zeigt, wie delete-queue verwendet wird.

AWS CLI

So löschen Sie eine Warteschlange

In diesem Beispiel wird die angegebene Warteschlange gelöscht.

Befehl:

aws sqs delete-queue --queue-url https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyNewerQueue

Ausgabe:

None.
  • API-Details finden Sie unter DeleteQueue in der AWS CLI-Befehlsreferenz.

Das folgende Codebeispiel zeigt, wie get-queue-attributes verwendet wird.

AWS CLI

So rufen Sie die Attribute einer Warteschlange ab

In diesem Beispiel werden alle Attribute der angegebenen Warteschlange abgerufen.

Befehl:

aws sqs get-queue-attributes --queue-url https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue --attribute-names All

Ausgabe:

{ "Attributes": { "ApproximateNumberOfMessagesNotVisible": "0", "RedrivePolicy": "{\"deadLetterTargetArn\":\"arn:aws:sqs:us-east-1:80398EXAMPLE:MyDeadLetterQueue\",\"maxReceiveCount\":1000}", "MessageRetentionPeriod": "345600", "ApproximateNumberOfMessagesDelayed": "0", "MaximumMessageSize": "262144", "CreatedTimestamp": "1442426968", "ApproximateNumberOfMessages": "0", "ReceiveMessageWaitTimeSeconds": "0", "DelaySeconds": "0", "VisibilityTimeout": "30", "LastModifiedTimestamp": "1442426968", "QueueArn": "arn:aws:sqs:us-east-1:80398EXAMPLE:MyNewQueue" } }

In diesem Beispiel werden ausschließlich die maximalen Nachrichtengrößen- und Sichtbarkeits-Timeout-Attribute der angegebenen Warteschlange abgerufen.

Befehl:

aws sqs get-queue-attributes --queue-url https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyNewQueue --attribute-names MaximumMessageSize VisibilityTimeout

Ausgabe:

{ "Attributes": { "VisibilityTimeout": "30", "MaximumMessageSize": "262144" } }

Das folgende Codebeispiel zeigt, wie get-queue-url verwendet wird.

AWS CLI

So rufen Sie eine Warteschlangen-URL ab

In diesem Beispiel wird die URL der angegebenen Warteschlange abgerufen.

Befehl:

aws sqs get-queue-url --queue-name MyQueue

Ausgabe:

{ "QueueUrl": "https://queue.amazonaws.com/80398EXAMPLE/MyQueue" }
  • API-Details finden Sie unter GetQueueUrl in der AWS CLI-Befehlsreferenz.

Das folgende Codebeispiel zeigt, wie list-dead-letter-source-queues verwendet wird.

AWS CLI

So listen Sie Quellwarteschlangen für unzustellbare Nachrichten auf

In diesem Beispiel werden die Warteschlangen aufgeführt, die der angegebenen Quellwarteschlange für unzustellbare Nachrichten zugeordnet sind.

Befehl:

aws sqs list-dead-letter-source-queues --queue-url https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyDeadLetterQueue

Ausgabe:

{ "queueUrls": [ "https://queue.amazonaws.com/80398EXAMPLE/MyQueue", "https://queue.amazonaws.com/80398EXAMPLE/MyOtherQueue" ] }

Das folgende Codebeispiel zeigt, wie list-message-move-tasks verwendet wird.

AWS CLI

So listen Sie die Aufgaben zum Verschieben von Nachrichten auf

Im folgenden Beispiel für list-message-move-tasks werden die 2 letzten Aufgaben zum Verschieben von Nachrichten in der angegebenen Warteschlange aufgelistet.

aws sqs list-message-move-tasks \ --source-arn arn:aws:sqs:us-west-2:80398EXAMPLE:MyQueue \ --max-results 2

Ausgabe:

{ "Results": [ { "TaskHandle": "AQEB6nR4...HzlvZQ==", "Status": "RUNNING", "SourceArn": "arn:aws:sqs:us-west-2:80398EXAMPLE:MyQueue1", "DestinationArn": "arn:aws:sqs:us-west-2:80398EXAMPLE:MyQueue2", "MaxNumberOfMessagesPerSecond": 50, "ApproximateNumberOfMessagesMoved": 203, "ApproximateNumberOfMessagesToMove": 30, "StartedTimestamp": 1442428276921 }, { "Status": "COMPLETED", "SourceArn": "arn:aws:sqs:us-west-2:80398EXAMPLE:MyQueue1", "DestinationArn": "arn:aws:sqs:us-west-2:80398EXAMPLE:MyQueue2", "ApproximateNumberOfMessagesMoved": 29, "ApproximateNumberOfMessagesToMove": 0, "StartedTimestamp": 1342428272093 } ] }

Weitere Informationen finden Sie unter Amazon SQS API-Berechtigungen: Referenztabelle für Aktionen und Ressourcen im Entwicklerhandbuch.

Das folgende Codebeispiel zeigt, wie list-queue-tags verwendet wird.

AWS CLI

So listen Sie alle Kostenzuweisungs-Tags für eine Warteschlange auf

Im folgenden Beispiel für list-queue-tags werden alle Kostenzuweisungs-Tags angezeigt, die der angegebenen Warteschlange zugeordnet sind.

aws sqs list-queue-tags \ --queue-url https://sqs.us-west-2.amazonaws.com/123456789012/MyQueue

Ausgabe:

{ "Tags": { "Team": "Alpha" } }

Weitere Informationen finden Sie unter Auflisten von Kostenzuteilungs-Tags im Entwicklerhandbuch zu Amazon Simple Queue Service.

  • API-Details finden Sie unter ListQueueTags in der AWS CLI-Befehlsreferenz.

Das folgende Codebeispiel zeigt, wie list-queues verwendet wird.

AWS CLI

So listen Sie Warteschlangen auf

In diesem Beispiel werden alle Warteschlangen aufgelistet.

Befehl:

aws sqs list-queues

Ausgabe:

{ "QueueUrls": [ "https://queue.amazonaws.com/80398EXAMPLE/MyDeadLetterQueue", "https://queue.amazonaws.com/80398EXAMPLE/MyQueue", "https://queue.amazonaws.com/80398EXAMPLE/MyOtherQueue", "https://queue.amazonaws.com/80398EXAMPLE/TestQueue1", "https://queue.amazonaws.com/80398EXAMPLE/TestQueue2" ] }

In diesem Beispiel werden nur Warteschlangen aufgelistet, die mit „My“ beginnen.

Befehl:

aws sqs list-queues --queue-name-prefix My

Ausgabe:

{ "QueueUrls": [ "https://queue.amazonaws.com/80398EXAMPLE/MyDeadLetterQueue", "https://queue.amazonaws.com/80398EXAMPLE/MyQueue", "https://queue.amazonaws.com/80398EXAMPLE/MyOtherQueue" ] }
  • API-Details finden Sie unter ListQueues in der AWS CLI-Befehlsreferenz.

Das folgende Codebeispiel zeigt, wie purge-queue verwendet wird.

AWS CLI

So bereinigen Sie eine Warteschlange

In diesem Beispiel werden alle Nachrichten in der angegebenen Warteschlange gelöscht.

Befehl:

aws sqs purge-queue --queue-url https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyNewQueue

Ausgabe:

None.
  • API-Details finden Sie unter PurgeQueue in der AWS CLI-Befehlsreferenz.

Das folgende Codebeispiel zeigt, wie receive-message verwendet wird.

AWS CLI

So empfangen Sie eine Nachricht

In diesem Beispiel werden bis zu 10 verfügbare Nachrichten empfangen und alle verfügbaren Attribute zurückgegeben.

Befehl:

aws sqs receive-message --queue-url https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue --attribute-names All --message-attribute-names All --max-number-of-messages 10

Ausgabe:

{ "Messages": [ { "Body": "My first message.", "ReceiptHandle": "AQEBzbVv...fqNzFw==", "MD5OfBody": "1000f835...a35411fa", "MD5OfMessageAttributes": "9424c491...26bc3ae7", "MessageId": "d6790f8d-d575-4f01-bc51-40122EXAMPLE", "Attributes": { "ApproximateFirstReceiveTimestamp": "1442428276921", "SenderId": "AIDAIAZKMSNQ7TEXAMPLE", "ApproximateReceiveCount": "5", "SentTimestamp": "1442428276921" }, "MessageAttributes": { "PostalCode": { "DataType": "String", "StringValue": "ABC123" }, "City": { "DataType": "String", "StringValue": "Any City" } } } ] }

In diesem Beispiel wird die nächste verfügbare Nachricht empfangen und nur die Attribute SenderId und SentTimestamp sowie das Nachrichtenattribut PostalCode zurückgegeben.

Befehl:

aws sqs receive-message --queue-url https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue --attribute-names SenderId SentTimestamp --message-attribute-names PostalCode

Ausgabe:

{ "Messages": [ { "Body": "My first message.", "ReceiptHandle": "AQEB6nR4...HzlvZQ==", "MD5OfBody": "1000f835...a35411fa", "MD5OfMessageAttributes": "b8e89563...e088e74f", "MessageId": "d6790f8d-d575-4f01-bc51-40122EXAMPLE", "Attributes": { "SenderId": "AIDAIAZKMSNQ7TEXAMPLE", "SentTimestamp": "1442428276921" }, "MessageAttributes": { "PostalCode": { "DataType": "String", "StringValue": "ABC123" } } } ] }
  • API-Details finden Sie unter ReceiveMessage in der AWS CLI-Befehlsreferenz.

Das folgende Codebeispiel zeigt, wie remove-permission verwendet wird.

AWS CLI

So entfernen Sie eine Berechtigung

In diesem Beispiel wird die Berechtigung mit dem angegebenen Label aus der angegebenen Warteschlange entfernt.

Befehl:

aws sqs remove-permission --queue-url https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue --label SendMessagesFromMyQueue

Ausgabe:

None.

Das folgende Codebeispiel zeigt, wie send-message-batch verwendet wird.

AWS CLI

So senden Sie mehrere Nachrichten als Batch

In diesem Beispiel werden 2 Nachrichten mit den angegebenen Nachrichtentexten, Verzögerungszeiten und Nachrichtenattributen an die angegebene Warteschlange gesendet.

Befehl:

aws sqs send-message-batch --queue-url https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue --entries file://send-message-batch.json

Eingabedatei (send-message-batch.json):

[ { "Id": "FuelReport-0001-2015-09-16T140731Z", "MessageBody": "Fuel report for account 0001 on 2015-09-16 at 02:07:31 PM.", "DelaySeconds": 10, "MessageAttributes": { "SellerName": { "DataType": "String", "StringValue": "Example Store" }, "City": { "DataType": "String", "StringValue": "Any City" }, "Region": { "DataType": "String", "StringValue": "WA" }, "PostalCode": { "DataType": "String", "StringValue": "99065" }, "PricePerGallon": { "DataType": "Number", "StringValue": "1.99" } } }, { "Id": "FuelReport-0002-2015-09-16T140930Z", "MessageBody": "Fuel report for account 0002 on 2015-09-16 at 02:09:30 PM.", "DelaySeconds": 10, "MessageAttributes": { "SellerName": { "DataType": "String", "StringValue": "Example Fuels" }, "City": { "DataType": "String", "StringValue": "North Town" }, "Region": { "DataType": "String", "StringValue": "WA" }, "PostalCode": { "DataType": "String", "StringValue": "99123" }, "PricePerGallon": { "DataType": "Number", "StringValue": "1.87" } } } ]

Ausgabe:

{ "Successful": [ { "MD5OfMessageBody": "203c4a38...7943237e", "MD5OfMessageAttributes": "10809b55...baf283ef", "Id": "FuelReport-0001-2015-09-16T140731Z", "MessageId": "d175070c-d6b8-4101-861d-adeb3EXAMPLE" }, { "MD5OfMessageBody": "2cf0159a...c1980595", "MD5OfMessageAttributes": "55623928...ae354a25", "Id": "FuelReport-0002-2015-09-16T140930Z", "MessageId": "f9b7d55d-0570-413e-b9c5-a9264EXAMPLE" } ] }

Das folgende Codebeispiel zeigt, wie send-message verwendet wird.

AWS CLI

So senden Sie eine Nachricht

In diesem Beispiel wird eine Nachricht mit dem angegebenen Nachrichtentext, der angegebenen Verzögerungszeit und Nachrichtenattributen an die angegebene Warteschlange gesendet.

Befehl:

aws sqs send-message --queue-url https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue --message-body "Information about the largest city in Any Region." --delay-seconds 10 --message-attributes file://send-message.json

Eingabedatei (send-message.json):

{ "City": { "DataType": "String", "StringValue": "Any City" }, "Greeting": { "DataType": "Binary", "BinaryValue": "Hello, World!" }, "Population": { "DataType": "Number", "StringValue": "1250800" } }

Ausgabe:

{ "MD5OfMessageBody": "51b0a325...39163aa0", "MD5OfMessageAttributes": "00484c68...59e48f06", "MessageId": "da68f62c-0c07-4bee-bf5f-7e856EXAMPLE" }
  • API-Details finden Sie unter SendMessage in der AWS CLI-Befehlsreferenz.

Das folgende Codebeispiel zeigt, wie set-queue-attributes verwendet wird.

AWS CLI

So legen Sie Warteschlangenattribute fest

In diesem Beispiel wird für die angegebene Warteschlange eine Zustellungsverzögerung von 10 Sekunden, eine maximale Nachrichtengröße von 128 KB (128 KB x 1 024 Byte), eine Aufbewahrungszeit für Nachrichten von 3 Tagen (3 Tage x 24 Stunden x 60 Minuten x 60 Sekunden), eine Wartezeit für den Empfang von Nachrichten von 20 Sekunden, und ein standardmäßiges Sichtbarkeits-Timeout von 60 Sekunden festgelegt. In diesem Beispiel wird der angegebenen Warteschlange für unzustellbare Nachrichten außerdem eine maximale Empfangszahl von 1 000 Nachrichten zugewiesen.

Befehl:

aws sqs set-queue-attributes --queue-url https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyNewQueue --attributes file://set-queue-attributes.json

Eingabedatei (set-queue-attributes.json):

{ "DelaySeconds": "10", "MaximumMessageSize": "131072", "MessageRetentionPeriod": "259200", "ReceiveMessageWaitTimeSeconds": "20", "RedrivePolicy": "{\"deadLetterTargetArn\":\"arn:aws:sqs:us-east-1:80398EXAMPLE:MyDeadLetterQueue\",\"maxReceiveCount\":\"1000\"}", "VisibilityTimeout": "60" }

Ausgabe:

None.

Das folgende Codebeispiel zeigt, wie start-message-move-task verwendet wird.

AWS CLI

Beispiel 1: *So starten Sie eine Aufgabe zum Verschieben von Nachrichten*

Im folgenden Beispiel für start-message-move-task wird eine Aufgabe zum Verschieben von Nachrichten gestartet, um Nachrichten aus der angegebenen Warteschlange für unzustellbare Nachrichten in die Quellwarteschlange weiterzuleiten.

aws sqs start-message-move-task \ --source-arn arn:aws:sqs:us-west-2:80398EXAMPLE:MyQueue

Ausgabe:

{ "TaskHandle": "AQEB6nR4...HzlvZQ==" }

Weitere Informationen finden Sie unter Titel des Themas im Name Ihres Handbuchs.

Beispiel 2: *So starten Sie eine Aufgabe zum Verschieben von Nachrichten mit einer maximalen Rate*

Im folgenden Beispiel für start-message-move-task wird eine Aufgabe zum Verschieben von Nachrichten gestartet, um Nachrichten mit einer maximalen Rate von 50 Nachrichten pro Sekunde aus der angegebenen Warteschlange für unzustellbare Nachrichten an die angegebene Zielwarteschlange weiterzuleiten.

aws sqs start-message-move-task \ --source-arn arn:aws:sqs:us-west-2:80398EXAMPLE:MyQueue1 \ --destination-arn arn:aws:sqs:us-west-2:80398EXAMPLE:MyQueue2 \ --max-number-of-messages-per-second 50

Ausgabe:

{ "TaskHandle": "AQEB6nR4...HzlvZQ==" }

Weitere Informationen finden Sie unter Amazon SQS API-Berechtigungen: Referenztabelle für Aktionen und Ressourcen im Entwicklerhandbuch.

Das folgende Codebeispiel zeigt, wie tag-queue verwendet wird.

AWS CLI

So fügen Sie einer Warteschlange Tags für die Kostenzuweisung hinzu

Im folgenden Beispiel für tag-queue wird der angegebenen Amazon SQS-Warteschlange ein Kostenzuweisungs-Tag hinzugefügt.

aws sqs tag-queue \ --queue-url https://sqs.us-west-2.amazonaws.com/123456789012/MyQueue \ --tags Priority=Highest

Mit diesem Befehl wird keine Ausgabe zurückgegeben.

Weitere Informationen finden Sie unter Hinzufügen von Kostenzuteilungs-Tags im Entwicklerhandbuch zu Amazon Simple Queue Service.

  • API-Details finden Sie unter TagQueue in der AWS CLI-Befehlsreferenz.

Das folgende Codebeispiel zeigt, wie untag-queue verwendet wird.

AWS CLI

So entfernen Sie Kostenzuweisungs-Tags aus einer Warteschlange

Im folgenden Beispiel für untag-queue wird ein Kostenzuweisungs-Tag aus der angegebenen Amazon SQS-Warteschlange entfernt.

aws sqs untag-queue \ --queue-url https://sqs.us-west-2.amazonaws.com/123456789012/MyQueue \ --tag-keys "Priority"

Mit diesem Befehl wird keine Ausgabe zurückgegeben.

Weitere Informationen finden Sie unter Hinzufügen von Kostenzuteilungs-Tags im Entwicklerhandbuch zu Amazon Simple Queue Service.

  • API-Details finden Sie unter UntagQueue in der AWS CLI-Befehlsreferenz.