Colocar Mensagem
A Put Message
operação adiciona uma nova mensagem à parte de trás da fila de mensagens. Também é possível especificar um tempo limite de visibilidade para tornar a mensagem invisível até que o tempo limite de visibilidade expire. Uma mensagem tem de estar num formato que possa ser incluído num pedido XML com codificação UTF-8. A mensagem codificada pode ter até 64 kibibytes (KiB) em tamanho para a versão 2011-08-18 e posterior, ou 8 KiB para versões anteriores.
Pedir
Pode construir o pedido da Put Message
seguinte forma. Recomendamos que utilize HTTPS. Substitua myaccount pelo nome da sua conta de armazenamento e myqueue
pelo nome da fila:
Método | URI do pedido | Versão HTTP |
---|---|---|
POST |
https://myaccount.queue.core.windows.net/myqueue/messages?visibilitytimeout=<int-seconds>&messagettl=<int-seconds> |
HTTP/1.1 |
Pedido de serviço de armazenamento emulado
Quando estiver a fazer um pedido relativamente ao serviço de armazenamento emulado, especifique o nome do anfitrião do emulador e a porta de armazenamento fila como 127.0.0.1:10001
, seguido do nome da conta de armazenamento emulada:
Método | URI do pedido | Versão HTTP |
---|---|---|
POST |
http://127.0.0.1:10001/devstoreaccount1/myqueue/messages?visibilitytimeout=<int-seconds>&messagettl=<int-seconds> |
HTTP/1.1 |
Para obter mais informações, veja Utilizar o emulador do Azurite para o desenvolvimento local do Armazenamento do Azure.
Parâmetros URI
Pode especificar os seguintes parâmetros no URI do pedido:
Parâmetro | Description |
---|---|
visibilitytimeout=<int=seconds> |
Opcional. Especifica o novo valor de tempo limite de visibilidade, em segundos, em relação à hora do servidor. Se for especificado, o pedido tem de ser feito através de um x-ms-version 2011-08-18 ou posterior. Se não for especificado, o valor predefinido é 0. O novo valor tem de ser maior ou igual a 0 e não pode ser superior a 7 dias. O tempo limite de visibilidade de uma mensagem não pode ser definido para um valor posterior à data de expiração. Defina visibilitytimeout como um valor menor do que o valor time-to-live. |
messagettl=<int-seconds> |
Opcional. Especifica o intervalo de tempo em direto para a mensagem, em segundos. Em versões anteriores a 2017-07-29, o tempo máximo permitido é de 7 dias. Para a versão 2017-07-29 e posterior, o tempo máximo de vida pode ser qualquer número positivo e -1 , o que indica que a mensagem não expira. Se este parâmetro for omitido, o tempo de vida predefinido é de 7 dias. |
timeout |
Opcional. O timeout parâmetro é expresso em segundos. Para obter mais informações, veja Definir tempos limite para operações do serviço Fila. |
Cabeçalhos do pedido
Os cabeçalhos de pedido obrigatórios e opcionais estão descritos na seguinte tabela:
Cabeçalho do pedido | Description |
---|---|
Authorization |
Obrigatório. Especifica o esquema de autorização, o nome da conta e a assinatura. Para obter mais informações, veja Autorizar pedidos para o Armazenamento do Azure. |
Date or x-ms-date |
Obrigatório. Especifica a Hora Universal Coordenada (UTC) do pedido. Para obter mais informações, veja Autorizar pedidos para o Armazenamento do Azure. |
x-ms-version |
Opcional. Especifica a versão da operação a utilizar para este pedido. Para obter mais informações, veja Controlo de versões dos serviços de Armazenamento do Azure. |
x-ms-client-request-id |
Opcional. Fornece um valor opaco gerado pelo cliente com um limite de carateres de 1 kibibyte (KiB) que é registado nos registos quando o registo é configurado. Recomendamos vivamente que utilize este cabeçalho para correlacionar as atividades do lado do cliente com os pedidos que o servidor recebe. |
Corpo do pedido
O corpo do pedido contém os dados da mensagem no seguinte formato XML. Tenha em atenção que o conteúdo da mensagem tem de estar num formato que possa ser codificado com UTF-8.
<QueueMessage>
<MessageText>message-content</MessageText>
</QueueMessage>
Pedido de exemplo
Request:
POST https://myaccount.queue.core.windows.net/messages?visibilitytimeout=30&timeout=30 HTTP/1.1
Headers:
x-ms-version: 2011-08-18
x-ms-date: Tue, 30 Aug 2011 01:03:21 GMT
Authorization: SharedKey myaccount:sr8rIheJmCd6npMSx7DfAY3L//V3uWvSXOzUBCV9wnk=
Content-Length: 100
Body:
<QueueMessage>
<MessageText>PHNhbXBsZT5zYW1wbGUgbWVzc2FnZTwvc2FtcGxlPg==</MessageText>
</QueueMessage>
Resposta
A resposta inclui um código de estado HTTP e um conjunto de cabeçalhos de resposta.
Código de estado
Uma operação bem-sucedida devolve o código de estado 201 (Criado).
Para obter mais informações sobre códigos de estado, veja Códigos de estado e de erro.
Cabeçalhos de resposta
A resposta para esta operação inclui os seguintes cabeçalhos. A resposta também pode incluir cabeçalhos HTTP padrão adicionais. Todos os cabeçalhos padrão estão em conformidade com a especificação do protocolo HTTP/1.1.
Cabeçalho do pedido | Description |
---|---|
x-ms-request-id |
Identifica exclusivamente o pedido que foi feito e pode utilizá-lo para resolver o pedido. Para obter mais informações, veja Resolver problemas de operações da API. |
x-ms-version |
Indica a versão do serviço Fila que foi utilizada para executar o pedido. Este cabeçalho é devolvido para pedidos efetuados na versão 2009-09-19 e posterior. |
Date |
Um valor de data/hora UTC gerado pelo serviço, que indica a hora em que a resposta foi iniciada. |
x-ms-client-request-id |
Este cabeçalho pode ser utilizado para resolver problemas de pedidos e respostas correspondentes. O valor deste cabeçalho é igual ao valor do x-ms-client-request-id cabeçalho se estiver presente no pedido e o valor não contiver mais de 1024 carateres ASCII visíveis. Se o x-ms-client-request-id cabeçalho não estiver presente no pedido, não estará presente na resposta. |
Corpo da resposta
A partir da versão 2016-05-31, a resposta para a Put Message
operação contém as informações da mensagem no corpo da resposta. O formato XML do corpo devolvido é descrito aqui.
O MessageID
elemento é um valor GUID que identifica a mensagem na fila. Este valor é atribuído à mensagem pelo Armazenamento de Filas e é opaco para o cliente. Este valor pode ser utilizado em conjunto com o valor do elemento PopReceipt para eliminar ou atualizar uma mensagem da fila. O valor de PopReceipt também é opaco para o cliente e é necessário quando estiver a utilizar as APIs Eliminar Mensagem ou Atualizar Mensagem.
Os InsertionTime
elementos , ExpirationTime
e TimeNextVisible
são representados como valores UTC e formatados conforme descrito em RFC 1123.
<QueueMessagesList>
<QueueMessage>
<MessageId>string-message-id</MessageId>
<InsertionTime>insertion-time</InsertionTime>
<ExpirationTime>expiration-time</ExpirationTime>
<PopReceipt>opaque-string-receipt-data</PopReceipt>
<TimeNextVisible>time-next-visible</TimeNextVisible>
</QueueMessage>
</QueueMessagesList>
Resposta de amostra
Response Status:
HTTP/1.1 200 OK
Response headers:
Transfer-Encoding: chunked
Content-Type: application/xml
x-ms-version: 2016-05-31
Date: Fri, 09 Oct 2016 21:04:30 GMT
Server: Windows-Azure-Queue/1.0 Microsoft-HTTPAPI/2.0
Response Body:
<?xml version="1.0" encoding="utf-8"?>
<QueueMessagesList>
<QueueMessage>
<MessageId>5974b586-0df3-4e2d-ad0c-18e3892bfca2</MessageId>
<InsertionTime>Fri, 09 Oct 2016 21:04:30 GMT</InsertionTime>
<ExpirationTime>Fri, 16 Oct 2016 21:04:30 GMT</ExpirationTime>
<PopReceipt>YzQ4Yzg1MDItYTc0Ny00OWNjLTkxYTUtZGM0MDFiZDAwYzEw</PopReceipt>
<TimeNextVisible>Fri, 09 Oct 2016 23:29:20 GMT</TimeNextVisible>
</QueueMessage>
</QueueMessagesList>
Autorização
Esta operação pode ser efetuada pelo proprietário da conta e por qualquer pessoa com uma assinatura de acesso partilhado com permissões para efetuar esta operação.
Observações
O tempo limite de visibilidade opcional especifica a hora em que a mensagem é invisível. Quando o tempo limite expirar, a mensagem fica visível. Se não especificar um tempo limite de visibilidade, é utilizado o valor predefinido de 0.
A mensagem opcional time-to-live especifica quanto tempo uma mensagem permanece na fila. A mensagem é eliminada da fila quando o período de tempo de vida expirar.
Uma mensagem tem de estar num formato que possa ser incluído num pedido XML com codificação UTF-8. Para incluir marcações na mensagem, o conteúdo da mensagem tem de ser XML escaped ou Base64-encode. Qualquer marcação XML na mensagem que não seja escapada ou codificada é removida antes de a mensagem ser adicionada à fila.
Se a mensagem for demasiado grande, o serviço devolve o código de estado 400 (Pedido Incorreto).
Ver também
Autorizar pedidos para o Armazenamento do Azure
Códigos de estado e de erro
Códigos de erro do serviço fila