Freigeben über


Nachricht ablegen

Der Put Message Vorgang fügt eine neue Nachricht am Ende der Nachrichtenwarteschlange hinzu. Es kann auch ein Sichtbarkeits-Timeout angegeben werden, um die Nachricht unsichtbar zu machen, bis das Sichtbarkeits-Timeout abläuft. Eine Nachricht muss in einem Format vorliegen, das in einer XML-Anforderung mit UTF-8-Codierung enthalten sein kann. Die codierte Nachricht kann bis zu 64 Kibibyte (KiB) groß sein für Version 2011-08-18 und höher oder 8 KiB für frühere Versionen.

Anfrage

Sie können die Put Message Anforderung wie folgt erstellen. Es wird empfohlen, HTTPS zu verwenden. Ersetzen Sie myaccount durch den Namen Ihres Speicherkontos und myqueue durch den Namen Ihrer Warteschlange:

Methode Anforderungs-URI HTTP-Version
POST https://myaccount.queue.core.windows.net/myqueue/messages?visibilitytimeout=<int-seconds>&messagettl=<int-seconds> HTTP/1.1

Emulierte Speicherdienstanforderung

Wenn Sie eine Anforderung an den emulierten Speicherdienst senden, geben Sie den Hostnamen des Emulators und den Speicherport in der Warteschlange als 127.0.0.1:10001an, gefolgt vom Namen des emulierten Speicherkontos:

Methode Anforderungs-URI HTTP-Version
POST http://127.0.0.1:10001/devstoreaccount1/myqueue/messages?visibilitytimeout=<int-seconds>&messagettl=<int-seconds> HTTP/1.1

Weitere Informationen finden Sie unter Verwenden des Azurite-Emulators für die lokale Azure Storage-Entwicklung.

URI-Parameter

Sie können die folgenden Parameter für den Anforderungs-URI angeben:

Parameter BESCHREIBUNG
visibilitytimeout=<int=seconds> Wahlfrei. Gibt den neuen Wert für das Sichtbarkeitstimeout in Sekunden relativ zur Serverzeit an. Wenn es angegeben ist, muss die Anforderung mit dem x-ms-version Wert 2011-08-18 oder höher erfolgen. Wenn er nicht angegeben ist, ist der Standardwert 0. Der neue Wert muss größer oder gleich 0 sein und darf nicht größer als 7 Tage sein. Das Sichtbarkeitstimeout einer Nachricht kann nicht auf einen Wert festgelegt werden, der nach dem Ablaufdatum liegt. Auf einen Wert festlegen visibilitytimeout , der kleiner als der Wert für die Gültigkeitsdauer ist.
messagettl=<int-seconds> Wahlfrei. Gibt das Zeit-zu-Live-Intervall für die Nachricht in Sekunden an. In Versionen vor dem 29.07.2017 beträgt die maximal zulässige Gültigkeitsdauer 7 Tage. Für Version 2017-07-29 und höher kann die maximale Gültigkeitsdauer eine beliebige positive Zahl sein und -1, was bedeutet, dass die Nachricht nicht abläuft. Wenn dieser Parameter nicht angegeben wird, beträgt die Standardzeit für live 7 Tage.
timeout Wahlfrei. Der parameter timeout wird in Sekunden ausgedrückt. Weitere Informationen finden Sie unter Festlegen von Timeouts für Warteschlangendienstvorgänge.

Anforderungsheader

Die erforderlichen und optionalen Anforderungsheader werden in der folgenden Tabelle beschrieben:

Anforderungs-Kopfzeile BESCHREIBUNG
Authorization Erforderlich. Gibt das Autorisierungsschema, den Kontonamen und die Signatur an. Weitere Informationen finden Sie unter Autorisieren von Anforderungen an Azure Storage.
Date or x-ms-date Erforderlich. Gibt die koordinierte Weltzeit (UTC) für die Anforderung an. Weitere Informationen finden Sie unter Autorisieren von Anforderungen an Azure Storage.
x-ms-version Wahlfrei. Gibt die Version des Vorgangs an, der für diese Anforderung verwendet werden soll. Weitere Informationen finden Sie unter Versionsverwaltung für die Azure Storage-Dienste.
x-ms-client-request-id Wahlfrei. Stellt einen vom Client generierten, undurchsichtigen Wert mit einem 1-Kibibyte-Zeichenlimit (KiB) bereit, der in den Protokollen aufgezeichnet wird, wenn die Protokollierung konfiguriert ist. Es wird dringend empfohlen, diesen Header zu verwenden, um clientseitige Aktivitäten mit Anforderungen zu korrelieren, die der Server empfängt.

Anfragekörper

Der Text der Anforderung enthält die Nachrichtendaten im folgenden XML-Format. Beachten Sie, dass der Nachrichteninhalt in einem Format vorliegen muss, das mit UTF-8 codiert werden kann.

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

Musteranforderung

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>  

Antwort

Die Antwort enthält einen HTTP-Statuscode und eine Reihe von Antwortheadern.

Statuscode

Ein erfolgreicher Vorgang gibt den Statuscode 201 (Erstellt) zurück.

Weitere Informationen zu Statuscodes finden Sie unter Status- und Fehlercodes.

Antwortkopfzeilen

Die Antwort für diesen Vorgang enthält die folgenden Header. Die Antwort kann auch zusätzliche Standard-HTTP-Header enthalten. Alle Standardheader entsprechen der HTTP/1.1-Protokollspezifikation.

Anforderungs-Kopfzeile BESCHREIBUNG
x-ms-request-id Identifiziert die anforderung eindeutig, die durchgeführt wurde, und Sie können sie verwenden, um die Anforderung zu beheben. Weitere Informationen finden Sie unter Problembehandlung für API-Vorgänge.
x-ms-version Gibt die Warteschlangendienstversion an, die zum Ausführen der Anforderung verwendet wurde. Dieser Header wird für Anforderungen zurückgegeben, die für Version 2009-09-19 und höher vorgenommen wurden.
Date Ein UTC-Datums-/Uhrzeitwert, der vom Dienst generiert wird, der die Uhrzeit angibt, zu der die Antwort initiiert wurde.
x-ms-client-request-id Dieser Header kann zum Behandeln von Anforderungen und entsprechenden Antworten verwendet werden. Der Wert dieses Headers ist gleich dem Wert des x-ms-client-request-id Headers, wenn er in der Anforderung vorhanden ist und der Wert nicht mehr als 1.024 sichtbare ASCII-Zeichen enthält. Wenn der x-ms-client-request-id-Header in der Anforderung nicht vorhanden ist, ist er in der Antwort nicht vorhanden.

Antwortkörper

Ab Version 2016-05-31 enthält die Antwort für den Put Message Vorgang die Nachrichteninformationen im Antworttext. Das XML-Format des zurückgegebenen Textkörpers wird hier beschrieben.

Bei dem MessageID Element handelt es sich um einen GUID-Wert, der die Nachricht in der Warteschlange identifiziert. Dieser Wert wird der Nachricht von Queue Storage zugewiesen und ist für den Client nicht transparent. Dieser Wert kann zusammen mit dem Wert des PopReceipt-Elements verwendet werden, um eine Nachricht aus der Warteschlange zu löschen oder zu aktualisieren. Der Wert von PopReceipt ist auch für den Client nicht transparent und erforderlich, wenn Sie die APIs zum Löschen von Nachrichten oder zum Aktualisieren von Nachrichten verwenden.

Die InsertionTimeElemente , ExpirationTime, und TimeNextVisible werden als UTC-Werte dargestellt und wie in RFC 1123 beschrieben formatiert.

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

Beispielantwort

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>

Autorisierung

Dieser Vorgang kann vom Kontobesitzer und von allen Personen mit einer Shared Access Signature mit Berechtigungen zum Ausführen dieses Vorgangs ausgeführt werden.

Bemerkungen

Das optionale Sichtbarkeits-Timeout gibt die Zeit an, in der die Nachricht unsichtbar ist. Nach Ablauf des Timeouts wird die Meldung sichtbar. Wenn Sie kein Sichtbarkeitstimeout angeben, wird der Standardwert 0 verwendet.

Die optionale Gültigkeitsdauer für Nachrichten gibt an, wie lange eine Nachricht in der Warteschlange verbleibt. Die Nachricht wird aus der Warteschlange gelöscht, wenn der Zeitraum bis zur Gültigkeitsdauer abgelaufen ist.

Eine Nachricht muss in einem Format vorliegen, das in einer XML-Anforderung mit UTF-8-Codierung enthalten sein kann. Um Markup in die Nachricht aufzunehmen, muss der Inhalt der Nachricht entweder XML-escaped oder Base64-kodiert sein. Alle XML-Markups in der Nachricht, die nicht maskiert oder codiert sind, werden entfernt, bevor die Nachricht der Warteschlange hinzugefügt wird. Wenn ein ungültiges Zeichen (z. B0x1F. ) in der Nachricht mit XML-Escapezeichen versehen oder Base64-codiert ist, sind nachfolgende Lesevorgänge der Nachricht nicht erfolgreich.

Wenn die Nachricht zu groß ist, gibt der Dienst den Statuscode 400 (Ungültige Anforderung) zurück.

Siehe auch

Autorisieren von Anforderungen an Azure Storage
Status- und Fehlercodes
Fehlercodes des Warteschlangendiensts