

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

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

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

## エンドポイントの構築
<a name="sqs-api-constructing-endpoints"></a>

Amazon SQSキューを使用するには、エンドポイントを構築する必要があります。Amazon SQS エンドポイントの詳細については、「Amazon Web Services 全般のリファレンス**」の以下のページを参照してください。
+ [リージョンエンドポイント](https://docs.aws.amazon.com/general/latest/gr/rande.html#sqs_region)
+ [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 つのキューは互いにどのデータも共有しません。**

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

```
https://sqs.eu-west-2.amazonaws.com/   
?Action=CreateQueue
&DefaultVisibilityTimeout=40
&QueueName=MyQueue
&Version=2012-11-05
&AUTHPARAMS
```

**注記**  
キュー名とキュー URL では、大文字と小文字が区別されます。  
*`AUTHPARAMS`* の構造は API リクエストの署名によって異なります。詳細については、*Amazon Web Services 全般のリファレンス*[の AWS API リクエストの署名](https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html)を参照してください。

## GETリクエストの作成
<a name="structure-get-request"></a>

Amazon SQS の GET リクエストは、以下を要素とする URLとして構成します。
+ **エンドポイント**-リクエストが作用するリソース ([キュー名と URL](sqs-queue-message-identifiers.md#queue-name-url))。たとえば: `https://sqs.us-east-2.amazonaws.com/123456789012/MyQueue`
+ **アクション**-エンドポイントに実行したい [アクション](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_Operations.html)。疑問符 (`?`) によってエンドポイントとアクションが区切られます。たとえば`?Action=SendMessage&MessageBody=Your%20Message%20Text`など:
+ **パラメータ** – 任意のリクエストパラメータ。パラメータごとにアンパサンド (`&`) で区切ります。例: `&Version=2012-11-05&AUTHPARAMS` 

メッセージを Amazon SQS キューに送信する GET リクエストの例を以下に示します。

```
https://sqs.us-east-2.amazonaws.com/123456789012/MyQueue
?Action=SendMessage&MessageBody=Your%20message%20text
&Version=2012-11-05
&AUTHPARAMS
```

**注記**  
キュー名とキュー URL では、大文字と小文字が区別されます。  
GET リクエストは URL であるため、すべてのパラメータ値を URL エンコードする必要があります。URL にはスペースを使用できないため、各スペースは `%20` として URL エンコードします。例の残りについては、読みやすくするために URL エンコードしていません。

## POST リクエストの作成
<a name="structure-post-request"></a>

Amazon SQS の POST リクエストは、クエリパラメータを HTTP リクエストボディの形で送信します。

`Content-Type` を `application/x-www-form-urlencoded` に設定した HTTP ヘッダーの例を次に示します。

```
POST /123456789012/MyQueue HTTP/1.1
Host: sqs.us-east-2.amazonaws.com
Content-Type: application/x-www-form-urlencoded
```

ヘッダーの後には、メッセージを Amazon SQS キューに送信する `[form-urlencoded](https://www.w3.org/MarkUp/html-spec/html-spec_8.html#SEC8.2)` GET リクエストを続けます。各パラメータは、アンパサンド (`&`)で区切られています。

```
Action=SendMessage
&MessageBody=Your+Message+Text
&Expires=2020-10-15T12%3A00%3A00Z
&Version=2012-11-05
&AUTHPARAMS
```

**注記**  
`Content-Type`HTTPヘッダーのみが必須です。`AUTHPARAMS` は、GET リクエストの場合と同じです。  
HTTP クライアントは、クライアントの HTTP バージョンによっては、他の項目を HTTP リクエストに追加する可能性があります。

# Amazon SQS の XML API レスポンスの解釈
<a name="sqs-xml-api-responses"></a>

Amazon SQS にリクエストを送信すると、リクエストの結果を含む XML レスポンスが返されます。これらのレスポンスの構造と詳細を理解するには、「*Amazon Simple Queue Service API リファレンス*」の「[API アクション](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_Operations.html)」を参照してください。

## 成功した XML レスポンス構造
<a name="sqs-api-successful-response-structure"></a>

リクエストが成功すると、メインのレスポンス要素は、アクション名の後に `Response` を続けた名前になります (例: `ActionNameResponse`)。

この要素には、以下の子要素が含まれています。
+ **`ActionNameResult`**-アクション固有の要素が含まれています。たとえば、`CreateQueueResult` 要素には `QueueUrl` 要素が含まれています。つまり、作成されたキューのURLが含まれています。
+ **`ResponseMetadata`** – `RequestId` を含み、この ID 内にリクエストのユニバーサルユニーク識別子 (UUID) が含まれています。

以下に、XML形式の正常なレスポンスの例を示します。

```
<CreateQueueResponse
   xmlns=https://sqs.us-east-2.amazonaws.com/doc/2012-11-05/
   xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance
   xsi:type=CreateQueueResponse>
   <CreateQueueResult>
      <QueueUrl>https://sqs.us-east-2.amazonaws.com/770098461991/queue2</QueueUrl>
   </CreateQueueResult>
   <ResponseMetadata>
      <RequestId>cb919c0a-9bce-4afe-9b48-9bdf2412bb67</RequestId>
   </ResponseMetadata>
</CreateQueueResponse>
```

## XML エラーレスポンス構造
<a name="sqs-api-error-response-structure"></a>

リクエストが正常に行われなかった場合、 Amazon SQSは常に主な応答要素を返信します`ErrorResponse`。この要素には `Error` 要素と `RequestId` 要素が含まれます。

`Error` 要素には、以下の子要素が含まれています。
+ **`Type`**-エラーがプロデューサーかコンシューマーのどちらかを特定します。
+ **`Code`**-エラーのタイプを特定します。
+ **`Message`**-読み取り可能な条件でエラー状況を特定します。
+ **`Detail`**-(オプション) エラーに関する追加の詳細を特定します。

`RequestId`要素には、リクエストのUUIDが含まれています。

以下に、XML形式のエラーレスポンスの例を示します。

```
<ErrorResponse>
   <Error>
      <Type>Sender</Type>
      <Code>InvalidParameterValue</Code>
      <Message>
         Value (quename_nonalpha) for parameter QueueName is invalid.
         Must be an alphanumeric String of 1 to 80 in length.
      </Message>
   </Error>
   <RequestId>42d59b56-7407-4c4a-be0f-4c88daeea257</RequestId>
</ErrorResponse>
```