를 사용한 Amazon SQS 예제 AWS CLI - AWS SDK 코드 예제

AWS Doc SDK ExamplesWord AWS SDK 리포지토리에는 더 많은 GitHub 예제가 있습니다.

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

를 사용한 Amazon SQS 예제 AWS CLI

다음 코드 예제에서는 Amazon SQS AWS Command Line Interface 와 함께를 사용하여 작업을 수행하고 일반적인 시나리오를 구현하는 방법을 보여줍니다.

작업은 대규모 프로그램에서 발췌한 코드이며 컨텍스트에 맞춰 실행해야 합니다. 작업은 개별 서비스 함수를 직접적으로 호출하는 방법을 보여주며 관련 시나리오의 컨텍스트에 맞는 작업을 볼 수 있습니다.

각 예제에는 컨텍스트에서 코드를 설정하고 실행하는 방법에 대한 지침을 찾을 수 있는 전체 소스 코드에 대한 링크가 포함되어 있습니다.

주제

작업

다음 코드 예시에서는 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 API SQS 권한: 작업 및 리소스 참조를 참조하세요.

다음 코드 예시에서는 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 세부 정보는 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 API SQS 권한: 작업 및 리소스 참조를 참조하세요.

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

이 예시에서는 '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 API SQS 권한: 작업 및 리소스 참조를 참조하세요.

다음 코드 예시에서는 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 세부 정보는 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를 참조하세요.