Put Message

L'opération Put Message ajoute un nouveau message à la fin de la file d'attente de messages. Un délai d’attente de visibilité peut également être spécifié pour rendre le message invisible jusqu’à l’expiration du délai d’expiration de la visibilité. Un message doit être dans un format qui peut être inclus dans une demande XML en UTF-8. La taille du message encodé peut atteindre 64 Kibioctets (Kio) pour les versions 2011-08-18 et ultérieures, ou 8 Kio pour les versions antérieures.

Requête

Vous pouvez construire la Put Message requête comme suit. Nous vous recommandons d’utiliser HTTPS. Remplacez moncompte par le nom de votre compte de stockage et myqueue par le nom de votre file d'attente :

Méthode URI de demande Version HTTP
POST https://myaccount.queue.core.windows.net/myqueue/messages?visibilitytimeout=<int-seconds>&messagettl=<int-seconds> HTTP/1.1

Demande de service de stockage émulée

Lorsque vous effectuez une demande auprès du service de stockage émulé, spécifiez le nom d’hôte de l’émulateur et le port de stockage file d’attente comme 127.0.0.1:10001, suivis du nom du compte de stockage émulé :

Méthode URI de demande Version HTTP
POST http://127.0.0.1:10001/devstoreaccount1/myqueue/messages?visibilitytimeout=<int-seconds>&messagettl=<int-seconds> HTTP/1.1

Pour plus d’informations, consultez Utiliser l’émulateur Azurite à des fins de développement local pour Stockage Azure.

Paramètres URI

Vous pouvez spécifier les paramètres suivants sur l’URI de requête :

Paramètre Description
visibilitytimeout=<int=seconds> facultatif. Spécifie la nouvelle valeur de délai d’attente de visibilité, en secondes, par rapport à l’heure du serveur. Si elle est spécifiée, la demande doit être effectuée à l’aide de x-ms-version la version 2011-08-18 ou ultérieure. Si elle n’est pas spécifiée, la valeur par défaut est 0. La nouvelle valeur doit être supérieure ou égale à 0, et elle ne peut pas être supérieure à 7 jours. Le délai de visibilité d’un message ne peut pas être défini sur une valeur postérieure à la date d’expiration. Définissez visibilitytimeout sur une valeur inférieure à la valeur de durée de vie.
messagettl=<int-seconds> Optionnel. Spécifie l'intervalle de durée de vie du message, en secondes. Dans les versions antérieures à 2017-07-29, la durée de vie maximale autorisée est de 7 jours. Pour les versions 2017-07-29 et ultérieures, la durée de vie maximale peut être n’importe quel nombre positif, et -1, qui indique que le message n’expire pas. Si ce paramètre est omis, la durée de vie par défaut est de 7 jours.
timeout Optionnel. Le paramètre timeout est exprimé en secondes. Pour plus d’informations, consultez Définir des délais d’attente pour les opérations de service de file d’attente.

En-têtes de requête

Les en-têtes de requête obligatoires et facultatifs sont décrits dans le tableau suivant :

En-tête de requête Description
Authorization Obligatoire. Spécifie le schéma d’autorisation, le nom du compte et la signature. Pour plus d’informations, consultez Autoriser les requêtes auprès du Stockage Azure.
Date or x-ms-date Obligatoire. Spécifie la date/heure en temps universel coordonné (UTC) pour la requête. Pour plus d’informations, consultez Autoriser les requêtes auprès du Stockage Azure.
x-ms-version Optionnel. Spécifie la version de l'opération à utiliser pour cette demande. Pour plus d'informations, consultez la page Contrôle de version pour les services de Stockage Microsoft Azure.
x-ms-client-request-id Optionnel. Fournit une valeur opaque générée par le client avec une limite de caractères de 1 kibioctet (Kio) enregistrée dans les journaux lors de la configuration de la journalisation. Nous vous recommandons vivement d’utiliser cet en-tête pour mettre en corrélation les activités côté client avec les demandes que le serveur reçoit.

Corps de la demande

Le corps de la demande contient les données du message au format XML suivant. Notez que le contenu du message doit être dans un format qui peut être encodé avec UTF-8.

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

Exemple de requête

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>  

response

La réponse inclut un code d'état HTTP et un ensemble d'en-têtes de réponse.

Code d’état

Une opération réussie renvoie le code d'état 201 (Créé).

Pour plus d’informations sur les codes status, consultez Codes d’état et d’erreur.

En-têtes de réponse

La réponse de l'opération inclut les en-têtes suivants. La réponse peut aussi inclure des en-têtes HTTP standard supplémentaires. Tous les en-têtes standard sont conformes à la spécification du protocole HTTP/1.1.

En-tête de requête Description
x-ms-request-id Identifie de manière unique la demande qui a été effectuée et vous pouvez l’utiliser pour résoudre la demande. Pour plus d’informations, consultez Résoudre les problèmes liés aux opérations d’API.
x-ms-version Indique la version du service file d’attente qui a été utilisée pour exécuter la demande. Cet en-tête est retourné pour les demandes effectuées sur la version 2009-09-19 et ultérieure.
Date Valeur de date/heure UTC générée par le service, qui indique l’heure à laquelle la réponse a été lancée.
x-ms-client-request-id Cet en-tête peut être utilisé pour résoudre les problèmes liés aux demandes et aux réponses correspondantes. La valeur de cet en-tête est égale à la valeur de l’en-tête x-ms-client-request-id s’il est présent dans la requête et que la valeur ne contient pas plus de 1 024 caractères ASCII visibles. Si l’en-tête x-ms-client-request-id n’est pas présent dans la demande, il ne sera pas présent dans la réponse.

Response body

À compter de la version 2016-05-31, la réponse de l’opération Put Message contient les informations du message dans le corps de la réponse. Le format XML du corps retourné est décrit ici.

L'élément MessageID est une valeur GUID qui identifie le message dans la file d'attente. Cette valeur est affectée au message par stockage file d’attente et est opaque pour le client. Cette valeur peut être utilisée avec la valeur de l’élément PopReceipt pour supprimer ou mettre à jour un message de la file d’attente. La valeur de PopReceipt est également opaque pour le client, et elle est obligatoire lorsque vous utilisez les API Supprimer un message ou Mettre à jour un message.

Les éléments InsertionTime, ExpirationTime et TimeNextVisible sont représentés en valeurs UTC et mis en forme selon la 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>

Exemple de réponse

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>

Autorisation

Cette opération peut être effectuée par le propriétaire du compte et par toute personne disposant d’une signature d’accès partagé disposant des autorisations nécessaires pour effectuer cette opération.

Notes

Le délai d’attente de visibilité facultatif spécifie l’heure à laquelle le message est invisible. Une fois le délai d’expiration expiré, le message devient visible. Si vous ne spécifiez pas de délai d’attente de visibilité, la valeur par défaut 0 est utilisée.

La durée de vie facultative du message spécifie la durée pendant laquelle un message reste dans la file d’attente. Le message est supprimé de la file d’attente à l’expiration de la période de durée de vie.

Un message doit être dans un format qui peut être inclus dans une demande XML en UTF-8. Pour inclure un balisage dans le message, le contenu du message doit être placé dans une séquence d'échappement XML ou encodé au format Base64. Tout balisage XML dans le message qui n’est pas placé dans une séquence d’échappement ou encodé est supprimé avant l’ajout du message à la file d’attente.

Si le message est trop grand, le service renvoie le code d'état 400 (Demande incorrecte).

Voir aussi

Autoriser les demandes à Stockage Azure
Codes d’état et d’erreur
Codes d’erreur du service de file d’attente