Visualiza uma mensagem em uma fila sem alterar seu estado.
Descrição
PeekMessage recupera uma mensagem da fila especificada somente para inspeção. Diferentemente de ReceiveMessage, esta operação não altera o estado da mensagem — a mensagem permanece no estado Active e continua disponível para outros consumidores.
Para cada mensagem retornada, a resposta inclui:
O corpo da mensagem e seu hash MD5
O ID da mensagem, exclusivo dentro da fila
A prioridade da mensagem
O timestamp de enfileiramento
O timestamp do primeiro desenfileiramento e a contagem total de desenfileiramentos
PeekMessage não retorna um ReceiptHandle. Sem um receipt handle, não é possível excluir a mensagem nem alterar seu timeout de visibilidade. Para consumir e remover uma mensagem da fila, use ReceiveMessage.PeekMessage vs. ReceiveMessage
| Comportamento | PeekMessage | ReceiveMessage |
|---|---|---|
| Estado da mensagem após a chamada | Permanece Active | Muda para Inactive |
| Visibilidade para outros consumidores | Ainda visível | Oculta durante o período de VisibilityTimeout |
ReceiptHandle na resposta | Não | Sim |
| Pode excluir a mensagem após a chamada | Não | Sim (com ReceiptHandle) |
Autorização
Por padrão, somente contas do Alibaba Cloud podem chamar esta operação. Usuários RAM precisam ter as permissões necessárias concedidas. Para mais informações, consulte Políticas de permissão e exemplos.
| Item | Valor |
|---|---|
| Operação de API | PeekMessage |
| Ação | mns:PeekMessage |
| Recurso | acs:mns:$region:$accountid:/queues/$queueName/messages |
Sintaxe da solicitação
GET /queues/$queueName/messages?peekonly=true HTTP/1.1Parâmetros de URI
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
peekonly | Sim | Deve ser true. Visualiza a mensagem sem alterar seu estado. |
Cabeçalhos de solicitação
Sem cabeçalhos específicos da operação. Somente os cabeçalhos de solicitação comuns são obrigatórios.
Corpo da solicitação
Nenhum.
Resposta
Código de status HTTP
Uma solicitação bem-sucedida retorna HTTP/1.1 200 OK.
Cabeçalhos de resposta
Sem cabeçalhos específicos da operação. Somente os cabeçalhos de resposta comuns são retornados.
Corpo da resposta
O corpo da resposta está no formato XML e contém os seguintes elementos:
| Parâmetro | Tipo | Exemplo | Descrição |
|---|---|---|---|
| MessageId | String | D6D5F7C9C12D14A4-1-14D953EFC72-20000**** | O ID exclusivo da mensagem dentro da fila. |
| MessageBody | String | This is a test message. | O corpo da mensagem. |
| MessageBodyMD5 | String | F9360F391579E71CA77BC5D50242**** | O hash MD5 do corpo da mensagem. |
| EnqueueTime | Long | 1250700979248 | O horário em que a mensagem foi enviada para a fila. Timestamp UNIX em milissegundos desde 1º de janeiro de 1970, 00:00:00 UTC. |
| FirstDequeueTime | Long | 1250700979348 | O horário em que a mensagem foi desenfileirada pela primeira vez. Timestamp UNIX em milissegundos desde 1º de janeiro de 1970, 00:00:00 UTC. Se DequeueCount for 0, este valor será igual a EnqueueTime. |
| DequeueCount | Integer | 5 | O número total de vezes que a mensagem foi desenfileirada. |
| Priority | Integer | 8 | A prioridade da mensagem. |
Diferentemente de ReceiveMessage, a resposta de PeekMessage não inclui um elemento ReceiptHandle.Exemplos
Exemplo de solicitação
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****Exemplo de resposta
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>Códigos de erro
A tabela a seguir lista os códigos de erro específicos desta operação. Para códigos de erro comuns, consulte Respostas de erro.
| Código de erro | Código de status HTTP | Mensagem de erro | Descrição |
|---|---|---|---|
| QueueNotExist | 404 | The queue name you provided is not exist. | A fila especificada não existe. Verifique o nome e a região da fila, ou crie a fila primeiro. |
| MessageNotExist | 404 | Message not exist. | Nenhuma mensagem disponível para visualização. A fila está vazia ou todas as mensagens estão no estado Inactive (consumidas, mas ainda não excluídas). |