Intégration d'applicationsService régional
Step Functions
Permet de coordonner plusieurs tâches dans des workflows visuels
Cas d’utilisations
- Orchestration de jobs de machine learning
- Workflows ETL (Extract-Transform-Load)
- Automatisation de processus métiers (onboarding, validation, transactions)
- Traitement par lots (images/vidéos)
Concepts clés
- State Machine : workflow qui définit un processus composé d’étapes
- State : chaque étape du workflow (peut être une tâche, une attente, une décision, etc)
- Task : étape qui exécute une unité de travail (ex : appel Lambda, envoi SNS…)
- Amazon States Language (ASL) : langage JSON pour définir les workflows
- Visual Workflow : console graphique pour concevoir et monitorer les exécutions
Intégrations
- Plus de 200 intégrations AWS natives (Lambda, DynamoDB, ECS, SageMaker, SQS, SNS, Glue…)
- Support des SDK Integrations : appel direct d’API AWS depuis un state machine
- Peut orchestrer des services externes via API Gateway
Bonnes pratiques :
- Gérer les erreurs avec des retries et fallbacks dans les tasks
- Penser à écrire des steps idempotentes
Types de workflow
Workflow standards
- Exactly-once execution (chaque exécution est unique)
- Durée max : 1 an
- Jusqu’à 2000 exécutions/sec
- Facturation par transition d’état
- Cas d’usage : processus longs (approbations, traitement de commandes, pipelines data…)
Workflow express
- At-least-once execution (peut s’exécuter plusieurs fois)
- Durée max : 5 minutes
- Scalabilité massive (des milliers d’exécutions/sec)
- Facturation par exécution, durée et mémoire utilisée
- Cas d’usage : tâches courtes mais nombreuses (IoT, streaming, data ingestion…)
Types d’état
- Pass : retourne une valeur sans traitement
- Task : exécute une tâche (Lambda, ECS, Batch, SNS, SQS, Glue, etc)
- Choice : branchement conditionnel
- Wait : mise en pause
- Succeed / Fail : termine le workflow en succès ou en erreur
- Parallel : exécute plusieurs branches en parallèle
- Map : exécute une étape sur une liste d’éléments (mode parallèle ou séquentiel)