キュー内のメッセージの状態を変更せずに表示します。
説明
`PeekMessage` は、検査のみを目的として、指定されたキューからメッセージを取得します。「ReceiveMessage」とは異なり、この操作はメッセージの状態を変更しません。メッセージは Active 状態のままであり、他のコンシューマーも引き続き利用できます。
返される各メッセージについて、レスポンスには以下が含まれます。
メッセージ本文とその MD5 ハッシュ
キュー内で一意のメッセージ ID
メッセージの優先度
エンキュータイムスタンプ
最初のデキュータイムスタンプと合計デキュー回数
PeekMessage は 受信ハンドル を返しません。受信ハンドルがないと、メッセージを削除したり、その可視性タイムアウトを変更したりすることはできません。キューからメッセージを消費および削除するには、代わりに ReceiveMessage を使用してください。PeekMessage と ReceiveMessage の比較
| 動作 | PeekMessage | ReceiveMessage |
|---|---|---|
| 呼び出し後のメッセージの状態 | 引き続き[アクティブ] | [非アクティブ] |
| 他のコンシューマーへの可視性 | 表示されたまま | VisibilityTimeout の期間中は非表示 |
ReceiptHandle 応答内 | なし | はい |
| 呼び出し後のメッセージ削除 | 不可 | 可 (ReceiptHandle を使用) |
権限承認
デフォルトでは、Alibaba Cloud アカウントのみがこの操作を呼び出すことができます。RAM ユーザーには、必要な権限が付与されている必要があります。詳細については、「権限ポリシーと例」をご参照ください。
| 項目 | 値 |
|---|---|
| API オペレーション | PeekMessage |
| アクション | mns:PeekMessage |
| リソース | acs:mns:$region:$accountid:/queues/$queueName/messages |
リクエスト構文
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。 |
| 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 の場合、この値は EnqueueTime と等しくなります。 |
| DequeueCount | Integer | 5 | メッセージがデキューされた合計回数。 |
| Priority | Integer | 8 | メッセージの優先度。 |
ReceiveMessage とは異なり、PeekMessage のレスポンスには ReceiptHandle 要素は含まれません。例
リクエスト例
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 | 404 | The queue name you provided is not exist. | 指定されたキューは存在しません。キュー名とリージョンを確認するか、先にキューを作成してください。 |
| MessageNotExist | 404 | Message not exist. | 表示できるメッセージがありません。キューが空であるか、すべてのメッセージが 非アクティブ 状態 (消費されたがまだ削除されていない) です。 |