This documentation is for Version 1 of the Amazon CLI only. For documentation related to Version 2 of the Amazon CLI, see the Version 2 User Guide.
Amazon SQS examples using Amazon CLI
The following code examples show you how to perform actions and implement common scenarios by using the Amazon Command Line Interface with Amazon SQS.
Actions are code excerpts from larger programs and must be run in context. While actions show you how to call individual service functions, you can see actions in context in their related scenarios.
Each example includes a link to the complete source code, where you can find instructions on how to set up and run the code in context.
Topics
Actions
The following code example shows how to use add-permission.
- Amazon CLI
-
To add a permission to a queue
This example enables the specified Amazon account to send messages to the specified queue.
Command:
aws sqs add-permission --queue-urlhttps://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue--labelSendMessagesFromMyQueue--aws-account-ids12345EXAMPLE--actionsSendMessageOutput:
None.-
For API details, see AddPermission
in Amazon CLI Command Reference.
-
The following code example shows how to use cancel-message-move-task.
- Amazon CLI
-
To cancel a message move task
The following
cancel-message-move-taskexample cancels the specified message move task.aws sqs cancel-message-move-task \ --task-handleAQEB6nR4...HzlvZQ==Output:
{ "ApproximateNumberOfMessagesMoved": 102 }For more information, see Amazon SQS API permissions: Actions and resource reference
in the Developer Guide. -
For API details, see CancelMessageMoveTask
in Amazon CLI Command Reference.
-
The following code example shows how to use change-message-visibility-batch.
- Amazon CLI
-
To change multiple messages' timeout visibilities as a batch
This example changes the 2 specified messages' timeout visibilities to 10 hours (10 hours * 60 minutes * 60 seconds).
Command:
aws sqs change-message-visibility-batch --queue-urlhttps://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue--entriesfile://change-message-visibility-batch.jsonInput file (change-message-visibility-batch.json):
[ { "Id": "FirstMessage", "ReceiptHandle": "AQEBhz2q...Jf3kaw==", "VisibilityTimeout": 36000 }, { "Id": "SecondMessage", "ReceiptHandle": "AQEBkTUH...HifSnw==", "VisibilityTimeout": 36000 } ]Output:
{ "Successful": [ { "Id": "SecondMessage" }, { "Id": "FirstMessage" } ] }-
For API details, see ChangeMessageVisibilityBatch
in Amazon CLI Command Reference.
-
The following code example shows how to use change-message-visibility.
- Amazon CLI
-
To change a message's timeout visibility
This example changes the specified message's timeout visibility to 10 hours (10 hours * 60 minutes * 60 seconds).
Command:
aws sqs change-message-visibility --queue-urlhttps://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue--receipt-handleAQEBTpyI...t6HyQg==--visibility-timeout36000Output:
None.-
For API details, see ChangeMessageVisibility
in Amazon CLI Command Reference.
-
The following code example shows how to use create-queue.
- Amazon CLI
-
To create a queue
This example creates a queue with the specified name, sets the message retention period to 3 days (3 days * 24 hours * 60 minutes * 60 seconds), and sets the queue's dead letter queue to the specified queue with a maximum receive count of 1,000 messages.
Command:
aws sqs create-queue --queue-nameMyQueue--attributesfile://create-queue.jsonInput file (create-queue.json):
{ "RedrivePolicy": "{\"deadLetterTargetArn\":\"arn:aws:sqs:us-east-1:80398EXAMPLE:MyDeadLetterQueue\",\"maxReceiveCount\":\"1000\"}", "MessageRetentionPeriod": "259200" }Output:
{ "QueueUrl": "https://queue.amazonaws.com/80398EXAMPLE/MyQueue" }-
For API details, see CreateQueue
in Amazon CLI Command Reference.
-
The following code example shows how to use delete-message-batch.
- Amazon CLI
-
To delete multiple messages as a batch
This example deletes the specified messages.
Command:
aws sqs delete-message-batch --queue-urlhttps://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue--entriesfile://delete-message-batch.jsonInput file (delete-message-batch.json):
[ { "Id": "FirstMessage", "ReceiptHandle": "AQEB1mgl...Z4GuLw==" }, { "Id": "SecondMessage", "ReceiptHandle": "AQEBLsYM...VQubAA==" } ]Output:
{ "Successful": [ { "Id": "FirstMessage" }, { "Id": "SecondMessage" } ] }-
For API details, see DeleteMessageBatch
in Amazon CLI Command Reference.
-
The following code example shows how to use delete-message.
- Amazon CLI
-
To delete a message
This example deletes the specified message.
Command:
aws sqs delete-message --queue-urlhttps://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue--receipt-handleAQEBRXTo...q2doVA==Output:
None.-
For API details, see DeleteMessage
in Amazon CLI Command Reference.
-
The following code example shows how to use delete-queue.
- Amazon CLI
-
To delete a queue
This example deletes the specified queue.
Command:
aws sqs delete-queue --queue-urlhttps://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyNewerQueueOutput:
None.-
For API details, see DeleteQueue
in Amazon CLI Command Reference.
-
The following code example shows how to use get-queue-attributes.
- Amazon CLI
-
To get a queue's attributes
This example gets all of the specified queue's attributes.
Command:
aws sqs get-queue-attributes --queue-urlhttps://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue--attribute-namesAllOutput:
{ "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" } }This example gets only the specified queue's maximum message size and visibility timeout attributes.
Command:
aws sqs get-queue-attributes --queue-urlhttps://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyNewQueue--attribute-namesMaximumMessageSizeVisibilityTimeoutOutput:
{ "Attributes": { "VisibilityTimeout": "30", "MaximumMessageSize": "262144" } }-
For API details, see GetQueueAttributes
in Amazon CLI Command Reference.
-
The following code example shows how to use get-queue-url.
- Amazon CLI
-
To get a queue URL
This example gets the specified queue's URL.
Command:
aws sqs get-queue-url --queue-nameMyQueueOutput:
{ "QueueUrl": "https://queue.amazonaws.com/80398EXAMPLE/MyQueue" }-
For API details, see GetQueueUrl
in Amazon CLI Command Reference.
-
The following code example shows how to use list-dead-letter-source-queues.
- Amazon CLI
-
To list dead letter source queues
This example lists the queues that are associated with the specified dead letter source queue.
Command:
aws sqs list-dead-letter-source-queues --queue-urlhttps://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyDeadLetterQueueOutput:
{ "queueUrls": [ "https://queue.amazonaws.com/80398EXAMPLE/MyQueue", "https://queue.amazonaws.com/80398EXAMPLE/MyOtherQueue" ] }-
For API details, see ListDeadLetterSourceQueues
in Amazon CLI Command Reference.
-
The following code example shows how to use list-message-move-tasks.
- Amazon CLI
-
To list the message move tasks
The following
list-message-move-tasksexample lists the 2 most recent message move tasks in the specified queue.aws sqs list-message-move-tasks \ --source-arnarn:aws:sqs:us-west-2:80398EXAMPLE:MyQueue\ --max-results2Output:
{ "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 } ] }For more information, see Amazon SQS API permissions: Actions and resource reference
in the Developer Guide. -
For API details, see ListMessageMoveTasks
in Amazon CLI Command Reference.
-
The following code example shows how to use list-queue-tags.
- Amazon CLI
-
To list all cost allocation tags for a queue
The following
list-queue-tagsexample displays all of the cost allocation tags associated with the specified queue.aws sqs list-queue-tags \ --queue-urlhttps://sqs.us-west-2.amazonaws.com/123456789012/MyQueueOutput:
{ "Tags": { "Team": "Alpha" } }For more information, see Listing Cost Allocation Tags
in the Amazon Simple Queue Service Developer Guide. -
For API details, see ListQueueTags
in Amazon CLI Command Reference.
-
The following code example shows how to use list-queues.
- Amazon CLI
-
To list queues
This example lists all queues.
Command:
aws sqs list-queuesOutput:
{ "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" ] }This example lists only queues that start with "My".
Command:
aws sqs list-queues --queue-name-prefixMyOutput:
{ "QueueUrls": [ "https://queue.amazonaws.com/80398EXAMPLE/MyDeadLetterQueue", "https://queue.amazonaws.com/80398EXAMPLE/MyQueue", "https://queue.amazonaws.com/80398EXAMPLE/MyOtherQueue" ] }-
For API details, see ListQueues
in Amazon CLI Command Reference.
-
The following code example shows how to use purge-queue.
- Amazon CLI
-
To purge a queue
This example deletes all messages in the specified queue.
Command:
aws sqs purge-queue --queue-urlhttps://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyNewQueueOutput:
None.-
For API details, see PurgeQueue
in Amazon CLI Command Reference.
-
The following code example shows how to use receive-message.
- Amazon CLI
-
To receive a message
This example receives up to 10 available messages, returning all available attributes.
Command:
aws sqs receive-message --queue-urlhttps://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue--attribute-namesAll--message-attribute-namesAll--max-number-of-messages10Output:
{ "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" } } } ] }This example receives the next available message, returning only the SenderId and SentTimestamp attributes as well as the PostalCode message attribute.
Command:
aws sqs receive-message --queue-urlhttps://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue--attribute-namesSenderIdSentTimestamp--message-attribute-namesPostalCodeOutput:
{ "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" } } } ] }-
For API details, see ReceiveMessage
in Amazon CLI Command Reference.
-
The following code example shows how to use remove-permission.
- Amazon CLI
-
To remove a permission
This example removes the permission with the specified label from the specified queue.
Command:
aws sqs remove-permission --queue-urlhttps://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue--labelSendMessagesFromMyQueueOutput:
None.-
For API details, see RemovePermission
in Amazon CLI Command Reference.
-
The following code example shows how to use send-message-batch.
- Amazon CLI
-
To send multiple messages as a batch
This example sends 2 messages with the specified message bodies, delay periods, and message attributes, to the specified queue.
Command:
aws sqs send-message-batch --queue-urlhttps://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue--entriesfile://send-message-batch.jsonInput file (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" } } } ]Output:
{ "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" } ] }-
For API details, see SendMessageBatch
in Amazon CLI Command Reference.
-
The following code example shows how to use send-message.
- Amazon CLI
-
To send a message
This example sends a message with the specified message body, delay period, and message attributes, to the specified queue.
Command:
aws sqs send-message --queue-urlhttps://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue--message-body"Information about the largest city in Any Region."--delay-seconds10--message-attributesfile://send-message.jsonInput file (send-message.json):
{ "City": { "DataType": "String", "StringValue": "Any City" }, "Greeting": { "DataType": "Binary", "BinaryValue": "Hello, World!" }, "Population": { "DataType": "Number", "StringValue": "1250800" } }Output:
{ "MD5OfMessageBody": "51b0a325...39163aa0", "MD5OfMessageAttributes": "00484c68...59e48f06", "MessageId": "da68f62c-0c07-4bee-bf5f-7e856EXAMPLE" }-
For API details, see SendMessage
in Amazon CLI Command Reference.
-
The following code example shows how to use set-queue-attributes.
- Amazon CLI
-
To set queue attributes
This example sets the specified queue to a delivery delay of 10 seconds, a maximum message size of 128 KB (128 KB * 1,024 bytes), a message retention period of 3 days (3 days * 24 hours * 60 minutes * 60 seconds), a receive message wait time of 20 seconds, and a default visibility timeout of 60 seconds. This example also associates the specified dead letter queue with a maximum receive count of 1,000 messages.
Command:
aws sqs set-queue-attributes --queue-urlhttps://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyNewQueue--attributesfile://set-queue-attributes.jsonInput file (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" }Output:
None.-
For API details, see SetQueueAttributes
in Amazon CLI Command Reference.
-
The following code example shows how to use start-message-move-task.
- Amazon CLI
-
Example 1: *To start a message move task*
The following
start-message-move-taskexample starts a message move task to redrive messages from the specified dead-letter queue to the source queue.aws sqs start-message-move-task \ --source-arnarn:aws:sqs:us-west-2:80398EXAMPLE:MyQueueOutput:
{ "TaskHandle": "AQEB6nR4...HzlvZQ==" }For more information, see This is the topic title
in the Name of your guide. Example 2: *To start a message move task with a maximum rate*
The following
start-message-move-taskexample starts a message move task to redrive messages from the specified dead-letter queue to the specified destination queue at a maximum rate of 50 messages per second.aws sqs start-message-move-task \ --source-arnarn:aws:sqs:us-west-2:80398EXAMPLE:MyQueue1\ --destination-arnarn:aws:sqs:us-west-2:80398EXAMPLE:MyQueue2\ --max-number-of-messages-per-second50Output:
{ "TaskHandle": "AQEB6nR4...HzlvZQ==" }For more information, see Amazon SQS API permissions: Actions and resource reference
in the Developer Guide. -
For API details, see StartMessageMoveTask
in Amazon CLI Command Reference.
-
The following code example shows how to use tag-queue.
- Amazon CLI
-
To add cost allocation tags to a queue
The following
tag-queueexample adds a cost allocation tag to the specified Amazon SQS queue.aws sqs tag-queue \ --queue-urlhttps://sqs.us-west-2.amazonaws.com/123456789012/MyQueue\ --tagsPriority=HighestThis command produces no output.
For more information, see Adding Cost Allocation Tags
in the Amazon Simple Queue Service Developer Guide. -
For API details, see TagQueue
in Amazon CLI Command Reference.
-
The following code example shows how to use untag-queue.
- Amazon CLI
-
To remove cost allocation tags from a queue
The following
untag-queueexample removes a cost allocation tag from the specified Amazon SQS queue.aws sqs untag-queue \ --queue-urlhttps://sqs.us-west-2.amazonaws.com/123456789012/MyQueue\ --tag-keys"Priority"This command produces no output.
For more information, see Adding Cost Allocation Tags
in the Amazon Simple Queue Service Developer Guide. -
For API details, see UntagQueue
in Amazon CLI Command Reference.
-