Demo Instructions : Créer votre première file d’attente Amazon SQS

Instruction de Labs

Créer votre première file d’attente Amazon SQS

Présentation

Amazon Simple Queue Service (Amazon SQS) est un service de file d’attente de messages entièrement géré. Il permet à différentes applications ou composants d’échanger des messages de manière asynchrone. Par exemple, une application peut envoyer une tâche dans une file SQS sans attendre qu’un autre composant la traite immédiatement. Dans ce lab, vous allez :

  •       créer une file d’attente Amazon SQS ;
  •       envoyer plusieurs messages ;
  •       recevoir les messages ;
  •       observer leurs informations ;
  •       comprendre le rôle du Visibility Timeout ;
  •       supprimer les messages après traitement ;
  •       supprimer la file d’attente.

Niveau : Débutant

Difficulté : Facile

Durée estimée : 10 à 15 minutes

Région AWS : Europe (Ireland) — eu-west-1

Service AWS utilisé

  •       Amazon SQS

Notions CLF-C02 couvertes

Cloud Technology and Services : Application Integration

Impact coût : Très faible ; quelques requêtes et messages SQS.

Nettoyage manuel requis : Oui

Environnement du lab

Ressources préinitialisées

Aucune ressource AWS spécifique n’est préinitialisée pour ce lab. Vous allez créer la file SQS vous-même.

Vérification avant de démarrer

Avant de poursuivre :

  •       vérifiez que la Région est Europe (Ireland) — `eu-west-1` ;
  •       vérifiez que votre environnement permet de créer, utiliser et supprimer des files Amazon SQS.

Objectifs pédagogiques

À la fin de ce lab, vous serez capable de :

  •       expliquer le rôle d’Amazon SQS ;
  •       créer une file d’attente Standard ;
  •       comprendre la différence générale entre une file Standard et une file FIFO ;
  •       envoyer un message dans une file ;
  •       recevoir un message ;
  •       comprendre le rôle d’un producteur et d’un consommateur ;
  •       comprendre le principe du Visibility Timeout ;
  •       supprimer un message après son traitement ;
  •       supprimer une file d’attente.

Étape 1 — Accéder à Amazon SQS

  1.       Connectez-vous à la console AWS.
  2.       Dans la barre de recherche située en haut de la console, saisissez :
				
					SQS
				
			
  1.       Sélectionnez :

Simple Queue Service

Vous arrivez sur la console Amazon SQS.

Étape 2 — Vérifier la Région AWS

Vérifiez la Région sélectionnée en haut à droite de la console. La Région doit être :

Europe (Ireland)

Son identifiant est :

				
					eu-west-1
				
			

Si nécessaire :

  1.       cliquez sur le nom de la Région ;
  2.       sélectionnez Europe (Ireland).

Étape 3 — Créer une nouvelle file d’attente

Dans la console Amazon SQS, cliquez sur :

Create queue

La page de création d’une file d’attente s’affiche.

Étape 4 — Choisir le type de file

Dans :

Type

deux options sont proposées :

  •       Standard ;
  •       FIFO.

Sélectionnez :

Standard

Le type Standard est adapté à la majorité des usages et offre un débit très élevé. Une file FIFO — First-In-First-Out est utilisée lorsqu’il est important de conserver strictement l’ordre des messages et d’éviter les doublons lors de l’envoi.

				
					À retenir
Standard : débit très élevé, livraison au moins une fois, ordre non strictement garanti.
FIFO : ordre strict des messages et traitement conçu pour éviter les doublons.
3.</p>
 </body>
 </html>

				
			

Étape 5 — Donner un nom à la file

Dans :

Name

saisissez :

				
					lab-sqs-queue
				
			

Ce nom permettra d’identifier facilement votre file d’attente.

Étape 6 — Observer la configuration

Dans la section :

Configuration

plusieurs paramètres sont disponibles. Pour ce lab, conservez les valeurs proposées par défaut. Vous devriez notamment trouver :

Visibility timeout

				
					30 seconds
				
			

Message retention period

				
					4 days
				
			

Delivery delay

				
					0 seconds
				
			

Receive message wait time

				
					0 seconds
				
			

Aucune modification n’est nécessaire.

À quoi servent ces paramètres ?

Visibility timeout

Durée pendant laquelle un message reçu devient temporairement invisible pour les autres consommateurs.

Message retention period

Durée maximale pendant laquelle SQS conserve un message qui n’a pas été supprimé.

Delivery delay

Durée pendant laquelle SQS attend avant de rendre un nouveau message disponible.

Receive message wait time

Durée pendant laquelle SQS peut attendre l’arrivée d’un message lors d’une demande de réception.

Étape 7 — Observer le chiffrement

Repérez la section :

Encryption

Conservez la configuration proposée par défaut. Amazon SQS applique un chiffrement côté serveur aux messages stockés dans la file. Aucune modification n’est nécessaire.

Étape 8 — Conserver les autres paramètres par défaut

Ne modifiez pas :

  •       Access policy ;
  •       Redrive allow policy ;
  •       Dead-letter queue ;
  •       Tags.

Ces fonctionnalités ne sont pas nécessaires pour ce premier lab. Cliquez sur :

Create queue

Étape 9 — Vérifier la création de la file

Amazon SQS ouvre la page de votre nouvelle file. Vous devriez voir :

				
					lab-sqs-queue
				
			

Observez les principales informations.

Type

Standard

Queue URL

Une adresse similaire à :

				
					https://sqs.eu-west-1.amazonaws.com/123456789012/lab-sqs-queue
				
			

ARN

Une valeur similaire à :

				
					arn:aws:sqs:eu-west-1:123456789012:lab-sqs-queue
				
			
				
					À retenir
Une file SQS possède notamment :

				
			
  •       un nom ;
  •       une URL ;
  •       un ARN.

Étape 10 — Comprendre le fonctionnement d’une file

Amazon SQS utilise principalement deux rôles.

Producteur

Le producteur envoie un message dans la file. Par exemple, une application e-commerce peut envoyer un message lorsqu’un client passe une commande.

Consommateur

Le consommateur récupère le message et le traite. Par exemple, un service de traitement de commandes peut récupérer le message et démarrer la préparation de la commande.

				
					À retenir
Amazon SQS permet de découpler le producteur du consommateur.
Le producteur peut envoyer un message même si le consommateur n’est pas immédiatement disponible.

				
			

Étape 11 — Accéder à l’envoi de messages

Avec :

				
					lab-sqs-queue
Index.html
sont considérés comme deux noms différents.

				
			

sélectionnée, cliquez sur :

Send and receive messages

Vous pouvez utiliser cette page pour envoyer et recevoir manuellement des messages.

Étape 12 — Envoyer votre premier message

Dans :

Message body

saisissez :

				
					Commande #1001 reçue
				
			

Conservez :

Delivery delay

à :

Cliquez sur :

Send message

Un message de confirmation apparaît. Votre premier message est maintenant placé dans la file.

Étape 13 — Envoyer un deuxième message

Dans :

Message body

saisissez :

				
					Commande #1002 reçueusage ne l’exige pas.

				
			

Cliquez sur :

Send message

Étape 14 — Envoyer un troisième message

Envoyez un dernier message :

				
					Commande #1003 reçue
				
			

Cliquez sur :

Send message

Vous avez maintenant envoyé trois messages dans la file.

Étape 15 — Observer les messages

Revenez si nécessaire sur la page principale de :

				
					lab-sqs-queue
				
			

Vous pourrez notamment rencontrer des informations comme :

Messages available

Messages actuellement présents dans la file et disponibles pour être reçus.

Messages in flight

Messages déjà reçus par un consommateur mais qui n’ont pas encore été supprimés.

				
					À noter
Les nombres affichés par Amazon SQS peuvent être approximatifs et nécessiter quelques instants avant d’être mis à jour.

				
			

Étape 16 — Recevoir les messages

Cliquez de nouveau sur :

Send and receive messages

Descendez jusqu’à :

Receive messages

Cliquez sur :

Poll for messages

Amazon SQS interroge la file afin de récupérer les messages disponibles. Après quelques instants, les messages apparaissent dans la section :

Messages

Vous devriez retrouver les messages envoyés précédemment.

Étape 17 — Examiner un message

Sélectionnez l’un des messages reçus. Par exemple :

				
					Commande #1001 reçue
				
			

Ouvrez ses détails. Vous pouvez notamment observer :

Message body

Le contenu du message.

Message ID

Un identifiant unique attribué au message.

Sent date

La date et l’heure d’envoi.

Receive count

Le nombre de fois où le message a été reçu.

				
					À retenir
Chaque message possède un contenu, mais également des métadonnées permettant de l’identifier et de suivre son traitement.

				
			

Étape 18 — Comprendre le Visibility Timeout

Lorsqu’un consommateur reçoit un message, Amazon SQS ne le supprime pas immédiatement. Le message devient temporairement invisible pour les autres consommateurs pendant la durée du :

Visibility Timeout

Dans votre file, cette durée est :

30 seconds

Pendant cette période, le consommateur est censé traiter le message. Deux situations sont alors possibles :

  1.       Le traitement réussit : le consommateur supprime le message.
  2.       Le message n’est pas supprimé avant la fin du Visibility Timeout : il redevient visible et peut être reçu de nouveau.
				
					À retenir
Recevoir un message ne signifie pas le supprimer.
La suppression doit être effectuée explicitement après traitement.

				
			

Étape 19 — Supprimer un message traité

Dans la liste des messages reçus, sélectionnez :

				
					Commande #1001 reçue
				
			

Cliquez sur :

Delete

Confirmez avec :

Delete

Le message est définitivement supprimé de la file.

Étape 20 — Comprendre pourquoi les messages ne sont pas supprimés automatiquement

Imaginez qu’un consommateur récupère un message et commence son traitement. Si l’application rencontre une erreur avant la fin du traitement, supprimer automatiquement le message entraînerait sa perte. Amazon SQS conserve donc le message tant que le consommateur ne l’a pas explicitement supprimé. Si le traitement échoue, le message peut ainsi redevenir disponible et être traité de nouveau.

Étape 21 — Recevoir les messages restants

Cliquez de nouveau sur :

Poll for messages

Vous devriez encore pouvoir retrouver les autres messages :

  •       Commande #1002 reçue ;
  •       Commande #1003 reçue.

Sélectionnez les messages restants. Cliquez sur :

Delete

puis confirmez leur suppression.

Étape 22 — Vérifier que la file est vide

Cliquez de nouveau sur :

Poll for messages

Aucun des trois messages ne doit rester dans la file. Vous avez maintenant réalisé le cycle de traitement principal d’Amazon SQS :

  1.       un producteur envoie un message ;
  2.       SQS conserve le message dans la file ;
  3.       un consommateur reçoit le message ;
  4.       le consommateur traite le message ;
  5.       le consommateur supprime le message après traitement.

Étape 23 — Comprendre le découplage

Prenons l’exemple d’une boutique en ligne. Lorsqu’un client passe une commande, l’application web peut envoyer un message dans Amazon SQS. Le service chargé de traiter les commandes peut ensuite récupérer ce message lorsque ses ressources sont disponibles. L’application web n’a donc pas besoin d’attendre que le traitement complet soit terminé.

				
					À retenir
Une file de messages permet aux différents composants d’une application de fonctionner de manière plus indépendante.

				
			

Étape 24 — Comprendre les files Standard

Vous avez créé une file :

Standard

Les files Standard offrent un débit très élevé. Elles utilisent un modèle de livraison :

at-least-once

Cela signifie qu’un message est livré au moins une fois, mais qu’il peut exceptionnellement être reçu plusieurs fois. L’ordre des messages n’est pas non plus strictement garanti. Pour les applications nécessitant un ordre strict, Amazon SQS propose les files : FIFO — First-In-First-Out.

Nettoyage du lab :

  1.       Retournez dans Amazon SQS → Queues.
  2.       Sélectionnez lab-sqs-queue.
  3.       Cliquez sur Delete.
  4.       Suivez l’instruction de confirmation affichée par la console.
  5.       Vérifiez que lab-sqs-queue n’apparaît plus.

La suppression de la file supprime également les éventuels messages encore présents.

Validation du lab

Vous avez terminé le lab si vous avez réussi à :

  •       accéder à Amazon SQS ;
  •       créer une file Standard ;
  •       nommer la file lab-sqs-queue ;
  •       identifier la Queue URL ;
  •       identifier l’ARN de la file ;
  •       envoyer plusieurs messages ;
  •       recevoir les messages avec Poll for messages ;
  •       observer le contenu et les informations d’un message ;
  •       comprendre le rôle du Visibility Timeout ;
  •       supprimer un message après traitement ;
  •       comprendre le principe de découplage ;
  •       comprendre la différence générale entre Standard et FIFO ;
  •       supprimer la file d’attente.

En cas de problème

Je ne trouve pas Amazon SQS

Dans la barre de recherche de la console AWS, saisissez :

				
					SQS
				
			

puis sélectionnez :

Simple Queue Service

Je ne trouve pas lab-sqs-queue

Vérifiez que vous utilisez la Région :

Europe (Ireland) — eu-west-1

Puis ouvrez :

Amazon SQS → Queues

Je ne vois pas mes messages

Ouvrez :

				
					lab-sqs-queue
				
			

puis :

Send and receive messages

Cliquez sur :

Poll for messages

Il peut être nécessaire d’attendre quelques instants avant que les messages apparaissent.

Un message apparaît de nouveau alors que je l’avais déjà reçu

C’est un comportement possible. Recevoir un message ne le supprime pas. S’il n’est pas supprimé, il peut redevenir visible après la fin du :

Visibility Timeout

Je ne peux pas supprimer un message

Sélectionnez d’abord le message reçu dans la section :

Messages

puis cliquez sur :

Delete

Je ne peux pas recréer immédiatement une file avec le même nom :

Après la suppression d’une file Amazon SQS, AWS peut imposer un court délai avant qu’une nouvelle file portant exactement le même nom puisse être créée.

Lab terminé

Félicitations ! Vous savez maintenant :

  •       expliquer le rôle d’Amazon SQS ;
  •       créer une file d’attente Standard ;
  •       envoyer des messages ;
  •       recevoir des messages ;
  •       comprendre le rôle du Visibility Timeout ;
  •       supprimer un message après son traitement ;
  •       comprendre le principe de découplage entre producteur et consommateur ;
  •       distinguer les grands principes des files Standard et FIFO ;
  •       supprimer une file d’attente lorsqu’elle n’est plus nécessaire.