すべてのプロダクト
Search
ドキュメントセンター

:メッセージ関連の操作

最終更新日:Mar 22, 2020

SendMessage

説明

このインターフェイスは、指定されたメッセージキューにメッセージを送信するために使用します。デフォルトでは、送信されたメッセージは直ちにコンシューマーが取得できます。スケジュール済みタスクなど、メッセージが直ちに取得されないことが予想される場合、メッセージの送信時に DelaySeconds パラメーターがプロデューサーによって追加されることが考えられます。DelaySeconds 値が正の値であるメッセージのステータスは、Delayed になります。このようなメッセージは、DelaySeconds が経過して Active ステータスになるまで、どのコンシューマーも取得できません。

ヒント:

メッセージの送信時に指定された DelaySeconds は、メッセージの DelaySeconds 属性よりも優先されます。つまり、この 2 つの DelaySeconds 値が異なる場合は、メッセージで指定された DelaySeconds が優先されます。

リクエスト

リクエストには、主に次の項目があります。

  • リクエスト行

    POST /$queueName/messages HTTP/1.1

  • 特別なリクエストヘッダー

    なし。「パブリックリクエストヘッダー」を参照してください。

  • リクエスト本文

    リクエスト本文は、XML 形式です。XML には、作成されるメッセージの属性が含まれています。

パラメーター名 説明 パラメーター値
MessageBody 必須。メッセージ本文。 UTF-8 文字セット。
DelaySeconds 任意。メッセージを取得できるようになるまでの遅延時間 (秒)。 0 から 604800 秒 (7 日間) までの整数。デフォルト値は 0。
Priority 任意。指定されたメッセージの優先順位。優先順位の高いメッセージほど、先に取得される確率が高まります。 値の範囲は 1 から 16 (値 1 が最も高い優先順位)。デフォルト値は 8。

応答

返されるメッセージには、戻りステータス行、HTTP ヘッダー、メッセージ本文の 3 つがあります。

  • HTTP ステータスコード

    HTTP/1.1 201 Created

  • 特別な応答ヘッダー

    なし。「パブリックリターンヘッダー」を参照してください。

  • 応答本文

    結果は XML 形式で返されます。メッセージの下位要素である MessageId と MessageBodyMD5 が返されます。

パラメーター名 説明
MessageId メッセージ ID、各キューの中で一意。
MessageBodyMD5 メッセージ本文の MD5 値。

特殊なエラー

エラーコード エラーメッセージ ステータスコード
QueueNotExist 指定された名前のキューは存在しません。 404
MalformedXML 指定された XML の形式が誤っています。 400
InvalidArgument Element の値は、MIN と MAX の間の秒数またはバイト数にする必要があります。 400

リクエストの例:

  1. POST /queues/$queueName/messages HTTP/1.1
  2. Host: $AccountId.mns.cn-hangzhou.aliyuncs.com
  3. Date: Wed, 18 Mar 2012 12:00:00 GMT
  4. Content-Length:500
  5. Content-Type:text/xml;charset=utf-8
  6. x-mns-version: 2015-06-06
  7. Authorization: MNS 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXAMPLE
  8. <?xml version="1.0” encoding=”UTF-8” ?>
  9. <Message xmlns=”http://mns.aliyuncs.com/doc/v1/”>
  10. <MessageBody>Base64 Encoded Result</MessageBody>
  11. <DelaySeconds>60</DelaySeconds>
  12. <Priority>1</Priority>
  13. </Message>

戻り値ヘッダーの例:

  1. HTTP/1.1 201Created
  2. Connnection:close
  3. Content-Length:120
  4. Content-Type:text/xml;charset=utf-8
  5. x-mqs-request-id:512B2A634403E52B1956133E
  6. x-mqs-version:2015-06-06
  7. <?xml version="1.0" encoding="UTF-8" ?>
  8. <Message xmlns="http://mqs.aliyuncs.com/doc/v1/">
  9. <MessageId>
  10. 5F290C926D472878-2-14D9529A8FA-200000001
  11. </MessageId>
  12.  <MessageBodyMD5>
  13.     C5DD56A39F5F7BB8B3337C6D11B6D8C7
  14. </MessageBodyMD5>
  15. </Message>

BatchSendMessage

説明

このインタフェースは、指定されたメッセージキューにバッチでメッセージを送信するために使用されます。 1つのBatchSendMessage操作で最大16のメッセージを送信できます。

一般的なメッセージは、メッセージキューに送信された直後にコンシューマーが消費することができます。 プロデューサーは、後で消費するようにメッセージを送信するときにDelaySecondsパラメータを設定できます(一般的なシナリオはスケジュールされたタスクです)。 DelaySeconds値(> 0)を持つメッセージの初期ステータスは Delayed です。この状態では、DelaySeconds時間が経過した後、メッセージのステータスが Active に変わるまでメッセージを使用することができません。

ヒント: 

メッセージの送信時に指定された DelaySeconds は、メッセージの DelaySeconds 属性よりも優先されます。つまり、この 2 つの DelaySeconds 値が異なる場合は、メッセージで指定された DelaySeconds が優先されます。

リクエスト

リクエストには、主に次の部分が含まれます。

  • リクエスト行

    POST /queues/$queueName/messages HTTP/1.1

  • 特別なリクエストヘッダー

    なし。「パブリックリクエストヘッダー」を参照してください。

  • リクエスト本文

    リクエスト本文は、XML 形式です。XML には、作成されるメッセージの属性が含まれています。

パラメーター名 説明 パラメーター値
MessageBody 必須。メッセージ本文。 UTF-8 文字セット。
DelaySeconds 任意。メッセージを取得できるようになるまでの遅延時間 0 から 604800 秒 (7 日間) までの整数。デフォルト値は 0。
Priority 任意。指定されたメッセージの優先順位。優先順位の高いメッセージほど、先に取得される確率が高まります。 値の範囲は 1 から 16 (値 1 が最も高い優先順位)。デフォルト値は 8。

Response

返されるメッセージには、戻りステータス行、HTTP ヘッダー、メッセージ本文の 3 つがあります。

  • HTTP ステータスコード

    HTTP/1.1 201 Created

  • 特別な応答ヘッダー

    なし。「パブリックリターンヘッダー」を参照してください。

  • 応答本文

    結果は XML 形式で返されます。メッセージの下位要素である MessageId と MessageBodyMD5 が返されます。

パラメーター名 説明
MessageId メッセージ ID、各キューの中で一意。
MessageBodyMD5 メッセージ本文の MD5 値。

特殊なエラー

エラーコード エラーメッセージ ステータスコード
QueueNotExist 指定された名前のキューは存在しません。 404
MalformedXML 指定された XML の形式が誤っています。 400
InvalidArgument Element の値は、MIN と MAX の間の秒数またはバイト数にする必要があります。 400

リクエストの例:

  1. POST /queues/$queueName/messages HTTP/1.1
  2. Host: $AccountId.mns.cn-hangzhou.aliyuncs.com
  3. Date: Wed, 18 Mar 2012 12:00:00 GMT
  4. Content-Length:500
  5. Content-Type:text/xml;charset=utf-8
  6. x-mns-version: 2015-06-06
  7. Authorization: MNS 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXAMPLE
  8. <?xml version="1.0” encoding=”UTF-8” ?>
  9. <Messages xmlns=”http://mns.aliyuncs.com/doc/v1/”>
  10. <Message>
  11. <MessageBody>Message1 Base64 Encoded Result</MessageBody>
  12. <DelaySeconds>60</DelaySeconds>
  13. <Priority>1</Priority>
  14. </Message>
  15. <Message>
  16. <MessageBody>Message2 Base64 Encoded Result</MessageBody>
  17. <DelaySeconds>60</DelaySeconds>
  18. <Priority>1</Priority>
  19. </Message>
  20. </Messages>

戻り値ヘッダーの例:

  1. HTTP/1.1 201Created
  2. Connnection:close
  3. Content-Length:120
  4. Content-Type:text/xml;charset=utf-8
  5. x-mns-request-id:512B2A634403E52B1956133E
  6. x-mns-version: 2015-06-06
  7. <?xml version="1.0” encoding=”UTF-8” ?>
  8. <Messages xmlns=”http://mns.aliyuncs.com/doc/v1/”>
  9. <Message>
  10. <MessageId>5F290C926D472878-2-14D9529A8FA-200000001</MessageId>
  11. <MessageBodyMD5>C5DD56A39F5F7BB8B3337C6D11B6D8C7</MessageBodyMD5>
  12. </Message>
  13. <Message>
  14. <MessageId>5F290C926D472878-2-14D9529A8FA-200000002</MessageId>
  15. <MessageBodyMD5>377AC5283D8765C9CEE4E0EA353DFC17</MessageBodyMD5>
  16. </Message>
  17. </Messages>

ReceiveMessage

説明

このインターフェイスは、コンシューマーがメッセージキュー内のメッセージを取得するために使用するものです。この ReceiveMessage 操作により、取得されたメッセージは [Inactive] ステータスに変わります。Inactive 期間は、キューの VisibilityTimeout 属性によって決まります (詳細については、CreateQueue インターフェイス を参照してください)。

メッセージが正常にコンシューマーによって取得されたら、VisibilityTimeout の間に DeleteMessage インターフェイスを呼び出してメッセージを削除する必要があります。削除しない場合、メッセージは [Active] ステータスに戻り、再びコンシューマーによって取得されます。

リクエスト

リクエストには、主に次の項目があります。

  • リクエスト行

    GET /$queueName/messages?waitseconds=10 HTTP/1.1

  • 特別な URI パラメーター

パラメーター名 説明 必須かどうか
waitseconds ReceiveMessage リクエストのポーリング最大待ち時間①(秒) 任意

注意:ReceiveMessage リクエストで waitseconds パラメーターが指定されている場合、その ReceiveMessage リクエストのポーリング待ち時間は waitseconds によって指定されます。waitseconds パラメーターが指定されていない場合、ポーリング待ち時間はキューの PollingWaitSeconds 属性によって指定されます (CreateQueue インターフェイス を参照してください)。

  • 特別なリクエストヘッダー

    なし。「パブリックリクエストヘッダー」を参照してください。

  • リクエスト本文

    なし。

応答

返されるメッセージには、戻りステータス行、HTTP ヘッダー、メッセージ本文の 3 つがあります。

  • HTTP ステータスコード

    HTTP/1.1 200 OK

  • 特別な応答ヘッダー

    なし。パブリックリターンヘッダー を参照してください。

  • 応答本文

    結果は XML 形式で返されます。メッセージのメッセージ本文と属性が返されます。

パラメーター名 説明
MessageId メッセージ ID、各キューの中で一意
ReceiptHandle 取得したメッセージのために生成された一時的なハンドル。[Inactive] ステータスで、NextVisibleTime になる前の有効なメッセージを削除または変更するために使用します。
MessageBody メッセージ本文
MessageBodyMD5 メッセージ本文の MD5 値
EnqueueTime メッセージがキューに送信された日時を 1970 年 1 月 1 日 0:00 からのミリ秒単位の経過時間で表した値
NextVisibleTime メッセージを再度取得できる日時を 1970 年 1 月 1 日 0:00 からのミリ秒単位の経過時間で表した値
FirstDequeueTime メッセージが最初に取得された日時を 1970 年 1 月 1 日 0:00 からのミリ秒単位の経過時間で表した値
DequeueCount メッセージが取得された合計回数
Priority メッセージの優先順位

特殊なエラー

エラーコード エラーメッセージ ステータスコード
QueueNotExist 指定された名前のキューは存在しません。 404
MessageNotExist メッセージが存在しません。 404

リクエストの例:

  1. GET /$queueName/messages HTTP/1.1
  2. Host: $AccountId.mqs-cn-hangzhou.aliyuncs.com
  3. Date: Wed, 28 May 2012 22:32:00 GMT
  4. x-mqs-version: 2014-07-08
  5. Authorization: MQS 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXAMPLE

戻り値の例:

  1. HTTP/1.1 200 OK
  2. Connection:close
  3. Content-Type=text/xml;charset=utf-8
  4. Content-Length:500
  5. x-mqs-request-id:512B2A634403E52B1956133E
  6. x-mqs-version:2015-06-06
  7. <?xml version="1.0" encoding="UTF-8" ?>
  8. <Message xmlns="http://mqs.aliyuncs.com/doc/v1/">
  9. <MessageId>5F290C926D472878-2-14D9529A8FA-200000001</MessageId>
  10. <ReceiptHandle>1-ODU4OTkzNDU5My0xNDMyNzI3ODI3LTItOA==</ReceiptHandle>
  11. <MessageBodyMD5>C5DD56A39F5F7BB8B3337C6D11B6D8C7</MessageBodyMD5>
  12. <MessageBody>This is a test message</MessageBody>
  13. <EnqueueTime>1250700979248</EnqueueTime>
  14. <NextVisibleTime>1250700799348</NextVisibleTime>
  15. <FirstDequeueTime>1250700779318</FirstDequeueTime >
  16. <DequeueCount>1</DequeueCount >
  17. <Priority>8</Priority>
  18. </Message>

BatchReceiveMessage

説明

このインタフェースは、コンシューマーがメッセージキュー内のメッセージをバッチで取得するために使用するものです。 1つのBatchReceiveMessage操作で最大16個のメッセージを取得できます。この操作により、取得したメッセージは非アクティブ状態に変わります。 非アクティブ期間は、キューのVisibilityTimeout属性によって決定されます(詳細は、「CreateQueueインターフェース」を参照してください)。

メッセージが正常にコンシューマーによって取得されたら、VisibilityTimeout の間に DeleteMessage インターフェイスを呼び出してメッセージを削除する必要があります。削除しない場合、メッセージは [Active] ステータスに戻り、再びコンシューマーによって取得されます。

リクエスト

リクエストには、主に次の項目があります:

  • リクエスト行

    GET /queues/$queueName/messages?numOfMessages=16&waitseconds=10 HTTP/1.1

  • 特別な URI パラメーター

パラメーター名 説明 必須かどうか
numOfMessages 現在のBatchReceiveMessage操作で取得できるメッセージの最大数。 必須
waitseconds ReceiveMessage リクエストのポーリング最大待ち時間①(秒) 任意

Note:

BatchReceiveMessageリクエストのポーリング待機時間は、あらかじめ設定された待機時間、または待機時間を事前設定せずにキューのPollingWaitSeconds属性で指定します(CreateQueue インタフェース を参照)。

  • 特別なリクエストヘッダー

    なし。パブリックリクエストヘッダー を参照してください。

  • リクエスト本文

    なし。

応答

返されるメッセージには、戻りステータス行、HTTP ヘッダー、メッセージ本文の 3 つがあります。

  • HTTP ステータスコード

    HTTP/1.1 200 OK

  • 特別な応答ヘッダー

    なし。パブリックリターンヘッダー を参照してください。

  • 応答本文

    結果は XML 形式で返されます。メッセージのメッセージ本文と属性が返されます。

パラメーター名 説明
MessageId メッセージ ID、各キューの中で一意
ReceiptHandle 取得されたメッセージに対して生成された一時ハンドル。[Inactive] ステータスで、NextVisibleTime になる前の有効なメッセージを削除または変更するために使用します。
MessageBody メッセージ本文
MessageBodyMD5 メッセージ本文の MD5 値
EnqueueTime メッセージがキューに送信された日時を 1970 年 1 月 1 日 0:00 からのミリ秒単位の経過時間で表した値
NextVisibleTime メッセージを再度取得できる日時を 1970 年 1 月 1 日 0:00 からのミリ秒単位の経過時間で表した値
FirstDequeueTime メッセージが最初に取得された日時を 1970 年 1 月 1 日 0:00 からのミリ秒単位の経過時間で表した値
DequeueCount メッセージが取得された合計回数
Priority メッセージの優先順位

特殊なエラー

エラーコード エラーメッセージ ステータスコード
QueueNotExist 指定された名前のキューは存在しません。 404
MessageNotExist メッセージが存在しません。 404

リクエストの例:

  1. GET /queues/$queueName/messages?numOfMessages=16 HTTP/1.1
  2. Host: $AccountId.mns.cn-hangzhou.aliyuncs.com
  3. Date: Wed, 28 May 2012 22:32:00 GMT
  4. x-mns-version: 2015-06-06
  5. Authorization: MNS 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXAMPLE

戻り値の例:

  1. HTTP/1.1 200 OK
  2. Connection:close
  3. Content-Type=text/xml;charset=utf-8
  4. Content-Length:500
  5. x-mns-request-id:512B2A634403E52B1956133E
  6. x-mns-version: 2015-06-06
  7. <?xml version="1.0” encoding=”UTF-8” ?>
  8. <Messages xmlns=”http://mns.aliyuncs.com/doc/v1/”>
  9. <Message>
  10. <MessageId>5F290C926D472878-2-14D9529A8FA-200000001</MessageId>
  11. <ReceiptHandle>1-ODU4OTkzNDU5My0xNDMyNzI3ODI3LTItOA==</ReceiptHandle>
  12. <MessageBodyMD5>C5DD56A39F5F7BB8B3337C6D11B6D8C7</MessageBodyMD5>
  13. <MessageBody>This is a test message</MessageBody>
  14. <EnqueueTime>1250700979248</EnqueueTime>
  15. <NextVisibleTime>1250700799348</NextVisibleTime>
  16. <FirstDequeueTime>1250700779318</FirstDequeueTime >
  17. <DequeueCount>1</DequeueCount>
  18. <Priority>8</Priority>
  19. </Message>
  20. <Message>
  21. <ReceiptHandle>1-ODU4OTkzNDU5My0xNDMyNzI3MjQwLTEtOA==</ReceiptHandle>
  22. <MessageBodyMD5>C5DD56A39F5F7BB8B3337C6D11B6D8C7</MessageBodyMD5>
  23. <MessageBody>This is a test message</MessageBody>
  24. <EnqueueTime>1250700979252</EnqueueTime>
  25. <NextVisibleTime>1250700799350</NextVisibleTime>
  26. <FirstDequeueTime>1250700779330</FirstDequeueTime >
  27. <DequeueCount>1</DequeueCount>
  28. <Priority>8</Priority>
  29. </Message>
  30. </Messages>

DeleteMessage

説明

このインターフェイスは、取得済みのメッセージを削除するために使用します。削除するメッセージを特定するために、前回の取得で入手した有効な ReceiptHandle が必要です。この削除操作を成功するためには、NextVisibleTime の前に実行する必要があります。NextVisibleTime が過ぎるとメッセージは再び Active になり、ReceiptHandle は無効になって、削除は失敗します。

リクエスト

リクエストには、主に次の項目があります。

  • リクエスト行

    DELETE/$queueName/messages?receiptHandle=<receiptHandle> HTTP/1.1

  • 特別な URI パラメーター

パラメーター名 説明 必須かどうか
ReceiptHandle 前回の取得で返された ReceiptHandle。詳細については、「ReceiveMessage インターフェイス」を参照してください。 必須
  • 特別なリクエストヘッダー

    なし。「パブリックリクエストヘッダー」を参照してください。

  • リクエスト本文

    なし。

応答

返されるメッセージには、戻りステータス行、HTTP ヘッダー、メッセージ本文の 3 つがあります。

  • HTTP ステータスコード

    HTTP/1.1 204 NoContent

  • 特別な応答ヘッダー

    なし。「パブリックリターンヘッダー」を参照してください。

  • 応答本文

    なし。

特殊なエラー

エラーコード エラーメッセージ ステータスコード
QueueNotExist 指定された名前のキューは存在しません。 404
InvalidArgument Element の値は、Low と High の間の秒数またはバイト数にする必要があります。 400
ReceiptHandleError 指定された受信ハンドルが無効です。 400

リクエストの例:

  1. DELETE /queues/$queueName/messages?ReceiptHandle=MbZj6wDWli+QEauMZc8ZRv37sIW2iJKq3M9Mx/KSbkJ0 HTTP/1.1
  2. Host: $AccountId.mns.cn-hangzhou.aliyuncs.com
  3. Date: Wed, 28 May 2012 22:32:00 GMT
  4. x-mns-version: 2015-06-06
  5. Authorization: MNS 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXAMPLE

戻り値の例:

  1. HTTP/1.1 204 NoContent
  2. x-mqs-request-id:512B2A634403E52B1956133E
  3. x-mqs-version: 2015-06-06

BatchDeleteMessage

説明

このインタフェースは、それぞれに対応するReceiptHandleを入力することにより、メッセージキュー内の複数のメッセージをバッチで最大16個削除するために使用されます。

このインタフェースは、BatchReceiveMessageとともに使用することをお勧めします。

バッチ操作の結果は、成功と失敗のサブリクエストの両方を含めることができます。すべてのサブリクエストが成功した場合にのみ、HTTP ステータスコードが 204 です。いくつかのサブ要求が失敗すると、そのサブリクエストのエラー情報を確認する必要があります。

リクエスト

リクエストには、主に次の項目があります:

  • リクエスト行

    DELETE /queues/$queueName/messages HTTP/1.1

  • 特別な URI パラメーター

    なし。

  • 特別な応答ヘッダー

    なし。「パブリックリターンヘッダー」を参照してください。

  • 応答本文

    結果は XML 形式で返されます。メッセージのメッセージ本文と属性が返されます。

応答

返されるメッセージには、戻りステータス行、HTTP ヘッダー、メッセージ本文の 3 つがあります。

  • HTTP ステータスコード

    HTTP/1.1 204 NoContent

  • 特別な応答ヘッダー

    なし。「パブリックリターンヘッダー」を参照してください。

  • 応答本文

    なし。

特殊なエラー

エラーコード エラーメッセージ ステータスコード
QueueNotExist 指定された名前のキューは存在しません。 404
InvalidArgument Element の値は、Low と High の間の秒数またはバイト数にする必要があります。 400
ReceiptHandleError 指定された受信ハンドルが無効です。 400

リクエストの例:

  1. DELETE /queues/$queueName/messages HTTP/1.1
  2. Host: $AccountId.mns.cn-hangzhou.aliyuncs.com
  3. Date: Wed, 28 May 2012 22:32:00 GMT
  4. x-mns-version: 2015-06-06
  5. Authorization: MNS 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXAMPLE
  6. <?xml version="1.0” encoding=”UTF-8” ?>
  7. <ReceiptHandles xmlns=”http://mns.aliyuncs.com/doc/v1/”>
  8. <ReceiptHandle>1-ODU4OTkzNDU5My0xNDM1MTk3NjAwLTItNg==</ReceiptHandle>
  9. <ReceiptHandle>1-ODU4OTkzNDU5NC0xNDM1MTk3NjAwLTItNg==</ReceiptHandle>
  10. <ReceiptHandle>1-ODU4OTkzNDU5NS0xNDM1MTk3NjAwLTItNg==</ReceiptHandle>
  11. </ReceiptHandles>

戻り値の例:

  • すべてのメッセージを削除します。

    1. HTTP/1.1 204 NoContent
    2. x-mns-request-id:512B2A634403E52B1956133E
    3. x-mns-version: 2015-06-06
  • 一部のメッセージを削除できませんでした。

    1. HTTP/1.1 404
    2. Connection:close
    3. Content-Type=text/xml;charset=utf-8
    4. Content-Length:500
    5. x-mns-request-id:512B2A634403E52B1956133E
    6. x-mns-version: 2015-06-06
    7. <?xml version="1.0” encoding=”UTF-8” ?>
    8. <Errors xmlns=”http://mns.aliyuncs.com/doc/v1/”>
    9. <Error>
    10. <ErrorCode>MessageNotExist</ErrorCode>
    11. <ErrorMessage>Message not exist.</ErrorMessage>
    12. <ReceiptHandle>1-ODU4OTkzNDU5My0xNDM1MTk3NjAwLTItNg==</ReceiptHandle>
    13. </Error>
    14. <Error>
    15. <ErrorCode>MessageNotExist</ErrorCode>
    16. <ErrorMessage>Message not exist.</ErrorMessage>
    17. <ReceiptHandle>1-ODU4OTkzNDU5NC0xNDM1MTk3NjAwLTItNg==</ReceiptHandle>
    18. </Error>
    19. </Errors>

PeekMessage

説明

このインターフェイスは、コンシューマーがメッセージを表示するために使用します。ReceiveMessage とは異なり、PeekMessage ではメッセージのステータスは変更されません。PeekMessage によってメッセージを取得した場合、メッセージは [Active] ステータスのままであり、表示や取得が可能です。しかし、メッセージを ReceiveMessage によって取得した場合、メッセージは [Inactive] ステータスに変わり、VisibilityTimeout 期間の間は表示も取得もできません。

リクエスト

リクエストには、主に次の項目があります。

  • リクエスト行

    GET /$queueName/messages?peekonly=true HTTP/1.1

  • URI パラメーター

    peekonly=true の場合、このリクエストを使用するとキュー内の最初のメッセージが表示されるだけで、メッセージのステータスは変更されません。

  • 特別なリクエストヘッダー

    なし。「パブリックリクエストヘッダー」を参照してください。

  • リクエスト本文

    なし。

応答

返されるメッセージには、戻りステータス行、HTTP ヘッダー、メッセージ本文の 3 つがあります。

  • HTTP ステータスコード

    HTTP/1.1 200 OK

  • 特別な応答ヘッダー

    なし。「パブリックリターンヘッダー」を参照してください。

  • 応答本文

    結果は XML 形式で返されます。メッセージのメッセージ本文と属性が返されます。

パラメーター名 説明
MessageId メッセージ ID、各キューの中で一意
MessageBody メッセージ本文
MessageBodyMD5 メッセージ本文の MD5 値
EnqueueTime メッセージがキューに送信された日時を 1970 年 1 月 1 日 0:00 からのミリ秒単位の経過時間で表した値
FirstDequeueTime メッセージが最初に取得された日時を 1970 年 1 月 1 日 0:00 からのミリ秒単位の経過時間で表した値。DequeueCount が 0 の場合、メッセージの EnqueueTime と同じ
DequeueCount メッセージが取得された合計回数
Priority メッセージの優先順位

特殊なエラー

エラーコード エラーメッセージ ステータスコード
QueueNotExist 指定された名前のキューは存在しません。 404
MessageNotExist メッセージが存在しません。 404

リクエストの例:

  1. GET /queues/$queueName/messages?peekonly=true HTTP/1.1
  2. Host: $AccountId.mns.cn-hangzhou.aliyuncs.com
  3. Date: Wed, 28 May 2012 22:32:00 GMT
  4. x-mns-version: 2015-06-06
  5. Authorization: MNS 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXAMPLE

戻り値の例:

  1. HTTP/1.1 200 OK
  2. Connection:close
  3. Content-Type=text/xml;charset=utf-8
  4. Content-Length:500
  5. x-mqs-request-id:512B2A634403E52B1956133E
  6. x-mqs-version: 2015-06-06
  7. <?xml version="1.0" encoding="UTF-8"?>
  8. <Message xmlns="http://mqs.aliyuncs.com/doc/v1/">
  9. <MessageId>D6D5F7C9C12D14A4-1-14D953EFC72-200000004</MessageId>
  10. <MessageBodyMD5>F9360F391579E71CA77BC5D50242FCF4</MessageBodyMD5>
  11. <MessageBody>This is a test message</MessageBody>
  12. <EnqueueTime>1250700979248</EnqueueTime>
  13. <FirstDequeueTime>1250700979348</FirstDequeueTime >
  14. <DequeueCount>5</DequeueCount>
  15. <Priority>8<Priority>
  16. </Message>

BatchPeekMessage

説明

このインターフェイスは、コンシューマーがメッセージを表示するために使用します。BatchReceiveMessage とは異なり、BatchPeekMessage ではメッセージのステータスは変更されません。BatchPeekMessage によってメッセージを取得した場合、メッセージは [Active] ステータスのままであり、表示や取得が可能です。しかし、メッセージを BatchReceiveMessage によって取得した場合、メッセージは [Inactive] ステータスに変わり、VisibilityTimeout 期間の間は表示も取得もできません。

リクエスト

リクエストには、主に次の項目があります。

  • リクエスト行

    GET /queues/$queueName/messages?peekonly=true&numOfMessages=16 HTTP/1.1

  • 特別なURI パラメーター

パラメーター名 説明 必須かどうか
peekonly=true このリクエストを使用するとキュー内の最初のメッセージが表示されるだけで、メッセージのステータスは変更されません。 必須
numOfMessages 現在のBatchPeekMessage操作で表示できるメッセージの最大数 必須
  • 特別なリクエストヘッダー

    なし。パブリックリクエストヘッダー を参照してください。

  • リクエスト本文

    なし。

応答

返されるメッセージには、戻りステータス行、HTTP ヘッダー、メッセージ本文の 3 つがあります。

  • HTTP ステータスコード

    HTTP/1.1 200 OK

  • 特別な応答ヘッダー

    なし。「パブリックリターンヘッダー」を参照してください。

  • 応答本文

    結果は XML 形式で返されます。メッセージのメッセージ本文と属性が返されます。

パラメーター名 説明
MessageId メッセージ ID、各キューの中で一意
MessageBody メッセージ本文
MessageBodyMD5 メッセージ本文の MD5 値
EnqueueTime メッセージがキューに送信された日時を 1970 年 1 月 1 日 0:00 からのミリ秒単位の経過時間で表した値
FirstDequeueTime メッセージが最初に取得された日時を 1970 年 1 月 1 日 0:00 からのミリ秒単位の経過時間で表した値。DequeueCount が 0 の場合、メッセージの EnqueueTime と同じ
DequeueCount メッセージが取得された合計回数
Priority メッセージの優先順位

特殊なエラー

エラーコード エラーメッセージ ステータスコード
QueueNotExist 指定された名前のキューは存在しません。 404
MessageNotExist メッセージが存在しません。 404

リクエストの例:

  1. GET /queues/$queueName/messages?peekonly=true&numOfMessages=16 HTTP/1.1
  2. Host: $AccountId.mns.cn-hangzhou.aliyuncs.com
  3. Date: Wed, 28 May 2012 22:32:00 GMT
  4. x-mns-version: 2015-06-06
  5. Authorization: MNS 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXAMPLE

戻り値の例:

  1. HTTP/1.1 200 OK
  2. Connection:close
  3. Content-Type=text/xml;charset=utf-8
  4. Content-Length:500
  5. x-mns-request-id:512B2A634403E52B1956133E
  6. x-mns-version: 2015-06-06
  7. <?xml version="1.0" encoding="UTF-8"?>
  8. <Messages xmlns=”http://mns.aliyuncs.com/doc/v1/”>
  9. <Message>
  10. <MessageId>D6D5F7C9C12D14A4-1-14D953EFC72-200000004</MessageId>
  11. <MessageBodyMD5>F9360F391579E71CA77BC5D50242FCF4</MessageBodyMD5>
  12. <MessageBody>This is a test message</MessageBody>
  13. <EnqueueTime>1250700979248</EnqueueTime>
  14. <FirstDequeueTime>1250700979348</FirstDequeueTime >
  15. <DequeueCount>5</DequeueCount>
  16. <Priority>8<Priority>
  17. </Message>
  18. <Message>
  19. <MessageId>D6D5F7C9C12D14A4-1-14D953EFC72-200000005</MessageId>
  20. <MessageBodyMD5>F9360F391579E71CA77BC5D50242FCF4</MessageBodyMD5>
  21. <MessageBody>This is a test message</MessageBody>
  22. <EnqueueTime>1250700979250</EnqueueTime>
  23. <FirstDequeueTime>1250700979352</FirstDequeueTime >
  24. <DequeueCount>5</DequeueCount>
  25. <Priority>8<Priority>
  26. </Message>
  27. </Messages>

ChangeMessageVisibility

説明

このインターフェイスは、取得されたメッセージがまだ [Inactive] ステータスの間に、次に取得できる日時を変更するために使用します。VisibilityTimeout を変更すると、新しい ReceiptHandle が返されます。

リクエスト

リクエストには、主に次の項目があります。

  • リクエスト行

    PUT /$queueName/messages?receiptHandle=<receiptHandle>&visibilityTimeout=<visibilitytimeout> HTTP/1.1

  • URI パラメーター

パラメーター名 説明 必須かどうか
ReceiptHandle 前回の取得の後で返された ReceiptHandle。詳細については、「ReceiveMessage インターフェイス」を参照してください。 必須
VisibilityTimeout 現在の日時と取得可能な日時の間の時間 (秒) 必須
  • 特別なリクエストヘッダー

    なし。「パブリックリクエストヘッダー」を参照してください。

  • リクエスト本文

    なし。

応答

返されるメッセージには、戻りステータス行、HTTP ヘッダー、メッセージ本文の 3 つがあります。

  • HTTP ステータスコード

    HTTP/1.1 200 OK

  • 特別な応答ヘッダー

  なし。「パブリックリターンヘッダー」を参照してください。

  • 応答本文
パラメーター名 説明
ReceiptHandle メッセージの VisibilityTimeout が変更された後で返された一時的なハンドル。まだ [Inactive] ステータスで、NextVisibleTime になる前のメッセージを削除または変更するために使用します。
NextVisibleTime メッセージを再度取得できる日時を 1970 年 1 月 1 日 0:00 からのミリ秒単位の経過時間で表した値。

特殊なエラー

エラーコード エラーメッセージ ステータスコード
QueueNotExist 指定された名前のキューは存在しません。 404
InvalidArgument Element の値は、Low と High の間の秒数またはバイト数にする必要があります。 400
MessageNotExist メッセージが存在しません。 404

リクエストの例:

  1. PUT /queueName/messages
  2. ?receiptHandle=MbZj6wDWli+QEauMZc8ZRv37sIW2iJKq3M9Mx/KSbkJ0&visibilityTimeout=50 HTTP/1.1
  3. Host: $AccountId.mqs-cn-hangzhou.aliyuncs.com
  4. Date: Wed, 28 May 2012 22:32:00 GMT
  5. x-mqs-version: 2014-07-08
  6. Authorization: MQS 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXAMPLE

戻り値の例:

  1. HTTP/1.1 200OK
  2. x-mqs-request-id:512B2A634403E52B1956133E
  3. x-mqs-version: 2015-06-06
  4. <?xml version="1.0" encoding="UTF-8" ?>
  5. <Message xmlns="http://mqs.aliyuncs.com/doc/v1/">
  6. <ReceiptHandle>
  7. TbZj6wDWli+9CEauMZc8ZRv37sIW2iJKq3M9Mx/TS1
  8. </ReceiptHandle >
  9. <NextVisibleTime>1250700979298000</NextVisibleTime>
  10. </Message>