メッセージを照会します。
認証
デフォルトでは、Alibaba Cloudアカウントのみがこの操作を呼び出すことができます。 RAMユーザーは、関連する権限が付与された後にのみ、この操作を呼び出すことができます。次の表に、この操作の認証情報を示します。詳細については、「アクセス許可ポリシーと例」をご参照ください。
項目 | 値 |
API操作 | PeekMessage |
アクション | mns:PeekMessage |
リソース | acs:mns:$region:$accountid:/queues/$queueName/messages |
説明
この操作を呼び出して、メッセージを照会できます。 ReceiveMessage操作とは異なり、PeekMessage操作はメッセージの状態を変更しません。 PeekMessage操作を呼び出してメッセージを表示した後も、メッセージはアクティブ状態のままになり、引き続き表示または消費できます。ただし、ReceiveMessage操作を呼び出してメッセージを受信すると、メッセージの状態は非アクティブに変わります。その後、VisibilityTimeout パラメーターで指定された期間内は、他のクライアントがメッセージを表示または消費することはできません。
リクエスト
リクエストは、次の部分で構成されます。
リクエスト行
GET /queues/$queueName/messages?peekonly=true HTTP/1.1URIパラメーター
peekonly=trueは、このリクエストがキュー内のメッセージを表示するためにのみ使用され、メッセージの状態は変更されないことを示します。操作固有のリクエストヘッダー
なし。
リクエスト本文
なし。
レスポンス
レスポンスは、次の部分で構成されます。
HTTPステータスコード
HTTP/1.1 200 OK操作固有のレスポンスヘッダー
なし。
レスポンス本文
レスポンス本文はXML形式です。メッセージの本文とパラメーターが返されます。
パラメーター
タイプ
例
説明
MessageId
String
D6D5F7C9C12D14A4-1-14D953EFC72-20000****
メッセージのID。メッセージIDは、キュー内で一意です。
MessageBody
String
This is a test message.
メッセージの本文。
MessageBodyMD5
String
F9360F391579E71CA77BC5D50242****
メッセージ本文のMD5ハッシュ。
EnqueueTime
Long
1250700979248
メッセージがキューに送信された時刻。この値は、エポックタイム1970年1月1日00:00:00 UTCからの経過ミリ秒数を表すUNIXタイムスタンプです。
FirstDequeueTime
Long
1250700979348
メッセージが最初に消費された時刻。この値は、エポックタイム1970年1月1日00:00:00 UTCからの経過ミリ秒数を表すUNIXタイムスタンプです。
DequeueCountパラメーターの値が 0 の場合、FirstDequeueTimeパラメーターの値はEnqueueTimeパラメーターの値と同じです。DequeueCount
Integer
5
メッセージが消費された合計回数。
例
リクエストの例
GET /queues/$queueName/messages?peekonly=true HTTP/1.1
Host: $AccountId.mns.cn-hangzhou.aliyuncs.com
Date: Wed, 28 May 2012 22:32:00 GMT
x-mns-version: 2015-06-06
Authorization: MNS 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXA**** 成功レスポンスの例
HTTP/1.1 200 OK
Connection:close
Content-Type=text/xml;charset=utf-8
Content-Length:500
x-mns-request-id:512B2A634403E52B1956****
x-mns-version: 2015-06-06
<?xml version="1.0" encoding="UTF-8"?>
<Message xmlns="http://mns.aliyuncs.com/doc/v1/">
<MessageId>D6D5F7C9C12D14A4-1-14D953EFC72-20000****</MessageId>
<MessageBodyMD5>F9360F391579E71CA77BC5D50242****</MessageBodyMD5>
<MessageBody>This is a test message.</MessageBody>
<EnqueueTime>1250700979248</EnqueueTime>
<FirstDequeueTime>1250700979348</FirstDequeueTime >
<DequeueCount>5</DequeueCount>
<Priority>8<Priority>
</Message> エラーコード
エラーコード | エラーメッセージ | HTTPステータスコード | 説明 |
QueueNotExist | The queue name you provided is not exist. | 404 | 指定されたキューが存在しないために返されるエラーメッセージです。キューを作成してください。 |
MessageNotExist | Message not exist. | 404 | キューに表示可能なメッセージが存在しないために返されるエラーメッセージです。 |