Effectuer des demandes d'API de requête à l'aide du protocole de AWS requête dans Amazon SQS - Amazon Simple Queue Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Effectuer des demandes d'API de requête à l'aide du protocole de AWS requête dans Amazon SQS

Dans cette section, vous apprenez à construire un point de terminaison Amazon SQS, à créer des requêtes GET et POST, et à interpréter les réponses.

Constitution d'un point de terminaison

Afin d'utiliser des files d'attente Amazon SQS, vous devez construire un point de terminaison. Pour plus d'informations sur les points de terminaison Amazon SQS, consultez les pages suivantes dans la Référence générale d'Amazon Web Services :

Chaque point de terminaison Amazon SQS est indépendant. Par exemple, si deux files d'attente sont nommées MyQueueet que l'une contient le point de terminaison sqs.us-east-2.amazonaws.com tandis que l'autre possède le point de terminaisonsqs.eu-west-2.amazonaws.com, les deux files d'attente ne partagent aucune donnée entre elles.

L'exemple suivant correspond à un point de terminaison lançant une requête pour créer une file d'attente.

https://sqs.eu-west-2.amazonaws.com/ ?Action=CreateQueue &DefaultVisibilityTimeout=40 &QueueName=MyQueue &Version=2012-11-05 &AUTHPARAMS
Note

Les noms et les URL des files d'attente sont sensibles à la casse.

La structure de AUTHPARAMS dépend de la signature de la demande d'API. Pour plus d'informations, consultez Signing AWS API Requests dans le manuel Amazon Web Services General Reference.

Envoi de requête GET

Une requête GET Amazon SQS est structurée comme une URL se composant des éléments suivants :

  • Point de terminaison : ressource sur laquelle la requête agit (nom de la file d'attente et URL), par exemple : https://sqs.us-east-2.amazonaws.com/123456789012/MyQueue

  • Action : action que vous souhaitez effectuer sur le point de terminaison. Un point d'interrogation (?) sépare le point de terminaison de l'action, par exemple : ?Action=SendMessage&MessageBody=Your%20Message%20Text.

  • Paramètres : tout paramètre de demande. Chaque paramètre est séparé par une esperluette (&), par exemple : &Version=2012-11-05&AUTHPARAMS.

Voici un exemple de requête GET qui envoie un message à une file d'attente Amazon SQS.

https://sqs.us-east-2.amazonaws.com/123456789012/MyQueue ?Action=SendMessage&MessageBody=Your%20message%20text &Version=2012-11-05 &AUTHPARAMS
Note

Les noms et les URL des files d'attente sont sensibles à la casse.

Dans la mesure où les requêtes GET sont des URL, vous devez coder en URL toutes les valeurs des paramètres. Les espaces ne sont pas autorisés dans les URL. Dès lors, chaque espace est encodé sous la forme %20. Pour faciliter la lecture, le reste de l'exemple n'a pas été encodé selon le format URL.

Envoi de requête POST

Une demande POST Amazon SQS envoie des paramètres de requête sous forme de formulaire dans le corps d'une demande HTTP.

L'exemple suivant illustre un en-tête HTTP avec Content-Type défini sur application/x-www-form-urlencoded.

POST /123456789012/MyQueue HTTP/1.1 Host: sqs.us-east-2.amazonaws.com Content-Type: application/x-www-form-urlencoded

L'en-tête est suivi d'une requête GET form-urlencoded qui envoie un message à une file d'attente Amazon SQS. Chaque paramètre est séparé par une esperluette (&).

Action=SendMessage &MessageBody=Your+Message+Text &Expires=2020-10-15T12%3A00%3A00Z &Version=2012-11-05 &AUTHPARAMS
Note

Seul l'en-tête HTTP Content-Type est obligatoire. L'élément AUTHPARAMS est le même que pour la requête GET.

Votre client HTTP peut ajouter d'autres éléments à la requête HTTP, en fonction de la version HTTP du client.