Aktualizacja wiadomości

Operacja Update Message aktualizuje limit czasu widoczności komunikatu. Możesz również użyć tej operacji, aby zaktualizować zawartość komunikatu. Komunikat musi być w formacie, który może być uwzględniony w żądaniu XML z kodowaniem UTF-8, a zakodowany komunikat może mieć rozmiar do 64 KB. Ta operacja została wprowadzona w wersji 2011-08-18 interfejsu API usługi Azure Queue Storage.

Żądanie

Żądanie można skonstruować Update Message w następujący sposób. Zalecane jest użycie protokołu HTTPS. Zastąp ciąg myaccount nazwą konta magazynu i ciągiem myqueue nazwą kolejki.

Metoda Identyfikator URI żądania Wersja PROTOKOŁU HTTP
PUT https://myaccount.queue.core.windows.net/myqueue/messages/messageid?popreceipt=<string-value>&visibilitytimeout=<int-seconds> HTTP/1.1

Emulowana usługa magazynu

Ta operacja jest obsługiwana w przypadku zestawów SDK 1.6 i nowszych.

Po wysłaniu żądania względem emulowanej usługi magazynu określ nazwę hosta emulatora i port usługi Queue Storage jako 127.0.0.1:10001, a następnie nazwę emulowanego konta magazynu.

Metoda Identyfikator URI żądania Wersja PROTOKOŁU HTTP
PUT http://127.0.0.1:10001/devstoreaccount1/myqueue/messages/messageid?popreceipt=<string-value>&visibilitytimeout=<int-seconds> HTTP/1.1

Parametry identyfikatora URI

Dla identyfikatora URI żądania można określić następujące parametry.

Parametr Opis
popreceipt Wymagane. Określa prawidłową wartość potwierdzenia wyskakującego zwróconą z wcześniejszego wywołania operacji Pobieranie komunikatów lub Aktualizowanie komunikatów . Element popreceipt musi być zakodowany pod adresem URL.
visibilitytimeout Wymagane. Określa nową wartość limitu czasu widoczności w sekundach względem czasu serwera. Nowa wartość musi być większa lub równa 0 i nie może być większa niż 7 dni. Limit czasu widoczności komunikatu nie może być ustawiony na wartość później niż czas wygaśnięcia. Komunikat można zaktualizować do momentu jego usunięcia lub wygaśnięcia.
timeout Opcjonalny. Parametr jest wyrażony timeout w sekundach. Aby uzyskać więcej informacji, zobacz Ustawianie limitów czasu dla operacji usługi Queue Storage.

Nagłówki żądań

W poniższej tabeli opisano wymagane i opcjonalne nagłówki żądań.

Nagłówek żądania Opis
Authorization Wymagane. Określa schemat autoryzacji, nazwę konta i podpis. Aby uzyskać więcej informacji, zobacz Autoryzowanie żądań do usługi Azure Storage.
Date or x-ms-date Wymagane. Określa dla żądania godzinę w formacie uniwersalnego czasu koordynowanego (UTC). Aby uzyskać więcej informacji, zobacz Autoryzowanie żądań do usługi Azure Storage.
x-ms-version Wymaga wersji 2011-08-18 lub nowszej. Określa wersję operacji do użycia dla tego żądania. Aby uzyskać więcej informacji, zobacz Przechowywanie wersji usług Azure Storage.
x-ms-client-request-id Opcjonalny. Udostępnia nieprzezroczystą wartość wygenerowaną przez klienta z limitem znaków 1-kibibyte (KiB), który jest rejestrowany w dziennikach podczas konfigurowania rejestrowania. Zdecydowanie zalecamy używanie tego nagłówka do korelowania działań po stronie klienta z żądaniami odbieranymi przez serwer. Aby uzyskać więcej informacji, zobacz Monitorowanie usługi Azure Queue Storage.

Treść żądania

Treść żądania zawiera dane komunikatu w następującym formacie XML. Należy pamiętać, że zawartość komunikatu musi być w formacie, który może być zakodowany przy użyciu protokołu UTF-8.

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

Reakcja

Odpowiedź zawiera kod stanu HTTP i zestaw nagłówków odpowiedzi.

Kod stanu

Operacja zakończona powodzeniem zwraca kod stanu 204 (Brak zawartości). Aby uzyskać informacje o kodach stanu, zobacz Stan i kody błędów.

Nagłówki odpowiedzi

Odpowiedź na tę operację zawiera następujące nagłówki. Odpowiedź może również zawierać dodatkowe, standardowe nagłówki HTTP. Wszystkie nagłówki standardowe są zgodne ze specyfikacją protokołu HTTP/1.1.

Nagłówek żądania Opis
x-ms-request-id Ten nagłówek jednoznacznie identyfikuje wykonane żądanie i może służyć do rozwiązywania problemów z żądaniem. Aby uzyskać więcej informacji, zobacz Rozwiązywanie problemów z operacjami interfejsu API.
x-ms-version Wskazuje wersję usługi Queue Storage używaną do uruchomienia żądania. Ten nagłówek jest zwracany dla żądań wysyłanych w wersji 2009-09-19 lub nowszej.
Date Wartość daty/godziny UTC wskazująca godzinę, w której zainicjowano odpowiedź. Usługa generuje tę wartość.
x-ms-popreceipt Potwierdzenie wyskakujące komunikatu kolejki.
x-ms-time-next-visible Wartość daty/godziny UTC reprezentująca, kiedy komunikat będzie widoczny w kolejce.
x-ms-client-request-id Ten nagłówek służy do rozwiązywania problemów z żądaniami i odpowiadającymi im odpowiedziami. Wartość tego nagłówka jest równa wartości x-ms-client-request-id nagłówka, jeśli jest obecna w żądaniu. Wartość wynosi co najwyżej 1024 widoczne znaki ASCII. x-ms-client-request-id Jeśli nagłówek nie znajduje się w żądaniu, ten nagłówek nie będzie obecny w odpowiedzi.

Treść odpowiedzi

Brak.

Autoryzacja

Właściciel konta może wykonać tę operację. Ponadto każda osoba z sygnaturą dostępu współdzielonego, która ma uprawnienia do wykonania tej operacji, może to zrobić.

Przykładowe żądanie i odpowiedź

Następujące żądanie rozszerza widoczność komunikatu kolejki o 30 sekund i aktualizuje jego zawartość.

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

Żądanie jest wysyłane z następującymi nagłówkami:

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

Żądanie jest wysyłane z następującą treścią XML:

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

Po wysłaniu żądania zostanie zwrócona następująca odpowiedź:

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  

Uwagi

Operacja Update Message kończy się niepowodzeniem, jeśli określony komunikat nie istnieje w kolejce lub jeśli określone potwierdzenie wyskakujące nie jest zgodne z komunikatem.

Potwierdzenie wyskakujące jest zwracane przez operację Get Messages lub operację Update Message . Potwierdzenia wyskakujące pozostają prawidłowe do momentu wystąpienia jednego z następujących zdarzeń:

  • Komunikat wygasł.

  • Wiadomość została usunięta przy użyciu ostatniego odebranego potwierdzenia wyskakującego, od Get Messages lub Update Message.

  • Upłynął czas widoczności, a komunikat został usunięty z kolejki przez Get Messages żądanie. Gdy upłynie czas widoczności, komunikat będzie ponownie widoczny. Jeśli jest pobierany przez inne Get Messages żądanie, zwrócone potwierdzenie wyskakujące może służyć do usunięcia lub zaktualizowania komunikatu.

  • Komunikat został zaktualizowany o nowy limit czasu widoczności. Po zaktualizowaniu wiadomości zostanie zwrócone nowe potwierdzenie wyskakujące.

Za pomocą Update Message operacji można stale rozszerzać widoczność komunikatu w kolejce. Ta funkcja może być przydatna, jeśli chcesz, aby rola procesu roboczego dzierżawiła komunikat w kolejce. Jeśli na przykład rola procesu roboczego wywołuje funkcję Pobierz komunikaty i rozpoznaje, że potrzebuje więcej czasu na przetworzenie komunikatu, może stale rozszerzać widoczność komunikatu do momentu jego przetworzenia. Jeśli rola procesu roboczego zakończy się niepowodzeniem podczas przetwarzania, w końcu komunikat stanie się ponownie widoczny, a inna rola procesu roboczego może ją przetworzyć.

Zobacz też

Autoryzowanie żądań do usługi Azure Storage
Kody stanu i błędów
Kody błędów usługi Queue Storage