Freigeben über


Put Message

Mit dem Put Message-Vorgang wird am Ende der Nachrichtenwarteschlange eine neue Nachricht hinzugefügt. Ein Sichtbarkeitstimeout kann auch angegeben werden, um die Nachricht unsichtbar zu machen, bis das Sichtbarkeitstimeout abläuft. Nachrichten müssen ein Format aufweisen, das in eine XML-Anforderung mit UTF-8-Codierung eingeschlossen werden kann. Die codierte Nachricht kann bis zu 64 Kibibyte (KiB) für Version 2011-08-18 und höher oder 8 KiB für frühere Versionen groß sein.

Anforderung

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 stellen, geben Sie den Emulatorhostnamen und den Warteschlangenspeicherport 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 lokale Azure Storage-Entwicklung.

URI-Parameter

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

Parameter BESCHREIBUNG
visibilitytimeout=<int=seconds> Optional. Gibt den neuen Timeoutwert für die Sichtbarkeit in Sekunden relativ zur Serverzeit an. Wenn dies angegeben ist, muss die Anforderung mit einem x-ms-version vom 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 später als das Ablaufdatum liegt. Legen Sie visibilitytimeout auf einen Wert fest, der kleiner als der Wert für die Gültigkeitsdauer ist.
messagettl=<int-seconds> Optional. Gibt das Gültigkeitsdauerintervall 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 angibt, dass die Nachricht nicht abläuft. Wenn dieser Parameter nicht angegeben ist, beträgt die Standardgültigkeitsdauer 7 Tage.
timeout Optional. Der timeout-Parameter wird in Sekunden angegeben. Weitere Informationen finden Sie unter Festlegen von Timeouts für Warteschlangendienstvorgänge.

Anforderungsheader

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

Anforderungsheader 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 (Coordinated Universal Time, UTC) für die Anforderung an. Weitere Informationen finden Sie unter Autorisieren von Anforderungen an Azure Storage.
x-ms-version Optional. Gibt die Version des für die Anforderung zu verwendenden Vorgangs an. Weitere Informationen finden Sie unter Versionsverwaltung für die Azure-Speicherdienste.
x-ms-client-request-id Optional. Stellt einen vom Client generierten, undurchsichtigen Wert mit einem Zeichenlimit von 1 Kibibyte (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.

Anforderungstext

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>  

Beispiel für eine Anforderung

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 den HTTP-Statuscode und einen Satz von Antwortheadern.

Statuscode

Bei einem erfolgreichen Vorgang wird der Statuscode 201 (Erstellt) zurückgegeben.

Weitere Informationen zu status Codes finden Sie unter Status- und Fehlercodes.

Antwortheader

Die Antwort für diesen Vorgang umfasst die folgenden Header. Die Antwort kann außerdem weitere HTTP-Standardheader enthalten. Alle Standardheader entsprechen der HTTP/1.1-Protokollspezifikation.

Anforderungsheader BESCHREIBUNG
x-ms-request-id Identifiziert die durchgeführte Anforderung eindeutig, und Sie können sie zur Problembehandlung für die Anforderung verwenden. Weitere Informationen finden Sie unter Problembehandlung für API-Vorgänge.
x-ms-version Gibt die Version des Warteschlangendiensts 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 ausgeführt wurden.
Date Ein UTC-Datums-/Uhrzeitwert, der vom Dienst generiert wird, der den Zeitpunkt angibt, zu dem die Antwort initiiert wurde.
x-ms-client-request-id Dieser Header kann zur Problembehandlung 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.

Antworttext

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 Texts wird hier beschrieben.

Das MessageID-Element ist ein GUID-Wert, der die Nachricht in der Warteschlange identifiziert. Dieser Wert wird der Nachricht von Queue Storage zugewiesen und ist für den Client undurchsichtig. 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 undurchsichtig und ist erforderlich, wenn Sie die APIs "Nachricht löschen" oder "Nachrichten aktualisieren" verwenden.

Die Elemente InsertionTime, ExpirationTime und TimeNextVisible werden als UTC-Werte dargestellt und sind entsprechend der Beschreibung in RFC 1123 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>

Beispiel für eine Antwort

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>

Authorization

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

Hinweise

Das optionale Sichtbarkeitstimeout gibt die Zeit an, zu der die Nachricht unsichtbar ist. Nach Ablauf des Timeouts wird die Meldung angezeigt. Wenn Sie kein Sichtbarkeitstimeout angeben, wird der Standardwert 0 verwendet.

Die optionale Gültigkeitsdauer der Nachricht gibt an, wie lange eine Nachricht in der Warteschlange verbleibt. Die Nachricht wird aus der Warteschlange gelöscht, wenn die Gültigkeitsdauer abläuft.

Nachrichten müssen ein Format aufweisen, das in eine XML-Anforderung mit UTF-8-Codierung eingeschlossen werden kann. Zum Einbeziehen des Markups in der Nachricht müssen Inhalte der Nachricht entweder XML-escaped oder Base64-codiert sein. Jedes XML-Markup in der Nachricht, das nicht mit Escapezeichen versehen oder codiert ist, wird entfernt, bevor die Nachricht der Warteschlange hinzugefügt wird.

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

Weitere Informationen

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