기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
사용하는 Amazon SQS 예제 AWS CLI
다음 코드 예제는 AWS Command Line Interface with 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 내용은 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
입력 파일 (.json): change-message-visibility-batch
[ { "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초)로 설정하고, 대기열의 DLQ(Dead Letter Queue)를 최대 메시지 수신 개수 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 서비스 개발자 안내서의 리스팅 비용 할당 태그를 참조하십시오.
-
자세한 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" ] }
이 예시에서는 '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 내용은 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초, 최대 메시지 크기 128KB(128KB * 1,024바이트), 메시지 보존 기간 3일(3일 * 24시간 * 60분 * 60초), 메시지 수신 대기 시간 20초, 기본 가시성 제한 시간 60초로 설정합니다. 또한 이 예시에서는 지정된 DLQ(Dead Letter Queue)를 최대 수신 개수 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 서비스 개발자 안내서의 비용 할당 태그 추가를 참조하십시오.
-
자세한 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 서비스 개발자 안내서의 비용 할당 태그 추가를 참조하십시오.
-
자세한 API 내용은 AWS CLI 명령 UntagQueue
참조를 참조하십시오.
-