

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon SQS での AWS JSON プロトコルを使用したクエリ API リクエストの実行 Amazon SQS
<a name="sqs-making-api-requests-json"></a>

このトピックでは、Amazon SQS エンドポイントを構築する方法、POST リクエストを行う方法、およびレスポンスを解釈する方法について説明します。

**注記**  
AWS JSON プロトコルは、ほとんどの言語バリアントでサポートされています。サポートされている言語のリストについては、「[Amazon SQS API で使用される AWS JSON プロトコルでは、どの言語がサポートされていますか? APIs](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 エンドポイントはそれぞれ独立しています。例えば、2 つのキューの名前が MyQueue で、一方にはエンドポイント `sqs.us-east-2.amazonaws.com` があり、もう一方にはエンドポイント `sqs.eu-west-2.amazonaws.com` がある場合、2 つのキューは互いにどのデータも共有しません。**

キュー作成のクエストを行うエンドポイントの例を次に示します。

```
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 リクエストに追加する可能性があります。