Vložit zprávu

Operace Put Message přidá novou zprávu do zadní části fronty zpráv. Je také možné zadat časový limit viditelnosti, aby zpráva byla neviditelná, dokud nevyprší časový limit viditelnosti. Zpráva musí být ve formátu, který lze zahrnout do požadavku XML s kódováním UTF-8. Zakódovaná zpráva může mít velikost až 64 kibibajtů (KiB) pro verzi 2011-08-18 a novější nebo 8 KiB pro starší verze.

Žádost

Požadavek můžete vytvořit Put Message následujícím způsobem. Doporučujeme použít https. Nahraďte myaccount názvem vašeho účtu úložiště a myqueue názvem vaší fronty:

Metoda Identifikátor URI žádosti Verze PROTOKOLU HTTP
POST https://myaccount.queue.core.windows.net/myqueue/messages?visibilitytimeout=<int-seconds>&messagettl=<int-seconds> HTTP/1.1

Žádost o službu emulovaného úložiště

Když vytváříte požadavek na službu emulovaného úložiště, zadejte název hostitele emulátoru a port úložiště fronty jako 127.0.0.1:10001a název emulovaného účtu úložiště:

Metoda Identifikátor URI žádosti Verze PROTOKOLU HTTP
POST http://127.0.0.1:10001/devstoreaccount1/myqueue/messages?visibilitytimeout=<int-seconds>&messagettl=<int-seconds> HTTP/1.1

Další informace najdete v tématu Použití emulátoru Azurite pro místní vývoj služby Azure Storage.

Parametry identifikátoru URI

V identifikátoru URI požadavku můžete zadat následující parametry:

Parametr Popis
visibilitytimeout=<int=seconds> Nepovinný parametr. Určuje novou hodnotu časového limitu viditelnosti v sekundách vzhledem k času serveru. Pokud je zadaný, musí být požadavek proveden pomocí x-ms-version 2011-08-18 nebo novější. Pokud není zadaný, výchozí hodnota je 0. Nová hodnota musí být větší než nebo rovna 0 a nesmí být větší než 7 dnů. Časový limit viditelnosti zprávy nelze nastavit na hodnotu, která je pozdější než datum vypršení platnosti. Nastavte visibilitytimeout na hodnotu menší než hodnota time-to-live.
messagettl=<int-seconds> Nepovinný parametr. Určuje časový interval zprávy v sekundách. Ve verzích starších než 29. 7. 2017 je maximální povolená doba trvání 7 dnů. Pro verzi 2017-07-29 a novější může být maximální hodnota time-to-live libovolné kladné číslo a -1, což značí, že platnost zprávy nevyprší. Pokud je tento parametr vynechán, výchozí hodnota time-to-live je 7 dní.
timeout Nepovinný parametr. Parametr timeout je vyjádřen v sekundách. Další informace najdete v tématu Nastavení časových limitů pro operace služby Fronta.

Hlavičky požadavku

Požadované a volitelné hlavičky požadavků jsou popsané v následující tabulce:

Hlavička požadavku Popis
Authorization Povinná hodnota. Určuje schéma autorizace, název účtu a podpis. Další informace najdete v tématu Autorizace požadavků do služby Azure Storage.
Date or x-ms-date Povinná hodnota. Určuje formát UTC (Coordinated Universal Time). Další informace najdete v tématu Autorizace požadavků do služby Azure Storage.
x-ms-version Nepovinný parametr. Určuje verzi operace, která se má použít pro tento požadavek. Další informace najdete v tématu Správa verzí pro služby Azure Storage.
x-ms-client-request-id Nepovinný parametr. Poskytuje klientem vygenerovanou neprůselnou hodnotu s limitem počtu znaků 1 kibibajt (KiB), který je zaznamenán v protokolech při konfiguraci protokolování. Důrazně doporučujeme použít tuto hlavičku ke korelaci aktivit na straně klienta s požadavky, které server přijímá.

Text požadavku

Tělo požadavku obsahuje data zprávy v následujícím formátu XML. Všimněte si, že obsah zprávy musí být ve formátu, který lze kódovat pomocí UTF-8.

<QueueMessage>  
    <MessageText>message-content</MessageText>  
</QueueMessage>  

Ukázkový požadavek

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>  

Odpověď

Odpověď obsahuje stavový kód HTTP a sadu hlaviček odpovědi.

Stavový kód

Úspěšná operace vrátí stavový kód 201 (Vytvořeno).

Další informace o stavových kódech najdete v tématu Stavové kódy a kódy chyb.

Hlavičky odpovědi

Odpověď na tuto operaci obsahuje následující hlavičky. Odpověď může také obsahovat další standardní hlavičky HTTP. Všechny standardní hlavičky odpovídají specifikaci protokolu HTTP/1.1.

Hlavička požadavku Popis
x-ms-request-id Jedinečně identifikuje požadavek, který byl proveden, a můžete ho použít k řešení potíží s požadavkem. Další informace najdete v tématu Řešení potíží s operacemi rozhraní API.
x-ms-version Označuje verzi služby Queue, která se použila ke spuštění požadavku. Tato hlavička se vrátí pro požadavky, které byly provedeny ve verzi 2009-09-19 a novější.
Date Hodnota data a času UTC vygenerovaná službou, která označuje čas, kdy byla odpověď inicializována.
x-ms-client-request-id Tato hlavička se dá použít k řešení potíží s požadavky a odpovídajícími odpověďmi. Hodnota této hlavičky se rovná hodnotě x-ms-client-request-id hlavičky, pokud je v požadavku, a hodnota neobsahuje více než 1 024 viditelných znaků ASCII. Pokud hlavička x-ms-client-request-id v požadavku není, nebude v odpovědi.

Text odpovědi

Od verze 2016-05-31 obsahuje odpověď na Put Message operaci informace o zprávě v textu odpovědi. Formát XML vráceného textu je popsán zde.

Element MessageID je hodnota GUID, která identifikuje zprávu ve frontě. Tato hodnota je přiřazena ke zprávě službou Queue Storage a je pro klienta neprůselná. Tuto hodnotu lze použít společně s hodnotou elementu PopReceipt k odstranění nebo aktualizaci zprávy z fronty. Hodnota PopReceipt je pro klienta také neprůhlhlá a vyžaduje se, když používáte rozhraní API pro odstranění zprávy nebo aktualizaci zpráv.

Elementy InsertionTime, ExpirationTimea TimeNextVisible jsou reprezentovány jako hodnoty UTC a formátovány podle popisu v dokumentu 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>

Ukázková odpověď

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>

Autorizace

Tuto operaci může provést vlastník účtu a kdokoli se sdíleným přístupovým podpisem s oprávněními k provedení této operace.

Poznámky

Volitelný časový limit viditelnosti určuje čas, kdy je zpráva neviditelná. Po vypršení časového limitu se zpráva zobrazí. Pokud nezadáte časový limit viditelnosti, použije se výchozí hodnota 0.

Volitelný parametr time-to-live zprávy určuje, jak dlouho zpráva zůstane ve frontě. Zpráva se odstraní z fronty, když vyprší doba trvání.

Zpráva musí být ve formátu, který lze zahrnout do požadavku XML s kódováním UTF-8. Pokud chcete do zprávy zahrnout značky, musí být obsah zprávy buď xml-escaped, nebo kódování Base64. Všechny kódy XML ve zprávě, které nejsou zakódované nebo řídicí, se odeberou před tím, než se zpráva přidá do fronty.

Pokud je zpráva příliš velká, vrátí služba stavový kód 400 (Chybný požadavek).

Viz také

Autorizace požadavků do Služby Azure Storage
Stavové kódy a kódy chyb
Kódy chyb služby Queue Service