

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

# Amazon SQS에서 AWS JSON 프로토콜을 사용하여 쿼리 API 요청 수행
<a name="sqs-making-api-requests-json"></a>

이 주제에서는 Amazon SQS 엔드포인트를 구성하고, POST 요청을 수행하고, 응답을 해석하는 방법을 설명합니다.

**참고**  
AWS JSON 프로토콜은 대부분의 언어 변형에서 지원됩니다. 지원되는 언어 변형의 전체 목록은 [Amazon SQS APIs에서 사용되는 AWS JSON 프로토콜에는 어떤 언어가 지원되나요?](sqs-json-faqs.md#json-protocol-supported-languages) 섹션을 참조하세요.

## 엔드포인트 구성
<a name="sqs-api-constructing-endpoints-json"></a>

Amazon SQS 대기열로 작업하려면 엔드포인트를 생성해야 합니다. Amazon SQS 엔드포인트에 대한 자세한 내용은 *Amazon Web Services 일반 참조*의 다음 페이지를 참조하세요.
+ [리전 엔드포인트](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints)
+ [Amazon Simple Queue Service 엔드포인트 및 할당량](https://docs.aws.amazon.com/general/latest/gr/sqs-service)

모든 Amazon SQS 엔드포인트는 독립적입니다. 예를 들어 두 대기열의 이름이 **MyQueue인데 한 대기열에는 `sqs.us-east-2.amazonaws.com` 엔드포인트가 있고 다른 대기열에는 `sqs.eu-west-2.amazonaws.com` 엔드포인트가 있는 경우 두 대기열은 서로 어떤 데이터도 공유하지 않습니다.

다음은 대기열을 생성하는 요청을 만드는 엔드포인트의 예제입니다.

```
POST / HTTP/1.1
Host: sqs.us-west-2.amazonaws.com
X-Amz-Target: AmazonSQS.CreateQueue
X-Amz-Date: <Date>
Content-Type: application/x-amz-json-1.0
Authorization: <AuthParams>
Content-Length: <PayloadSizeBytes>
Connection: Keep-Alive 
{
    "QueueName":"MyQueue",
    "Attributes": {
        "VisibilityTimeout": "40"
    },
    "tags": {
        "QueueType": "Production"
    }
}
```

**참고**  
대기열 이름과 대기열 URL은 대소문자를 구분합니다.  
{{`AUTHPARAMS`}}의 구조는 API 요청의 서명에 따라 달라집니다. 자세한 내용은 Amazon Web Services 일반 참조의 [AWS API 요청 서명을 참조하세요](https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html). ** 

## POST 요청 만들기
<a name="structure-post-request"></a>

Amazon SQS POST 요청은 쿼리 파라미터를 HTTP 요청 본문에 포함시켜 보냅니다.

다음은 `X-Amz-Target`이 `AmazonSQS.<operationName>`으로 설정된 HTTP 헤더와 `Content-Type`이 `application/x-amz-json-1.0`으로 설정된 HTTP 헤더의 예입니다.

```
POST / HTTP/1.1
Host: sqs.<region>.<domain>
X-Amz-Target: AmazonSQS.SendMessage
X-Amz-Date: <Date>
Content-Type: application/x-amz-json-1.0
Authorization: <AuthParams>
Content-Length: <PayloadSizeBytes>
Connection: Keep-Alive 
{
    "QueueUrl": "https://sqs.<region>.<domain>/<awsAccountId>/<queueName>/",
    "MessageBody": "This is a test message"
}
```

이 HTTP POST 요청은 Amazon SQS 대기열로 메시지를 전송합니다.

**참고**  
HTTP 헤더 `X-Amz-Target` 및 `Content-Type` 모두 필수입니다.  
HTTP 클라이언트는 클라이언트의 HTTP 버전에 따라 HTTP 요청에 다른 항목을 추가할 수 있습니다.