Vložit zprávu

Tato Put Message operace přidá novou zprávu na konec fronty zpráv. Lze také zadat časový limit viditelnosti, aby byla zpráva neviditelná až do vypršení časového limitu 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 Put Message můžete vytvořit následujícím způsobem. Doporučujeme používat PROTOKOL HTTPS. Nahraďte myaccount názvem vašeho účtu úložiště a myqueue názvem vaší fronty:

Metoda Požadavek na URI Verze protokolu HTTP
POST https://myaccount.queue.core.windows.net/myqueue/messages?visibilitytimeout=<int-seconds>&messagettl=<int-seconds> Protokol HTTP/1.1

Žádost o emulovanou službu úložiště

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

Metoda Požadavek na URI Verze protokolu HTTP
POST http://127.0.0.1:10001/devstoreaccount1/myqueue/messages?visibilitytimeout=<int-seconds>&messagettl=<int-seconds> Protokol HTTP/1.1

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

Parametry identifikátoru URI

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

Parametr Popis
visibilitytimeout=<int=seconds> Volitelný. Určuje novou hodnotu časového limitu viditelnosti v sekundách vzhledem k času serveru. Pokud je zadáno, musí být žádost podána pomocí formuláře an x-ms-version z 2011-08-18 nebo novějšího. Pokud není zadaná, výchozí hodnota je 0. Nová hodnota musí být větší 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ž je hodnota TTL (Time to Live).
messagettl=<int-seconds> Volitelný. Určuje interval mezi časem zprávy v sekundách. Ve verzích starších než 2017-07-29 je maximální povolená doba životnosti 7 dní. Pro verzi 2017-07-29 a novější může být maximální hodnota TTL libovolná kladná hodnota a -1, což znamená, že platnost zprávy nevyprší. Pokud tento parametr vynecháte, výchozí hodnota time-to-live je 7 dní.
timeout Volitelný. Parametr timeout se vyjadřuje v sekundách. Další informace najdete v tématu Nastavení časových limitů pro operace frontové služby.

Hlavičky žádosti

Povinná a volitelná hlavička požadavku jsou popsána v následující tabulce:

Hlavička požadavku Popis
Authorization Povinné. Určuje schéma autorizace, název účtu a podpis. Další informace najdete v tématu Autorizace požadavků na službu Azure Storage.
Date or x-ms-date Povinné. Určuje standard UTC (Coordinated Universal Time) pro požadavek. Další informace najdete v tématu Autorizace požadavků na službu Azure Storage.
x-ms-version Volitelný. Určuje verzi operace, která se má pro tento požadavek použít. Další informace najdete v tématu Správa verzí pro služby Azure Storage.
x-ms-client-request-id Volitelný. Poskytuje hodnotu vygenerovanou klientem, neprůshlenou hodnotou s limitem 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á.

Obsah 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>  

Odezva

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 Stav a kódy chyb.

Hlavičky odpovědi

Odpověď pro tuto operaci obsahuje následující hlavičky. Odpověď může obsahovat také 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 Jednoznač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á byla použita k provedení 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 zahájení odpovědi.
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ě hlavičky x-ms-client-request-id, pokud se nachází v požadavku a hodnota neobsahuje více než 1 024 viditelných znaků ASCII. Pokud v požadavku není hlavička x-ms-client-request-id, nezobrazí se v odpovědi.

Obsah odpovědi

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

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

Prvky InsertionTime, ExpirationTime, a jsou reprezentovány TimeNextVisible 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 dobu, po kterou je zpráva neviditelná. Po uplynutí časového limitu se zpráva stane viditelnou. Pokud neurčíte časový limit viditelnosti, použije se výchozí hodnota 0.

Volitelná zpráva time-to-live určuje, jak dlouho zpráva zůstane ve frontě. Zpráva je odstraněna z fronty po uplynutí doby TTL.

Zpráva musí být ve formátu, který lze zahrnout do požadavku XML s kódováním UTF-8. Aby bylo možné do zprávy zahrnout kódování, musí být obsah zprávy v kódování Base64. Jakýkoli kód XML ve zprávě, který není zakódovaný, způsobí, že zpráva bude neplatná. Pokud je ve zprávě zahrnut neplatný znak (například 0x1F), i když je to escapovaný znak XML, následné čtení zprávy nebude úspěšné.

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

Viz také

autorizace požadavků na službu Azure Storage
Kódy stavu a chyb
Kódy chyb služby fronty