Envoie un message vers une file d'attente spécifiée.
Remarques d'utilisation
Encodez le corps du message en Base64 avant l'envoi. Les messages dont le corps n'est pas encodé en Base64 ou qui contiennent des caractères non pris en charge entraînent un échec de la requête.
Un message envoyé sans délai est immédiatement disponible pour la consommation. Pour différer la consommation, définissez
DelaySecondssur une valeur supérieure à 0. Le message passe au statut Delayed et bascule vers le statut Active après la période de délai spécifiée.Si vous définissez
DelaySecondsà la fois au niveau du message et au niveau de la file d'attente, la valeur au niveau du message est prioritaire.
Autorisation
Par défaut, seul un compte Alibaba Cloud peut appeler cette opération. Pour autoriser un utilisateur RAM à appeler cette opération, accordez les permissions requises. Pour plus d'informations, consultez Politiques d'autorisation et exemples.
| Nom | Valeur |
|---|---|
| API | SendMessage |
| Action | mns:SendMessage |
| Resource | acs:mns:$region:$accountid:/queues/$queueName/messages |
Syntaxe de la requête
POST /queues/$queueName/messages HTTP/1.1
Host: $AccountId.mns.<region>.aliyuncs.com
Date: <date>
Content-Length: <content-length>
Content-Type: text/xml;charset=utf-8
x-mns-version: 2015-06-06
Authorization: MNS <AccessKeyId>:<Signature>
<?xml version="1.0" encoding="UTF-8"?>
<Message xmlns="http://mns.aliyuncs.com/doc/v1/">
<MessageBody>Base64-encoded message content</MessageBody>
<DelaySeconds>0</DelaySeconds>
<Priority>1</Priority>
</Message>
En-têtes de requête spécifiques à l'opération : Aucun.
Paramètres du corps de la requête
| Paramètre | Type | Obligatoire | Exemple | Description |
|---|---|---|---|---|
| MessageBody | String | Oui | This is a test message | Corps du message. Encodez cette valeur en Base64 avant l'envoi. |
| DelaySeconds | Integer | Non | 60 | Durée en secondes avant que le message ne soit disponible pour la consommation. Valeurs valides : 0 à 604800. Valeur par défaut : 0. |
Syntaxe de la réponse
HTTP/1.1 201 Created
Content-Length: <content-length>
Content-Type: text/xml;charset=utf-8
x-mns-request-id: <request-id>
x-mns-version: 2015-06-06
<?xml version="1.0" encoding="UTF-8"?>
<Message xmlns="http://mns.aliyuncs.com/doc/v1/">
<MessageId>5F290C926D472878-2-14D9529A8FA-20000****</MessageId>
<MessageBodyMD5>C5DD56A39F5F7BB8B3337C6D11B6****</MessageBodyMD5>
<ReceiptHandle>1-ODU4OTkzNDU5My0xNDM1MTk3NjAwLTItNg==</ReceiptHandle>
</Message>
En-têtes de réponse spécifiques à l'opération : Aucun.
Paramètres du corps de la réponse
| Paramètre | Type | Exemple | Description |
|---|---|---|---|
| MessageId | String | 5F290C926D472878-2-14D9529A8FA-20000**** |
ID unique du message dans la file d'attente. |
| MessageBodyMD5 | String | C5DD56A39F5F7BB8B3337C6D11B6**** |
Hachage MD5 du corps du message. Utilisez cette valeur pour vérifier l'intégrité du message. |
| ReceiptHandle | String | 1-ODU4OTkzNDU5My0xNDM1MTk3NjAwLTItNg== |
Handle de réception du message. Renvoyé uniquement pour les messages différés. |
Exemples
Envoyer un message différé
La requête suivante envoie un message avec un délai de 60 secondes vers une file d'attente. Le message passe au statut Delayed et devient consommable après 60 secondes.
Requête
POST /queues/$queueName/messages HTTP/1.1
Host: $AccountId.mns.cn-hangzhou.aliyuncs.com
Date: Wed, 18 Mar 2012 12:00:00 GMT
Content-Length:500
Content-Type:text/xml;charset=utf-8
x-mns-version: 2015-06-06
Authorization: MNS 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEX****
<?xml version="1.0" encoding="UTF-8"?>
<Message xmlns="http://mns.aliyuncs.com/doc/v1/">
<MessageBody>This is a test message</MessageBody>
<DelaySeconds>60</DelaySeconds>
<Priority>1</Priority>
</Message>
Réponse
HTTP/1.1 201 Created
Content-Length:120
Content-Type:text/xml;charset=utf-8
x-mns-request-id:512B2A634403E52B1956****
x-mns-version: 2015-06-06
<?xml version="1.0" encoding="UTF-8"?>
<Message xmlns="http://mns.aliyuncs.com/doc/v1/">
<MessageId>5F290C926D472878-2-14D9529****-200000001</MessageId>
<MessageBodyMD5>C5DD56A39F5F7BB8B3337C6D11B6****</MessageBodyMD5>
<ReceiptHandle>1-ODU4OTkzNDU5My0xNDM1MTk3NjAwLTItNg==</ReceiptHandle>
</Message>
Codes d'erreur
Le tableau suivant répertorie les codes d'erreur spécifiques à cette opération. Pour les codes d'erreur courants, consultez Codes d'erreur courants.
| Code d'erreur | Message d'erreur | Code d'état HTTP | Description | Solution |
|---|---|---|---|---|
| QueueNotExist | The queue name you provided is not exist. | 404 | La file d'attente spécifiée n'existe pas. | Vérifiez le nom de la file d'attente et créez-la si elle n'existe pas. |
| MalformedXML | The XML you provided was not well-formed. | 400 | Le corps de la requête contient un code XML non valide. | Vérifiez le format XML et assurez-vous qu'il est conforme à la syntaxe de la requête. |
| InvalidArgument | The value of Element should between Low and High seconds/bytes. | 400 | Une valeur de paramètre est hors plage. | Vérifiez que DelaySeconds est compris entre 0 et 604800 et que toutes les valeurs de paramètre se situent dans leurs plages valides. |