사용하는 Amazon SQS 예제 AWS CLI - AWS Command Line Interface

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

사용하는 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 --label SendMessagesFromMyQueue --aws-account-ids 12345EXAMPLE --actions SendMessage

출력:

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 권한: 작업 및 리소스 참조를 참조하십시오.

다음 코드 예시에서는 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 --entries file://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" } ] }

다음 코드 예시에서는 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-handle AQEBTpyI...t6HyQg== --visibility-timeout 36000

출력:

None.

다음 코드 예시에서는 create-queue을 사용하는 방법을 보여 줍니다.

AWS CLI

대기열을 생성하려면

이 예시에서는 지정된 이름의 대기열을 만들고, 메시지 보존 기간을 3일(3일 * 24시간 * 60분 * 60초)로 설정하고, 대기열의 DLQ(Dead Letter Queue)를 최대 메시지 수신 개수 1,000개의 지정된 대기열로 설정합니다.

명령:

aws sqs create-queue --queue-name MyQueue --attributes file://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 --entries file://delete-message-batch.json

입력 파일 (delete-message-batch.json):

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

출력:

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

다음 코드 예시에서는 delete-message을 사용하는 방법을 보여 줍니다.

AWS CLI

메시지를 삭제하는 방법

이 예시에서는 지정된 메시지를 삭제합니다.

명령:

aws sqs delete-message --queue-url https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue --receipt-handle AQEBRXTo...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-names All

출력:

{ "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-names MaximumMessageSize VisibilityTimeout

출력:

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

다음 코드 예시에서는 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" ] }

다음 코드 예시에서는 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-results 2

출력:

{ "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 권한: 작업 및 리소스 참조를 참조하십시오.

다음 코드 예시에서는 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-names All --message-attribute-names All --max-number-of-messages 10

출력:

{ "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-names SenderId SentTimestamp --message-attribute-names PostalCode

출력:

{ "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 --label SendMessagesFromMyQueue

출력:

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 --entries file://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-seconds 10 --message-attributes file://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 --attributes file://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.

다음 코드 예시에서는 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-arn arn:aws:sqs:us-west-2:80398EXAMPLE:MyQueue2 \ --max-number-of-messages-per-second 50

출력:

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

자세한 내용은 개발자 안내서의 Amazon SQS API 권한: 작업 및 리소스 참조를 참조하십시오.

다음 코드 예시에서는 tag-queue을 사용하는 방법을 보여 줍니다.

AWS CLI

대기열에 비용 할당 태그를 추가하려면

다음 tag-queue 예시는 지정된 Amazon SQS 대기열에 비용 할당 태그를 추가합니다.

aws sqs tag-queue \ --queue-url https://sqs.us-west-2.amazonaws.com/123456789012/MyQueue \ --tags Priority=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참조를 참조하십시오.