本文档 AWS CLI 仅适用于版本 1。有关版本 2 的文档 AWS CLI,请参阅版本 2 用户指南。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用亚马逊的SQS示例 AWS CLI
以下代码示例向您展示了如何通过 AWS Command Line Interface 与 Amazon 一起使用来执行操作和实现常见场景SQS。
操作是大型程序的代码摘录,必须在上下文中运行。您可以通过操作了解如何调用单个服务函数,还可以通过函数相关场景的上下文查看操作。
每个示例都包含一个指向完整源代码的链接,您可以在其中找到有关如何在上下文中设置和运行代码的说明。
主题
操作
以下代码示例显示了如何使用add-permission
。
- AWS CLI
-
向队列添加权限
此示例允许指定 AWS 账户向指定队列发送消息。
命令:
aws sqs add-permission --queue-url
https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue
--labelSendMessagesFromMyQueue
--aws-account-ids12345EXAMPLE
--actionsSendMessage
输出:
None.
-
有关API详细信息,请参阅 “AddPermission AWS CLI
命令参考”。
-
以下代码示例显示了如何使用cancel-message-move-task
。
- AWS CLI
-
取消邮件移动任务
以下
cancel-message-move-task
示例取消了指定的邮件移动任务。aws sqs cancel-message-move-task \ --task-handle
AQEB6nR4...HzlvZQ==
输出:
{ "ApproximateNumberOfMessagesMoved": 102 }
有关更多信息,请参阅《开发者指南》中的 Amazon SQS API 权限:操作和资源参考。
-
有关API详细信息,请参阅 “CancelMessageMoveTask AWS CLI
命令参考”。
-
以下代码示例显示了如何使用change-message-visibility-batch
。
- AWS CLI
-
批量更改多条消息的超时可见性
此示例将 2 条指定消息的超时可见性更改为 10 小时(10 小时 x 60 分钟 * 60 秒)。
命令:
aws sqs change-message-visibility-batch --queue-url
https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue
--entriesfile://change-message-visibility-batch.json
输入文件 (change-message-visibility-batch.json):
[ { "Id": "FirstMessage", "ReceiptHandle": "AQEBhz2q...Jf3kaw==", "VisibilityTimeout": 36000 }, { "Id": "SecondMessage", "ReceiptHandle": "AQEBkTUH...HifSnw==", "VisibilityTimeout": 36000 } ]
输出:
{ "Successful": [ { "Id": "SecondMessage" }, { "Id": "FirstMessage" } ] }
-
有关API详细信息,请参阅 “ChangeMessageVisibilityBatch AWS CLI
命令参考”。
-
以下代码示例显示了如何使用change-message-visibility
。
- AWS CLI
-
更改消息的超时可见性
此示例将指定消息的超时可见性更改为 10 小时(10 小时 * 60 分钟 * 60 秒)。
命令:
aws sqs change-message-visibility --queue-url
https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue
--receipt-handleAQEBTpyI...t6HyQg==
--visibility-timeout36000
输出:
None.
-
有关API详细信息,请参阅 “ChangeMessageVisibility AWS CLI
命令参考”。
-
以下代码示例显示了如何使用create-queue
。
- AWS CLI
-
创建队列
此示例使用指定名称创建队列,将消息保留期设置为 3 天(3 天 * 24 小时 * 60 分钟 * 60 秒),并将队列的死信队列设置为指定队列,其最大接收数量为 1,000 条消息。
命令:
aws sqs create-queue --queue-name
MyQueue
--attributesfile://create-queue.json
输入文件(create-queue.json):
{ "RedrivePolicy": "{\"deadLetterTargetArn\":\"arn:aws:sqs:us-east-1:80398EXAMPLE:MyDeadLetterQueue\",\"maxReceiveCount\":\"1000\"}", "MessageRetentionPeriod": "259200" }
输出:
{ "QueueUrl": "https://queue.amazonaws.com/80398EXAMPLE/MyQueue" }
-
有关API详细信息,请参阅 “CreateQueue AWS CLI
命令参考”。
-
以下代码示例显示了如何使用delete-message-batch
。
- AWS CLI
-
批量删除多条消息
此示例将删除指定消息。
命令:
aws sqs delete-message-batch --queue-url
https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue
--entriesfile://delete-message-batch.json
输入文件 (delete-message-batch.json):
[ { "Id": "FirstMessage", "ReceiptHandle": "AQEB1mgl...Z4GuLw==" }, { "Id": "SecondMessage", "ReceiptHandle": "AQEBLsYM...VQubAA==" } ]
输出:
{ "Successful": [ { "Id": "FirstMessage" }, { "Id": "SecondMessage" } ] }
-
有关API详细信息,请参阅 “DeleteMessageBatch AWS CLI
命令参考”。
-
以下代码示例显示了如何使用delete-message
。
- AWS CLI
-
删除消息
此示例将删除指定消息。
命令:
aws sqs delete-message --queue-url
https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue
--receipt-handleAQEBRXTo...q2doVA==
输出:
None.
-
有关API详细信息,请参阅 “DeleteMessage AWS CLI
命令参考”。
-
以下代码示例显示了如何使用delete-queue
。
- AWS CLI
-
删除队列
此示例将删除指定队列。
命令:
aws sqs delete-queue --queue-url
https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyNewerQueue
输出:
None.
-
有关API详细信息,请参阅 “DeleteQueue AWS CLI
命令参考”。
-
以下代码示例显示了如何使用get-queue-attributes
。
- AWS CLI
-
获取队列的属性
此示例将获取指定队列的所有属性。
命令:
aws sqs get-queue-attributes --queue-url
https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue
--attribute-namesAll
输出:
{ "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" } }
此示例仅获取指定队列的最大消息大小和可见性超时属性。
命令:
aws sqs get-queue-attributes --queue-url
https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyNewQueue
--attribute-namesMaximumMessageSize
VisibilityTimeout
输出:
{ "Attributes": { "VisibilityTimeout": "30", "MaximumMessageSize": "262144" } }
-
有关API详细信息,请参阅 “GetQueueAttributes AWS CLI
命令参考”。
-
以下代码示例显示了如何使用get-queue-url
。
- AWS CLI
-
要排队 URL
此示例获取指定队列的URL。
命令:
aws sqs get-queue-url --queue-name
MyQueue
输出:
{ "QueueUrl": "https://queue.amazonaws.com/80398EXAMPLE/MyQueue" }
-
有关API详细信息,请参阅 “GetQueueUrl AWS CLI
命令参考”。
-
以下代码示例显示了如何使用list-dead-letter-source-queues
。
- AWS CLI
-
列出死信来源队列
此示例列出了与指定死信源队列关联的队列。
命令:
aws sqs list-dead-letter-source-queues --queue-url
https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyDeadLetterQueue
输出:
{ "queueUrls": [ "https://queue.amazonaws.com/80398EXAMPLE/MyQueue", "https://queue.amazonaws.com/80398EXAMPLE/MyOtherQueue" ] }
-
有关API详细信息,请参阅 “ListDeadLetterSourceQueues AWS CLI
命令参考”。
-
以下代码示例显示了如何使用list-message-move-tasks
。
- AWS CLI
-
列出邮件移动任务
以下
list-message-move-tasks
示例列出了指定队列中最近的 2 个邮件移动任务。aws sqs list-message-move-tasks \ --source-arn
arn:aws:sqs:us-west-2:80398EXAMPLE:MyQueue
\ --max-results2
输出:
{ "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 } ] }
有关更多信息,请参阅《开发者指南》中的 Amazon SQS API 权限:操作和资源参考。
-
有关API详细信息,请参阅 “ListMessageMoveTasks AWS CLI
命令参考”。
-
以下代码示例显示了如何使用list-queue-tags
。
- AWS CLI
-
列出队列的所有成本分配标签
以下
list-queue-tags
示例显示了与指定队列关联的所有成本分配标签。aws sqs list-queue-tags \ --queue-url
https://sqs.us-west-2.amazonaws.com/123456789012/MyQueue
输出:
{ "Tags": { "Team": "Alpha" } }
有关更多信息,请参阅《亚马逊简单队列服务开发者指南》中的列出成本分配标签。
-
有关API详细信息,请参阅 “ListQueueTags AWS CLI
命令参考”。
-
以下代码示例显示了如何使用list-queues
。
- AWS CLI
-
列出队列
此示例将列出所有队列。
命令:
aws sqs list-queues
输出:
{ "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" ] }
此示例仅列出以“My”开头的队列。
命令:
aws sqs list-queues --queue-name-prefix
My
输出:
{ "QueueUrls": [ "https://queue.amazonaws.com/80398EXAMPLE/MyDeadLetterQueue", "https://queue.amazonaws.com/80398EXAMPLE/MyQueue", "https://queue.amazonaws.com/80398EXAMPLE/MyOtherQueue" ] }
-
有关API详细信息,请参阅 “ListQueues AWS CLI
命令参考”。
-
以下代码示例显示了如何使用purge-queue
。
- AWS CLI
-
清除队列
此示例删除指定队列中的所有消息。
命令:
aws sqs purge-queue --queue-url
https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyNewQueue
输出:
None.
-
有关API详细信息,请参阅 “PurgeQueue AWS CLI
命令参考”。
-
以下代码示例显示了如何使用receive-message
。
- AWS CLI
-
接收消息
此示例最多接收 10 条可用消息,返回所有可用属性。
命令:
aws sqs receive-message --queue-url
https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue
--attribute-namesAll
--message-attribute-namesAll
--max-number-of-messages10
输出:
{ "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" } } } ] }
此示例接收下一条可用消息,仅返回 SenderId 和 SentTimestamp 属性以及 m PostalCode essage 属性。
命令:
aws sqs receive-message --queue-url
https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue
--attribute-namesSenderId
SentTimestamp
--message-attribute-namesPostalCode
输出:
{ "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详细信息,请参阅 “ReceiveMessage AWS CLI
命令参考”。
-
以下代码示例显示了如何使用remove-permission
。
- AWS CLI
-
移除权限
此示例从指定队列中移除带有指定标签的权限。
命令:
aws sqs remove-permission --queue-url
https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue
--labelSendMessagesFromMyQueue
输出:
None.
-
有关API详细信息,请参阅 “RemovePermission AWS CLI
命令参考”。
-
以下代码示例显示了如何使用send-message-batch
。
- AWS CLI
-
批量发送多条消息
此示例向指定队列发送 2 条具有指定消息正文、延迟时间和消息属性的消息。
命令:
aws sqs send-message-batch --queue-url
https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue
--entriesfile://send-message-batch.json
输入文件 (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" } } } ]
输出:
{ "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" } ] }
-
有关API详细信息,请参阅 “SendMessageBatch AWS CLI
命令参考”。
-
以下代码示例显示了如何使用send-message
。
- AWS CLI
-
发送邮件
此示例向指定队列发送一条具有指定消息正文、延迟时间和消息属性的消息。
命令:
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-seconds10
--message-attributesfile://send-message.json
输入文件(send-message.json):
{ "City": { "DataType": "String", "StringValue": "Any City" }, "Greeting": { "DataType": "Binary", "BinaryValue": "Hello, World!" }, "Population": { "DataType": "Number", "StringValue": "1250800" } }
输出:
{ "MD5OfMessageBody": "51b0a325...39163aa0", "MD5OfMessageAttributes": "00484c68...59e48f06", "MessageId": "da68f62c-0c07-4bee-bf5f-7e856EXAMPLE" }
-
有关API详细信息,请参阅 “SendMessage AWS CLI
命令参考”。
-
以下代码示例显示了如何使用set-queue-attributes
。
- AWS CLI
-
设置队列属性
此示例将指定队列的传输延迟设置为 10 秒,最大消息大小为 128 KB(128 KB * 1,024 字节),消息保留期为 3 天(3 天 * 24 小时 * 60 分钟 * 60 秒),接收消息等待时间为 20 秒,默认可见性超时为 60 秒。此示例还将指定的死信队列与最大接收数 1,000 条消息相关联。
命令:
aws sqs set-queue-attributes --queue-url
https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyNewQueue
--attributesfile://set-queue-attributes.json
输入文件 (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" }
输出:
None.
-
有关API详细信息,请参阅 “SetQueueAttributes AWS CLI
命令参考”。
-
以下代码示例显示了如何使用start-message-move-task
。
- AWS CLI
-
示例 1:*启动消息移动任务*
以下
start-message-move-task
示例启动消息移动任务,将消息从指定的死信队列重新驱动到源队列。aws sqs start-message-move-task \ --source-arn
arn:aws:sqs:us-west-2:80398EXAMPLE:MyQueue
输出:
{ "TaskHandle": "AQEB6nR4...HzlvZQ==" }
有关更多信息,请参阅 “这是您的指南名称” 中的主题标题
。 示例 2:*以最大速率启动邮件移动任务*
以下
start-message-move-task
示例启动消息移动任务,以每秒 50 条消息的最大速率将消息从指定的死信队列重新驱动到指定的目标队列。aws sqs start-message-move-task \ --source-arn
arn:aws:sqs:us-west-2:80398EXAMPLE:MyQueue1
\ --destination-arnarn:aws:sqs:us-west-2:80398EXAMPLE:MyQueue2
\ --max-number-of-messages-per-second50
输出:
{ "TaskHandle": "AQEB6nR4...HzlvZQ==" }
有关更多信息,请参阅《开发者指南》中的 Amazon SQS API 权限:操作和资源参考。
-
有关API详细信息,请参阅 “StartMessageMoveTask AWS CLI
命令参考”。
-
以下代码示例显示了如何使用tag-queue
。
- AWS CLI
-
向队列添加成本分配标签
以下
tag-queue
示例向指定的 Amazon SQS 队列添加成本分配标签。aws sqs tag-queue \ --queue-url
https://sqs.us-west-2.amazonaws.com/123456789012/MyQueue
\ --tagsPriority=Highest
此命令不生成任何输出。
有关更多信息,请参阅《Amazon 简单队列服务开发者指南》中的添加成本分配标签。
-
有关API详细信息,请参阅 “TagQueue AWS CLI
命令参考”。
-
以下代码示例显示了如何使用untag-queue
。
- AWS CLI
-
从队列中移除成本分配标签
以下
untag-queue
示例从指定的 Amazon SQS 队列中移除成本分配标签。aws sqs untag-queue \ --queue-url
https://sqs.us-west-2.amazonaws.com/123456789012/MyQueue
\ --tag-keys"Priority"
此命令不生成任何输出。
有关更多信息,请参阅《Amazon 简单队列服务开发者指南》中的添加成本分配标签。
-
有关API详细信息,请参阅 “UntagQueue AWS CLI
命令参考”。
-