Aktualizovat zprávu

Tato Update Message operace aktualizuje časový limit viditelnosti zprávy. Tuto operaci můžete také použít k aktualizaci obsahu zprávy. Zpráva musí být ve formátu, který lze zahrnout do požadavku XML s kódováním UTF-8, a zakódovaná zpráva může mít velikost až 64 kB. Tato operace byla zavedena ve verzi 2011-08-18 rozhraní API služby Azure Queue Storage.

Žádost

Požadavek můžete vytvořit Update Message následujícím způsobem. Doporučuje se 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
PUT https://myaccount.queue.core.windows.net/myqueue/messages/messageid?popreceipt=<string-value>&visibilitytimeout=<int-seconds> Protokol HTTP/1.1

Emulovaná služba úložiště

Tato operace je podporována pro sadu SDK 1.6 a novější verze.

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

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

Parametry identifikátoru URI

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

Parameter Description
popreceipt Povinné. Určuje platnou hodnotu poppotvrzení vrácenou z dřívějšího volání operací Získat zprávy nebo Aktualizovat zprávu . Musí popreceipt být zakódován URL.
visibilitytimeout Povinné. Určuje novou hodnotu časového limitu viditelnosti v sekundách vzhledem k času serveru. 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 pozdější, než je čas vypršení platnosti. Zprávu můžete aktualizovat, dokud nebude odstraněna nebo dokud nevyprší.
timeout Optional. Parametr timeout je vyjádřen v sekundách. Další informace naleznete v tématu Nastavení časových limitů pro operace služby Queue Storage.

Hlavičky žádosti

Následující tabulka popisuje povinné a volitelné hlavičky požadavků.

Hlavička požadavku Description
Authorization Povinné. Určuje schéma autorizace, název účtu a podpis. Další informace najdete v tématu Autorizace požadavků na Azure Storage.
Date or x-ms-date Povinné. Určuje koordinovaný světový čas (UTC) pro požadavek. Další informace najdete v tématu Autorizace požadavků na Azure Storage.
x-ms-version Vyžaduje 2011-08-18 nebo novější. Určuje verzi operace, která má být použita pro tento požadavek. Další informace najdete v tématu Správa verzí pro služby Azure Storage.
x-ms-client-request-id Optional. Poskytuje klientem generovanou, neprůhlednou hodnotu s limitem znaků 1 kibibajt (KiB), který se zaznamenává do protokolů 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á. Další informace najdete v tématu Monitorování služby Azure Queue Storage.

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>  

Odezva

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

Stavový kód

Úspěšná operace vrátí stavový kód 204 (bez obsahu). Informace o stavových kódech naleznete v části 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 Description
x-ms-request-id Tato hlavička jednoznačně identifikuje požadavek, který byl proveden, a lze ji použít k řešení potíží s požadavkem. Další informace naleznete v tématu Řešení potíží s operacemi rozhraní API.
x-ms-version Označuje verzi služby Queue Storage použitou ke spuštění požadavku. Tato hlavička se vrací pro požadavky odeslané ve verzi 2009-09-19 a novější.
Date Hodnota data a času UTC, která označuje čas, kdy byla odpověď zahájena. Služba tuto hodnotu vygeneruje.
x-ms-popreceipt Automaticky přijaté přijetí zprávy fronty.
x-ms-time-next-visible Hodnota data a času UTC, která představuje, kdy bude zpráva viditelná ve frontě.
x-ms-client-request-id Tuto hlavičku můžete 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 je v požadavku přítomna. Hodnota je maximálně 1 024 viditelných znaků ASCII. Pokud hlavička x-ms-client-request-id v požadavku není, nebude tato hlavička v odpovědi k dispozici.

Obsah odpovědi

Žádné.

Authorization

Tuto operaci může provést vlastník účtu. Kromě toho to může udělat kdokoli se sdíleným přístupovým podpisem, který má oprávnění k provedení této operace.

Ukázkový požadavek a odpověď

Následující požadavek prodlužuje viditelnost zprávy ve frontě o 30 sekund a aktualizuje její obsah.

PUT https://myaccount.queue.core.windows.net/myqueue/messages/663d89aa-d1d9-42a2-9a6a-fcf822a97d2c?popreceipt=AgAAAAEAAAApAAAAGIw6Q29bzAE%3d&visibilitytimeout=30&timeout=30 HTTP/1.1  
  

Požadavek je odeslán s následujícími hlavičkami:

x-ms-version: 2011-08-18  
x-ms-date: Mon, 29 Aug 2011 17:17:21 GMT  
Authorization: SharedKey myaccount:batcrWZ35InGCZeTUFWMdIQiOZPCW7UEyeGdDOg7WW4=  
Content-Length: 75  

Požadavek se odešle s následujícím textem XML:

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

Po odeslání požadavku je vrácena následující odpověď:

HTTP/1.1 204 No Content  
Content-Length: 0  
Server: Windows-Azure-Queue/1.0 Microsoft-HTTPAPI/2.0  
x-ms-request-id: df34a7dd-3cbe-4206-a586-d6de3cf225a7  
x-ms-version: 2011-08-18  
x-ms-popreceipt: AwAAAAIAAAApAAAAINtMQ29bzAEBAAAA  
x-ms-time-next-visible: Mon, 29 Aug 2011 17:17:51 GMT  
Date: Mon, 29 Aug 2011 17:17:21 GMT  

Poznámky

Operace Update Message se nezdaří, pokud zadaná zpráva ve frontě neexistuje nebo pokud zadaná účtenka neodpovídá zprávě.

Účtenka POP je vrácena Get Messages operací nebo operací Update Message . Účtenky POP zůstávají v platnosti, dokud nenastane jedna z následujících událostí:

  • Platnost zprávy vypršela.

  • Zpráva byla odstraněna pomocí posledního přijatého potvrzení pop, a to buď od nebo Get MessagesUpdate Message.

  • Uplynula doba neviditelnosti a zpráva byla vyřazena z fronty Get Messages na základě požadavku. Po uplynutí doby neviditelnosti se zpráva opět zobrazí. Pokud je zpráva načtena jiným Get Messages požadavkem, lze vrácené potvrzení POP použít k odstranění nebo aktualizaci zprávy.

  • Zpráva byla aktualizována o nový časový limit viditelnosti. Po aktualizaci zprávy bude vrácena nová účtenka POP.

Tuto operaci můžete použít Update Message k průběžnému rozšiřování neviditelnosti zprávy fronty. Tato funkce může být užitečná, pokud chcete, aby role pracovního procesu zapůjčila zprávu fronty. Pokud například role pracovního procesu volá Get Messages a rozpozná, že potřebuje více času na zpracování zprávy, může průběžně prodlužovat neviditelnost zprávy, dokud nebude zpracována. Pokud by role pracovního procesu během zpracování selhala, zpráva by se nakonec znovu stala viditelnou a mohla by ji zpracovat jiná role pracovního procesu.

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 Azure Storage
Kódy stavu a chyb
Kódy chyb služby Queue Storage