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

:メッセージ関連の操作

最終更新日:Mar 22, 2020

SendMessage

説明

このインターフェイスは、指定されたメッセージキューにメッセージを送信するために使用します。コンシューマーは、一般的なメッセージを、メッセージキューに送信された後すぐに取得できます。プロデューサーは、メッセージがすぐに取得される見込みがない場合 (一般的なシナリオはスケジュール済みタスクです)、メッセージの送信時に DelaySeconds パラメーターを設定することができます。DelaySeconds 値が正の値であるメッセージは、初期ステータスが 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

応答

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

  • HTTP ステータスコード

    HTTP/1.1 201 Created

  • 特別な応答ヘッダー

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

  • 応答本文

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

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

特殊なエラー

エラーコード エラーメッセージ ステータスコード
QueueNotExist 指定された名前のキューは存在しません。 404
MalformedXML 指定された XML の形式が誤っています。 400
InvalidArgument Element の値は、Low と High の間の秒数またはバイト数にする必要があります。 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-mns-request-id:512B2A634403E52B1956133E
  6. x-mns-version: 2015-06-06
  7. <?xml version="1.0" encoding="UTF-8" ?>
  8. <Message xmlns="http://mns.aliyuncs.com/doc/v1/">
  9. <MessageId>
  10. 5F290C926D472878-2-14D9529A8FA-200000001
  11. </MessageId>
  12. <MessageBodyMD5>
  13. C5DD56A39F5F7BB8B3337C6D11B6D8C7
  14. </MessageBodyMD5>
  15. </Message>

BatchSendMessage

説明

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

コンシューマーは、一般的なメッセージを、メッセージキューに送信された後すぐに取得できます。プロデューサーは、メッセージがすぐに取得される見込みがない場合 (一般的なシナリオはスケジュール済みタスクです)、メッセージの送信時に DelaySeconds パラメーターを設定することができます。DelaySeconds 値が正の値であるメッセージは、初期ステータスが 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

応答

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

  • HTTP ステータスコード

    HTTP/1.1 201 Created

  • 特別な応答ヘッダー

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

  • 応答本文

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

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

特殊なエラー:

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

応答の例:

  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. <Message xmlns="http://mns.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

説明

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

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

リクエスト

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

  • リクエスト行

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

  • 特別な URI パラメーター

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

注意:

BatchReceiveMessage リクエストで waitseconds パラメーターが指定されている場合、その BatchReceiveMessage リクエストのポーリング待ち時間は 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 /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 は無効になって削除は失敗するので、新しい ReceiptHandle を取得する必要があります。

リクエスト

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

  • リクエスト行

    DELETE /queues/$queueName/messages?ReceiptHandle=<receiptHandleHTTP/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-mns-request-id:512B2A634403E52B1956133E
  3. x-mns-version: 2015-06-06

BatchDeleteMessage

説明

このインターフェイスは、メッセージキュー内のメッセージをバッチ削除するために使用します。削除できるメッセージの数の上限は 16 です。メッセージごとに、対応する ReceiptHandle を入力する必要があります。

効率を高めるために、このインターフェイスは BatchReceiveMessage と組み合わせて使用することをお勧めします。

このバッチ操作の結果には、成功したサブリクエストと失敗したサブリクエストが混在する可能性があります。HTTP ステータスコードは、すべてのサブリクエストが成功した場合に限り 204 になります。失敗したサブリクエストがある場合は、応答に含まれるすべてのサブリクエストのエラー情報を確認します。

リクエスト

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

  • リクエスト行

    DELETE /queues/$queueName/messages HTTP/1.1

  • 特別な URI パラメーター

    なし

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

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

  • リクエスト本文

    リクエスト本文は、XML 形式です。XML には、複数のメッセージの ReceiptHandles が含まれます。

応答

返されるメッセージには、戻りステータス行、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 /queues/$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-mns-request-id:512B2A634403E52B1956133E
  6. x-mns-version: 2015-06-06
  7. <?xml version="1.0" encoding="UTF-8"?>
  8. <Message xmlns="http://mns.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

説明

このインターフェイスは、コンシューマーがメッセージをバッチ表示するために使用します。最大で 16 件のメッセージを同時に表示できます。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 /queues/$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 /queues/$queueName/messages
  2. ?receiptHandle=MbZj6wDWli+QEauMZc8ZRv37sIW2iJKq3M9Mx/KSbkJ0&visibilityTimeout=50 HTTP/1.1
  3. Host: $AccountId.mns.cn-hangzhou.aliyuncs.com
  4. Date: Wed, 28 May 2012 22:32:00 GMT
  5. x-mns-version: 2015-06-06
  6. Authorization: MNS 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXAMPLE

応答の例:

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