(aws) AWS CLI를 사용하여 Amazon SQS 대기열을 생성하고 보는 방법

AWS CLI를 사용하여 Amazon SQS 대기열을 생성하고 보는 방법에 대한 지침

1. 대기열 만들기

aws sqs create-queue --queue-name MyQueue

위 명령은 “MyQueue”라는 새 SQS 대기열을 생성합니다.

큐 생성에 성공하면 큐의 URL이 출력됩니다.

2. 대기열 확인

aws sqs list-queues

위 명령은 AWS 계정에 있는 모든 SQS 대기열의 URL을 출력합니다.

MyQueue의 URL은 출력 URL에서 찾을 수 있습니다.

{
    "QueueUrls": (
        "https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue",
        "https://sqs.us-east-1.amazonaws.com/123456789012/YourQueue"
    )
}

3. 대기열 정보 확인

aws sqs get-queue-attributes --queue-url https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue --attribute-names All

위 명령은 “https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue” SQS 대기열의 모든 속성을 URL로 출력합니다.

출력에서 ​​대기열 이름, URL, 생성 날짜와 같은 정보를 확인할 수 있습니다.

위의 명령은 AWS CLI를 사용하여 Amazon SQS 대기열을 생성하고 보는 방법을 보여줍니다.

다른 SQS 관련 명령을 사용하여 메시지를 보내고 받는 등의 작업을 수행할 수 있습니다.

4. 대기열 삭제

aws sqs delete-queue --queue-url https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue

위 명령은 “https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue” URL이 포함된 SQS 대기열을 삭제합니다.

5. 메시징

aws sqs send-message --queue-url https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue --message-body "Hello World!
"

위 명령은 “https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue” URL과 함께 “Hello World!
” 메시지를 SQS 대기열로 보냅니다.

6. 메시지 수신

aws sqs receive-message --queue-url https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue

위 명령은 “https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue” URL로 SQS queue에서 가장 오래된 메시지를 수신합니다.

출력에서 ​​수신된 메시지의 ID, 텍스트 등의 정보를 확인할 수 있습니다.

위의 명령은 AWS CLI를 사용하여 Amazon SQS 대기열에서 간단한 작업을 수행하는 방법을 보여줍니다.

더 많은 명령과 옵션으로 더 많은 작업을 수행할 수 있습니다.

7. 메시지 삭제

aws sqs delete-message --queue-url https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue --receipt-handle AQEBwEXAMPLEu+8IwvSQn2iFrMQ==

위 명령은 “https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue” URL이 있는 SQS 대기열에서 지정된 수신 핸들이 있는 메시지를 삭제합니다.

수신 핸들은 메시지를 수신했을 때 받는 핸들 값입니다.

8. 대량 메시지 삭제

aws sqs delete-message-batch --queue-url https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue --entries Id=1,ReceiptHandle=AQEBwEXAMPLEu+8IwvSQn2iFrMQ== Id=2,ReceiptHandle=AQEBwEXAMPLEu+8IwvSQn2iFrMQ==

위 명령은 “https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue“URL이 있는 SQS 대기열에서 지정된 수신 핸들이 있는 메시지를 일괄 삭제합니다.

9. 대기열 속성 업데이트

aws sqs set-queue-attributes --queue-url https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue --attributes VisibilityTimeout=3600

위 명령은 “https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue” URL을 사용하여 SQS 대기열의 VisibilityTimeout 속성을 3600초(1시간)로 업데이트합니다.

VisibilityTimeout은 메시지가 처리되는 동안 다른 소비자가 메시지를 처리할 수 없음을 나타내는 시간입니다.

따라서 AWS CLI를 사용하여 Amazon SQS 대기열을 조작할 수 있습니다.

AWS SDK와 프로그래밍 방식으로 Amazon SQS를 사용할 수도 있습니다.

10. 대기열 속성 확인

aws sqs get-queue-attributes --queue-url https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue --attribute-names VisibilityTimeout MaximumMessageSize

위 명령은 “https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue” URL VisibilityTimeout 및 MaximumMessageSize로 SQS 대기열의 속성을 확인하십시오.

11. 대기열 URL 목록 확인

aws sqs list-queues

위의 명령은 현재 AWS 계정에서 사용할 수 있는 모든 Amazon SQS 대기열 URL 목록을 반환합니다.

12. 대기열 이름으로 URL 가져오기

aws sqs get-queue-url --queue-name MyQueue

위의 명령은 “MyQueue”라는 Amazon SQS 대기열의 URL을 가져옵니다.

반환된 결과에서 대기열의 URL을 확인할 수 있습니다.

이러한 AWS CLI 명령을 사용하여 Amazon SQS 대기열을 조작할 수 있습니다.

이 외에도 다양한 명령이 있으며 필요에 따라 적절한 명령을 선택하여 Amazon SQS를 사용할 수 있습니다.

13. 대기열 삭제

aws sqs delete-queue --queue-url https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue

위 명령은 “https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue” URL이 있는 Amazon SQS 대기열을 삭제합니다.

이 명령을 실행하면 이 대기열에서 모든 메시지가 삭제되고 대기열도 삭제됩니다.

14. 지역별 대기열 목록 확인

aws sqs list-queues --region us-west-2

위의 명령은 us-west-2 리전에서 사용 가능한 Amazon SQS 대기열 URL 목록을 반환합니다.

15. 메시지 푸시 알림 구성

aws sqs create-queue --queue-name MyQueue --attributes "Policy={\"Version\":\"2012-10-17\",\"Statement\":({\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"*\"},\"Action\":\"sqs:SendMessage\",\"Resource\":\"arn:aws:sqs:us-east-1:123456789012:MyQueue\",\"Condition\":{\"ArnEquals\":{\"aws:SourceArn\":\"arn:aws:sns:us-east-1:123456789012:MyTopic\"}}})}"

위 명령은 “MyQueue”라는 이름의 Amazon SQS 대기열을 생성하고 해당 대기열로 메시지를 보낼 수 있는 권한이 있는 Amazon SNS 주제(arn:aws:sns:us-east-1:123456789012:MyTopic)에서 메시지를 보냅니다.

이를 통해 Amazon SNS 주제에서 발생한 이벤트를 Amazon SQS 대기열로 전달할 수 있습니다.

16. 메시지 수신 대기 시간 구성

aws sqs create-queue --queue-name MyQueue --attributes "ReceiveMessageWaitTimeSeconds=20"

위의 명령은 “MyQueue”라는 이름의 Amazon SQS 대기열을 생성하고 해당 대기열에서 메시지를 기다릴 때 20초 동안 대기하도록 구성합니다.

이러한 AWS CLI 명령을 사용하여 Amazon SQS 대기열을 생성, 삭제, 수정 및 쿼리할 수 있습니다.

이 외에도 다양한 명령이 있으며 필요에 따라 적절한 명령을 선택하여 Amazon SQS를 사용할 수 있습니다.

17. 대기열에 메시지 보내기

aws sqs send-message --queue-url https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue --message-body "Hello World"

위 명령은 “https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue“URL”과 함께 Amazon SQS 대기열에 “Hello World” 메시지를 보냅니다.

18. 큐에서 받은 메시지

aws sqs receive-message --queue-url https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue

위 명령은 “https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue” URL을 사용하여 Amazon SQS 대기열에서 메시지를 수신합니다.

이 명령은 대기열에서 첫 번째 메시지를 수신하고 해당 메시지의 내용을 반환합니다.

19. 메시지 삭제

aws sqs delete-message --queue-url https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue --receipt-handle AQEBBX8r9rRv4syD0Z2kY47i4h4LxIv+3Ez0i0t1qbA9XneRRFYvd8mcMqbTcCj58iL0Q2A0dew78g32Jy45bH9XgADlE8bW+6ZjPfvFnBhdd2ndv+VAWthJy+hL/7e1R+Rv/YptEx1Z2enF4J4PqoMxqz3nSvpV7bKk3qYw7yW8dIPsxI7X9vp3tq+w=

위 명령은 “https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue” URL이 있는 Amazon SQS 대기열에서 메시지를 삭제합니다.

이 명령은 삭제할 메시지의 ReceiptHandle을 지정하여 메시지를 삭제합니다.

20. 메시지 속성 확인

aws sqs receive-message --queue-url https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue --attribute-names All

위 명령은 “https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue” URL이 있는 Amazon SQS 대기열에서 메시지를 수신하고 해당 메시지의 모든 속성을 반환합니다.

이러한 AWS CLI 명령을 사용하여 Amazon SQS 대기열에서 메시지를 전송, 수신 및 삭제할 수 있습니다.

이 외에도 다양한 명령이 있으며 필요에 따라 적절한 명령을 선택하여 Amazon SQS를 사용할 수 있습니다.

21. 메시지 대기 시간 확인

aws sqs receive-message --queue-url https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue --attribute-names ApproximateReceiveCount, SentTimestamp, ApproximateFirstReceiveTimestamp, VisibilityTimeout

위 명령은 “https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue” URL을 사용하여 Amazon SQS 대기열에서 메시지를 수신하고 해당 메시지의 지연 시간 관련 속성을 반환합니다.

22. 메시지 편집

aws sqs receive-message --queue-url https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue
aws sqs change-message-visibility --queue-url https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue --receipt-handle AQEBBX8r9rRv4syD0Z2kY47i4h4LxIv+3Ez0i0t1qbA9XneRRFYvd8mcMqbTcCj58iL0Q2A0dew78g32Jy45bH9XgADlE8bW+6ZjPfvFnBhdd2ndv+VAWthJy+hL/7e1R+Rv/YptEx1Z2enF4J4PqoMxqz3nSvpV7bKk3qYw7yW8dIPsxI7X9vp3tq+w= --visibility-timeout 60

첫 번째 명령은 큐에서 첫 번째 메시지를 받습니다.

두 번째 명령은 이 메시지의 ReceiptHandle을 사용하여 60초 동안 메시지의 가시성을 변경합니다.

23. 메시지 크기 제한 설정

aws sqs get-queue-attributes --queue-url https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue --attribute-names MaximumMessageSize

위 명령은 “https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue” URL과 함께 Amazon SQS 대기열의 최대 메시지 크기를 반환합니다.

24. 대기열 삭제

aws sqs delete-queue --queue-url https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue

위 명령은 “https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue“URL이 있는 Amazon SQS 대기열을 삭제하십시오.

이러한 명령을 사용하여 Amazon SQS 대기열을 만들고 보고, 메시지를 보내고 삭제하고, 메시지 속성을 보고, 메시지를 수정하고, 대기열 크기 제한을 확인하고, 대기열을 삭제할 수 있습니다.

이 외에도 다양한 명령이 있으며 필요에 따라 적절한 명령을 선택하여 Amazon SQS를 사용할 수 있습니다.

25. AWS SDK를 사용하여 Amazon SQS 대기열 생성

AWS SDK를 사용하면 다양한 프로그래밍 언어로 Amazon SQS를 사용할 수 있습니다.

다음은 Python을 사용하여 Amazon SQS 대기열을 생성하기 위한 샘플 코드입니다.

import boto3

# Create SQS client
sqs = boto3.client('sqs')

# Create a SQS queue
response = sqs.create_queue(
    QueueName="MyQueue",
    Attributes={
        'DelaySeconds': '60',
        'MessageRetentionPeriod': '86400'
    }
)

print(response('QueueUrl'))

위의 코드는 boto3 라이브러리를 사용하여 Python에서 Amazon SQS 대기열을 생성합니다.

create_queue 메서드를 사용하여 대기열의 이름과 속성을 정의합니다.

생성된 큐의 URL은 response(‘QueueUrl’)에서 찾을 수 있습니다.

26. AWS SDK를 사용하여 Amazon SQS 대기열 확인

Python을 사용하여 Amazon SQS 대기열을 검사하는 샘플 코드입니다.

import boto3

# Create SQS client
sqs = boto3.client('sqs')

# List SQS queues
response = sqs.list_queues()

# Print out the queues
print('Queues:')
for url in response('QueueUrls'):
    print(url)

위의 코드는 list_queues 메서드를 사용하여 계정과 연결된 모든 Amazon SQS 대기열의 URL 목록을 반환합니다.

반환된 URL은 response(‘QueueUrls’)에서 찾을 수 있습니다.

27. AWS SDK를 사용하여 Amazon SQS 메시지 보내기

Python을 사용하여 Amazon SQS 대기열에 메시지를 보내는 샘플 코드.

import boto3

# Create SQS client
sqs = boto3.client('sqs')

# Send message to SQS queue
response = sqs.send_message(
    QueueUrl="https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue",
    MessageBody='Hello world!
' ) print(response('MessageId'))

위의 코드는 send_message 메서드를 사용하여 Amazon SQS 대기열에 메시지를 보냅니다.

QueueUrl 매개변수에 대기열 URL을 입력하고 MessageBody 매개변수에 보낼 메시지를 입력합니다.

응답(‘MessageId’)에서 보낸 메시지의 ID를 찾을 수 있습니다.

28. AWS SDK를 사용하여 Amazon SQS 메시지 수신

Python을 사용하여 Amazon SQS 대기열에서 메시지를 수신하기 위한 샘플 코드.

import boto3

# Create SQS client
sqs = boto3.client('sqs')

# Receive message from SQS queue
response = sqs.receive_message(
    QueueUrl="https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue",
    MaxNumberOfMessages=1,
    VisibilityTimeout=30,
    WaitTimeSeconds=20
)

message = response('Messages')(0)
receipt_handle = message('ReceiptHandle')

print(f"Received message: {message('Body')}")

# Delete the message from the queue
sqs.delete_message(
    QueueUrl="https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue",
    ReceiptHandle=receipt_handle
)

위의 코드는 receive_message 메서드를 사용하여 Amazon SQS 대기열에서 메시지를 수신합니다.

QueueUrl 매개변수에 대기열 URL을 지정하고, MaxNumberOfMessages 매개변수에 동시에 수신할 메시지 수, VisibilityTimeout 매개변수에 메시지 표시 시간 제한, WaitTimeSeconds 매개변수에 메시지 수신을 위한 최대 대기 시간을 지정합니다.

반환된 메시지 목록의 첫 번째 메시지 내용은 message(‘Body’)에서 찾을 수 있습니다.

ReceiptHandle은 메시지를 삭제할 때 사용됩니다.

메시지를 삭제하려면 delete_message 메서드를 사용하고 QueueUrl 매개변수에 대기열 URL을 지정하고 ReceiptHandle 매개변수에 삭제할 메시지의 ReceiptHandle 값을 지정합니다.

지금까지 Amazon SQS 대기열을 만들고 보는 방법과 AWS CLI 및 AWS SDK를 사용하여 메시지를 보내고 받는 방법을 배웠습니다.

Amazon SQS는 분산 시스템에서 메시지 전송 및 처리를 간소화합니다.