Amazon SQS での AWS クエリプロトコルを使用したクエリ API リクエストの実行 - Amazon Simple Queue Service

Amazon SQS での AWS クエリプロトコルを使用したクエリ API リクエストの実行

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

エンドポイントの構築

Amazon SQSキューを使用するには、エンドポイントを構築する必要があります。Amazon SQS エンドポイントの詳細については、「Amazon Web Services 全般のリファレンス」の以下のページを参照してください。

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 一般リファレンス」のSigningAWSAPIリクエスト」を参照してください。

GETリクエストの作成

Amazon SQS の GET リクエストは、以下を要素とする URLとして構成します。

  • エンドポイント-リクエストが作用するリソース (キュー名と URL)。たとえば: https://sqs.us-east-2.amazonaws.com/123456789012/MyQueue

  • アクション-エンドポイントに実行したい アクション。疑問符 (?) によってエンドポイントとアクションが区切られます。たとえば?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 リクエストの作成

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

Content-Typeapplication/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 GET リクエストを続けます。各パラメータは、アンパサンド (&)で区切られています。

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

Content-TypeHTTPヘッダーのみが必須です。AUTHPARAMS は、GET リクエストの場合と同じです。

HTTP クライアントは、クライアントの HTTP バージョンによっては、他の項目を HTTP リクエストに追加する可能性があります。