QueueMessage は、Simple Message Queue (旧称 MNS) キューに送信されるメッセージを指定します。SMQ キューにメッセージを送信するときに、メッセージの本文、遅延時間、および優先度を指定できます。このトピックでは、キューメッセージのパラメーター、タイプ、およびステータスについて説明します。
パラメーター
MessageId
メッセージの ID です。
このパラメーターは、SendMessage、BatchSendMessage、ReceiveMessage、BatchReceiveMessage、PeekMessage、または BatchPeekMessage オペレーションを呼び出すときに返されます。
キュー内の各メッセージには、一意のメッセージ ID があります。
キューにメッセージを送信すると、SMQ はメッセージの ID を生成します。メッセージ ID が生成された後、変更することはできません。データ検証にメッセージ ID を使用できます。
NextVisibleTime
メッセージをコンシュームできる時刻です。この値は、エポックタイム 1970 年 1 月 1 日 00:00:00 UTC から経過したミリ秒数を表す UNIX タイムスタンプです。
このパラメーターは、ReceiveMessage、BatchReceiveMessage、または ChangeMessageVisibility オペレーションを呼び出すときに返されます。
ReceiptHandle
メッセージの受信ハンドルです。
このパラメーターは、ReceiveMessage、BatchReceiveMessage、または ChangeMessageVisibility オペレーションを呼び出すときに返されます。
メッセージの受信ハンドルを使用して、非アクティブ状態のメッセージを変更または削除できます。受信ハンドルは、NextVisibleTime パラメーターで指定された時刻より前に有効です。指定された時刻の後に受信ハンドルを使用すると、SMQ は MessageNotExist エラーメッセージを返します。
各受信ハンドルは 1 回だけ使用できます。受信ハンドルによって識別されるメッセージのステータスが変更されると、受信ハンドルは期限切れになります。
MessageBody
メッセージの本文です。
このパラメーターは、ReceiveMessage、BatchReceiveMessage、PeekMessage、または BatchPeekMessage オペレーションを呼び出すときに返されます。
MessageBodyMD5
メッセージ本文の MD5 ハッシュです。
このパラメーターは、SendMessage、BatchSendMessage、ReceiveMessage、BatchReceiveMessage、PeekMessage、または BatchPeekMessage オペレーションを呼び出すときに返されます。
EnqueueTime
メッセージがキューに送信された時刻です。この値は、エポックタイム 1970 年 1 月 1 日 00:00:00 UTC から経過したミリ秒数を表す UNIX タイムスタンプです。
このパラメーターは、ReceiveMessage、BatchReceiveMessage、PeekMessage、または BatchPeekMessage オペレーションを呼び出すときに返されます。
FirstDequeueTime
メッセージが最初にコンシュームされた時刻です。この値は、エポックタイム 1970 年 1 月 1 日 00:00:00 UTC から経過したミリ秒数を表す UNIX タイムスタンプです。
このパラメーターは、ReceiveMessage、BatchReceiveMessage、PeekMessage、または BatchPeekMessage オペレーションを呼び出すときに返されます。
メッセージがコンシュームされたことがない場合、このパラメーターの値は EnqueueTime パラメーターの値と同じです。
DequeueCount
メッセージがコンシュームされた合計回数です。
このパラメーターは、ReceiveMessage、BatchReceiveMessage、PeekMessage、または BatchPeekMessage オペレーションを呼び出すときに返されます。
Priority
メッセージの優先度です。有効な値:1 ~ 16。値 1 は最高の優先度を示します。
このパラメーターは、ReceiveMessage、BatchReceiveMessage、PeekMessage、または BatchPeekMessage オペレーションを呼び出すときに返されます。
キューに優先度の異なるメッセージが含まれている場合、ReceiveMessage オペレーションを呼び出すと、優先度の高いメッセージを先にコンシュームできます。
SMQ は、データストライピング機能のため、メッセージがコンシュームされる順序を保証しません。
メッセージタイプ
遅延メッセージ
遅延メッセージがキューに送信された後、DelaySeconds パラメーターで指定された期間が終了するまで、メッセージをコンシュームすることはできません。
キューの DelaySeconds パラメーターを指定できます。SendMessage または BatchSendMessage オペレーションを呼び出すときに DelaySeconds パラメーターを指定することもできます。
メッセージステータス
標準メッセージが標準キューに送信されると、メッセージはアクティブ状態になります。メッセージが受信されると、メッセージは非アクティブ状態になります。メッセージは、VisibilityTimeout パラメーターで指定された期間内に非アクティブ状態のままになります。指定された期間内にメッセージがコンシュームされない場合、メッセージはアクティブ状態になります。指定された期間内にメッセージが削除されると、メッセージは削除済み状態になります。
標準メッセージが遅延キューに送信されると、メッセージは遅延状態になります。DelaySeconds パラメーターで指定された期間が終了すると、メッセージはアクティブ状態になります。
遅延メッセージがキューに送信されると、メッセージは遅延状態になります。DelaySeconds パラメーターで指定された期間が終了すると、メッセージはアクティブ状態になります。
メッセージをキューに保持できる最大期間は、MessageRetentionPeriod パラメーターで指定されます。指定された期間が終了すると、メッセージは期限切れ状態になります。その後、メッセージはガベージコレクターによってリサイクルされます。
アクティブ状態のメッセージのみを受信できます。