Trigger AWS SQS / Évènements
Le trigger AWS SQS (ou Évènements) écoute une file d'attente Amazon Simple Queue Service (SQS) ou Google Pub/Sub et déclenche un workflow pour chaque message reçu.
Vue d'ensemble
Ce déclencheur permet de lancer des flux à chaque fois qu'un événement est émis avec Google Pub/Sub ou AWS SQS.
Ce type de trigger est idéal pour :
- Intégrer avec des systèmes AWS ou Google Cloud
- Traiter des messages de manière asynchrone
- Découpler les systèmes
- Gérer des files d'attente de messages
Prérequis
Avant de créer un trigger AWS SQS, vous devez avoir :
- Un compte AWS avec accès à SQS
- Une file d'attente SQS créée
- Les credentials AWS (Access Key ID et Secret Access Key)
- Les permissions nécessaires pour lire depuis la file d'attente
Configuration
Options de base
Lors de la création d'un trigger AWS SQS, vous devez configurer :
Région AWS
Sélectionnez la région AWS où se trouve votre file d'attente :
- Exemples :
us-east-1,eu-west-1,ap-southeast-1 - La région doit correspondre à celle de votre file d'attente
Gestionnaire d'évènements
Source de la réception du message :
- Google Pub/Sub : Actuellement disponible
- AWS SQS : File d'attente Amazon SQS
- D'autres gestionnaires seront disponibles plus tard
Queue URL / Souscription
Pour AWS SQS :
- L'URL complète de votre file d'attente SQS
- Format :
https://sqs.{region}.amazonaws.com/{account-id}/{queue-name}
Pour Google Pub/Sub :
- Identifiant du projet : Identifiant du projet GCP auquel appartient le sujet (topic) à surveiller
- Souscription : Souscription à surveiller. Tous les événements publiés sur cette souscription seront reçus
Credentials AWS
Configurez les credentials AWS :
- Access Key ID : Votre clé d'accès AWS
- Secret Access Key : Votre clé secrète AWS
- Utilisez un Credential Ecosystem pour stocker ces informations de manière sécurisée
Ne stockez jamais vos credentials AWS directement dans la configuration. Utilisez toujours un Credential Ecosystem.
Options avancées
Visibility Timeout
Le délai pendant lequel un message est invisible après avoir été récupéré :
- Par défaut : 30 secondes
- Augmentez si votre workflow prend plus de temps à s'exécuter
- Si le message n'est pas supprimé avant la fin du timeout, il redevient visible
Max Number of Messages
Nombre maximum de messages à récupérer par requête :
- Par défaut : 1
- Maximum : 10
- Plus de messages = traitement plus rapide mais plus complexe
Wait Time
Temps d'attente pour recevoir des messages (long polling) :
- Par défaut : 0 (short polling)
- Recommandé : 20 secondes (long polling)
- Réduit le nombre de requêtes et les coûts
Données transmises
Lorsqu'un message est reçu depuis SQS, le workflow reçoit :
{
"messageId": "123e4567-e89b-12d3-a456-426614174000",
"receiptHandle": "AQEBzWwaftRI0KuVm4tP...",
"body": {
"event": "order.created",
"data": {
"orderId": "12345",
"amount": 99.99
}
},
"attributes": {
"ApproximateReceiveCount": "1",
"SentTimestamp": "1234567890123"
},
"messageAttributes": {
"customAttribute": {
"stringValue": "value",
"dataType": "String"
}
},
"receivedAt": "2024-01-15T10:30:00Z"
}
Exemple d'utilisation
Scénario : Traitement de commandes depuis SQS
-
Créer la file d'attente dans AWS :
- Accédez à la console AWS SQS
- Créez une nouvelle file d'attente
- Notez l'URL de la file d'attente
-
Créer un Credential AWS :
- Dans Ecosystem, créez un Credential de type AWS
- Entrez votre Access Key ID et Secret Access Key
-
Créer le trigger :
- Type : AWS SQS
- Région :
us-east-1 - Queue URL : L'URL de votre file d'attente
- Credentials : Le credential créé précédemment
- Visibility Timeout : 60 secondes (si votre workflow prend du temps)
-
Créer le workflow associé :
- Reçoit le message depuis SQS
- Traite la commande
- Supprime le message de la file après traitement réussi
-
Déployer :
- Déployez le trigger dans l'environnement de production
- Le trigger commence à écouter la file d'attente
Gestion des messages
Suppression automatique
Par défaut, Ecosystem supprime automatiquement le message de la file après traitement réussi. Si le workflow échoue, le message reste dans la file et sera retraité.
Suppression manuelle
Dans certains cas, vous pouvez vouloir supprimer manuellement le message :
- Utilisez le nœud AWS SQS dans le workflow
- Supprimez le message après validation
Gestion des erreurs
Si le workflow échoue :
- Le message redevient visible après le Visibility Timeout
- Il sera retraité automatiquement
- Après plusieurs tentatives, considérez de déplacer le message vers une DLQ (Dead Letter Queue)
Bonnes pratiques
- Credentials : Utilisez toujours des Credentials Ecosystem, jamais des valeurs en dur
- Visibility Timeout : Configurez un timeout suffisant pour votre workflow
- Long Polling : Activez le long polling pour réduire les coûts
- Dead Letter Queue : Configurez une DLQ pour les messages en erreur
- Monitoring : Surveillez les métriques SQS dans AWS
- Sécurité : Utilisez des IAM roles avec permissions minimales
- Idempotence : Assurez-vous que le traitement est idempotent (les messages peuvent être dupliqués)
Coûts AWS
SQS facture :
- Les requêtes API (recevoir, supprimer)
- Le stockage des messages
- Le transfert de données
Optimisez en utilisant le long polling et en supprimant rapidement les messages traités.