를 사용한 Amazon SQS 예제 AWS CLI - AWS Command Line Interface

이 설명서는 의 버전 1 AWS CLI 전용입니다. 의 버전 2와 관련된 설명서는 버전 2 사용 설명서 를 AWS CLI참조하세요.

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

를 사용한 Amazon SQS 예제 AWS CLI

다음 코드 예제에서는 Amazon 와 AWS Command Line Interface 함께 를 사용하여 작업을 수행하고 일반적인 시나리오를 구현하는 방법을 보여줍니다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 내용은 명령 참조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 권한: 작업 및 리소스 참조를 참조하세요.

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

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

[ { "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 내용은 명령 참조CreateQueue의 섹션을 참조하세요. AWS CLI

다음 코드 예시에서는 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" } ] }
  • 자세한 API 내용은 명령 참조DeleteMessageBatch의 섹션을 참조하세요. AWS CLI

다음 코드 예시에서는 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 내용은 명령 참조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-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" } }
  • 자세한 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" ] }

다음 코드 예시에서는 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 Service 개발자 안내서비용 할당 태그 나열을 참조하세요.

  • 자세한 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-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" } } } ] }

이 예제는 메시지 SentTimestamp 속성뿐만 아니라 SenderId 및 속성만 반환하는 다음 사용 가능한 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 내용은 명령 참조ReceiveMessage의 섹션을 참조하세요. AWS CLI

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

AWS CLI

권한을 제거하려면

이 예제에서는 지정된 대기열에서 지정된 레이블이 있는 권한을 제거합니다.

명령:

aws sqs remove-permission --queue-url https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue --label SendMessagesFromMyQueue

출력:

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 --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 내용은 명령 참조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-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 내용은 명령 참조SendMessage의 섹션을 참조하세요. AWS CLI

다음 코드 예시에서는 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.
  • 자세한 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-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 Service 개발자 안내서비용 할당 태그 추가를 참조하세요.

  • 자세한 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 Simple Queue Service 개발자 안내서비용 할당 태그 추가를 참조하세요.

  • 자세한 API 내용은 명령 참조UntagQueue의 섹션을 참조하세요. AWS CLI