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

Simple Message Queue (formerly MNS):ReceiveMessage

最終更新日:Mar 12, 2026

キューからメッセージを受信し、キューの VisibilityTimeout 期間中、メッセージを非アクティブ状態に設定します。DeleteMessage を呼び出して、この期間が終了する前にメッセージを完全に削除してください。期間内に削除されない場合、メッセージはアクティブ状態に戻り、再度消費可能になります。

権限情報

デフォルトでは、Alibaba Cloud アカウント (root ユーザー) のみがこの操作を呼び出すことができます。Resource Access Management (RAM) ユーザーとしてこの操作を呼び出すには、RAM ユーザーに必要な権限を付与する必要があります。詳細については、「権限ポリシーと例」をご参照ください。

項目
API オペレーションReceiveMessage
アクションmns:ReceiveMessage
リソースacs:mns:$region:$accountid:/queues/$queueName/messages

リクエスト構文

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

この操作には、操作固有のリクエストヘッダーやリクエストボディはありません。

URI パラメーター

パラメーター必須説明
waitsecondsIntegerいいえ0メッセージが利用できない場合の最大待機時間 (秒単位) です。省略した場合、キューの PollingWaitSeconds の値が適用されます。詳細については、「CreateQueue」をご参照ください。

ロングポーリングの動作

waitseconds が設定されている場合 (またはキューのデフォルトの PollingWaitSeconds が適用される場合)、サーバーはメッセージが到着するか、待機期間が終了するまで接続を保持します。この期間中にキューに書き込まれたメッセージは、すぐに配信されます。

同時ロングポーリングリクエストの数を減らし、適切な待機期間を指定することを推奨します。詳細については、「ショートポーリングとロングポーリング」をご参照ください。

説明

Simple Message Queue (SMQ、旧 MNS) は、リクエストの総数、待機期間、および送信元 IP アドレスに基づいて、同時ロングポーリングリクエストを制限します。この制限を超えると、SMQ はリクエストを保持せずにすぐに 404 MessageNotExist エラーを返し、標準のリクエスト料金が適用されます。この制限を引き上げるには、してください

レスポンス

HTTP ステータスコード

HTTP/1.1 200 OK

この操作には、操作固有のレスポンスヘッダーはありません。

レスポンスボディ

レスポンスボディは XML フォーマットで、次の情報が含まれます。

  • メッセージ本文とその MD5 ハッシュ

  • 一意のメッセージ ID

  • メッセージが非アクティブ状態の間に、そのメッセージを削除または変更するための受信ハンドル

  • タイムスタンプ:エンキュー時間、初回デキュー時間、次回可視時間

  • デキュー回数

パラメーター説明
MessageIdString5F290C926D472878-2-14D9529A8FA-20000\*\*\*\*キュー内でメッセージを一意に識別する ID。
ReceiptHandleString1-ODU4OTkzNDU5My0xNDMyNzI3ODI3LTItOA==メッセージが非アクティブ状態の間、メッセージを削除または変更するためのハンドルです。DeleteMessageChangeMessageVisibility または を呼び出すときにこの値を使用します。NextVisibleTime まで有効です。
MessageBodyStringThis is a test messageメッセージのコンテンツ。
MessageBodyMD5StringC5DD56A39F5F7BB8B3337C6D11B6\*\*\*\*メッセージ本文の MD5 ハッシュ。
EnqueueTimeLong1250700979248メッセージがキューに送信された時刻。1970 年 1 月 1 日 00:00:00 (協定世界時 (UTC)) からの UNIX タイムスタンプ (ミリ秒単位)。
NextVisibleTimeLong1250700799348削除されない場合にメッセージが再び可視になる時刻。1970 年 1 月 1 日 00:00:00 (協定世界時 (UTC)) からの UNIX タイムスタンプ (ミリ秒単位)。
FirstDequeueTimeLong1250700779318メッセージが最初に消費された時刻。1970 年 1 月 1 日 00:00:00 (協定世界時 (UTC)) からの UNIX タイムスタンプ (ミリ秒単位)。
DequeueCountInteger1メッセージが消費された回数。

リクエスト例

GET /queues/$queueName/messages 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
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>5F290C926D472878-2-14D9529A8FA-20000****</MessageId>
    <ReceiptHandle>1-ODU4OTkzNDU5My0xNDMyNzI3ODI3LTItOA==</ReceiptHandle>
    <MessageBodyMD5>C5DD56A39F5F7BB8B3337C6D11B6****</MessageBodyMD5>
    <MessageBody>This is a test message</MessageBody>
    <EnqueueTime>1250700979248</EnqueueTime>
    <NextVisibleTime>1250700799348</NextVisibleTime>
    <FirstDequeueTime>1250700779318</FirstDequeueTime>
    <DequeueCount>1</DequeueCount>
    <Priority>8</Priority>
</Message>

エラーコード

エラーコードエラーメッセージHTTP ステータスコード説明
QueueNotExistThe queue name you provided is not exist.404指定されたキューは存在しません。この操作を呼び出す前にキューを作成してください。
MessageNotExistMessage not exist.404キューに可視メッセージが存在しません。

次のステップ

  • 複数のメッセージを1回の呼び出しで受信する: BatchReceiveMessage

  • 消費されたメッセージを削除する場合:DeleteMessage

  • VisibilityTimeoutPollingWaitSeconds などのキュー属性を設定する場合:CreateQueue