文件 AWS SDK AWS 範例 SDK 儲存庫中有更多可用的
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 的 Amazon SQS 範例 AWS CLI
下列程式碼範例示範如何搭配 Amazon SQS AWS Command Line Interface 使用 來執行動作和實作常見案例。
Actions 是大型程式的程式碼摘錄,必須在內容中執行。雖然 動作會示範如何呼叫個別服務函數,但您可以在其相關案例中查看內容中的動作。
每個範例都包含完整原始程式碼的連結,您可以在其中找到如何在內容中設定和執行程式碼的指示。
主題
動作
下列程式碼範例示範如何使用 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 詳細資訊,請參閱 AWS CLI 命令參考中的 AddPermission
。
-
下列程式碼範例示範如何使用 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 詳細資訊,請參閱 AWS CLI 命令參考中的 CancelMessageMoveTask
。
-
下列程式碼範例示範如何使用 change-message-visibility-batch
。
- AWS CLI
-
以批次形式變更多則訊息的逾時可見性
此範例會將 2 個指定訊息的逾時可見性變更為 10 小時 (10 小時 * 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 詳細資訊,請參閱 AWS CLI 命令參考中的 ChangeMessageVisibilityBatch
。
-
下列程式碼範例示範如何使用 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 詳細資訊,請參閱 AWS CLI 命令參考中的 ChangeMessageVisibility
。
-
下列程式碼範例示範如何使用 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 詳細資訊,請參閱 AWS CLI 命令參考中的 CreateQueue
。
-
下列程式碼範例示範如何使用 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 詳細資訊,請參閱 AWS CLI 命令參考中的 DeleteMessageBatch
。
-
下列程式碼範例示範如何使用 delete-message
。
- AWS CLI
-
刪除訊息
此範例會刪除指定的訊息。
命令:
aws sqs delete-message --queue-url
https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue
--receipt-handleAQEBRXTo...q2doVA==
輸出:
None.
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 DeleteMessage
。
-
下列程式碼範例示範如何使用 delete-queue
。
- AWS CLI
-
若要刪除佇列
此範例會刪除指定的佇列。
命令:
aws sqs delete-queue --queue-url
https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyNewerQueue
輸出:
None.
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 DeleteQueue
。
-
下列程式碼範例示範如何使用 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 詳細資訊,請參閱 AWS CLI 命令參考中的 GetQueueAttributes
。
-
下列程式碼範例示範如何使用 get-queue-url
。
- AWS CLI
-
若要取得佇列 URL
此範例會取得指定佇列的 URL。
命令:
aws sqs get-queue-url --queue-name
MyQueue
輸出:
{ "QueueUrl": "https://queue.amazonaws.com/80398EXAMPLE/MyQueue" }
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 GetQueueUrl
。
-
下列程式碼範例示範如何使用 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 詳細資訊,請參閱 AWS CLI 命令參考中的 ListDeadLetterSourceQueues
。
-
下列程式碼範例示範如何使用 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 詳細資訊,請參閱 AWS CLI 命令參考中的 ListMessageMoveTasks
。
-
下列程式碼範例示範如何使用 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" } }
如需詳細資訊,請參閱 Amazon Simple Queue Service 開發人員指南中的列出成本分配標籤。
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 ListQueueTags
。
-
下列程式碼範例示範如何使用 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" ] }
此範例只會列出以「我的」開頭的佇列。
命令:
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 詳細資訊,請參閱 AWS CLI 命令參考中的 ListQueues
。
-
下列程式碼範例示範如何使用 purge-queue
。
- AWS CLI
-
若要清除佇列
此範例會刪除指定佇列中的所有訊息。
命令:
aws sqs purge-queue --queue-url
https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyNewQueue
輸出:
None.
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 PurgeQueue
。
-
下列程式碼範例示範如何使用 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 屬性,以及 PostalCode 訊息屬性。
命令:
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 詳細資訊,請參閱 AWS CLI 命令參考中的 ReceiveMessage
。
-
下列程式碼範例示範如何使用 remove-permission
。
- AWS CLI
-
若要移除許可
此範例會從指定的佇列中移除具有指定標籤的許可。
命令:
aws sqs remove-permission --queue-url
https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue
--labelSendMessagesFromMyQueue
輸出:
None.
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 RemovePermission
。
-
下列程式碼範例示範如何使用 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 詳細資訊,請參閱 AWS CLI 命令參考中的 SendMessageBatch
。
-
下列程式碼範例示範如何使用 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 詳細資訊,請參閱 AWS CLI 命令參考中的 SendMessage
。
-
下列程式碼範例示範如何使用 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 詳細資訊,請參閱 AWS CLI 命令參考中的 SetQueueAttributes
。
-
下列程式碼範例示範如何使用 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 詳細資訊,請參閱 AWS CLI 命令參考中的 StartMessageMoveTask
。
-
下列程式碼範例示範如何使用 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 Simple Queue Service 開發人員指南中的新增成本分配標籤。
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 TagQueue
。
-
下列程式碼範例示範如何使用 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 Simple Queue Service 開發人員指南中的新增成本分配標籤。
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 UntagQueue
。
-