Présentation

Q : En quoi consiste AWS Step Functions ?

AWS Step Functions est un service entièrement géré qui facilite la coordination des composants des applications distribuées et des micro-services à l'aide de flux de travail visuels. En créant des applications à partir de composants individuels qui remplissent chacun une fonction discrète, vous pouvez évoluer plus facilement et changer d'application plus rapidement.

Step Functions est un moyen fiable de coordonner les composants et de parcourir les fonctions de votre application. Step Functions fournit une console graphique permettant d'organiser et de visualiser les composants de votre application sous la forme d'une série d'étapes. Il est ainsi plus facile de créer et d'exécuter des applications à plusieurs étapes.

Step Functions déclenche et suit automatiquement chaque étape et relance en cas d'erreur, de sorte que votre application s'exécute dans l'ordre et comme prévu. Step Functions enregistre l'état de chaque étape, de sorte qu'en cas d'incident, vous pouvez diagnostiquer et déboguer les problèmes plus rapidement. Vous pouvez modifier et ajouter des étapes sans même écrire du code, ce qui vous permet de faire évoluer plus facilement votre application et d'innover plus rapidement.

Q : quels sont les avantages offerts par la conception de mon application en utilisant l'orchestration ?

La décomposition d'une application en composants de service (ou étapes) garantit que la défaillance d'un composant n'entraîne pas l'arrêt de tout le système. Chaque composant évolue indépendamment et peut être mis à jour sans que le système entier doive être redéployé après chaque changement.

La coordination des composants de service implique la gestion des dépendances et de l'ordonnancement de l'exécution, ainsi que de la concurrence, conformément au flux logique de l'application. Dans une telle application, vous pouvez utiliser l'orchestration de services pour ce faire et pour gérer les défaillances.

Q : quels sont les cas d'utilisation courants de Step Functions ?

Step Functions aide à résoudre tout problème de calcul ou processus commercial qui peut être subdivisé en une série d'étapes. Il est également utile pour créer des flux de travail de bout en bout afin de gérer les tâches présentant des interdépendances. Parmi les cas d'utilisation les plus courants, on trouve notamment les cas suivants :

  • Traitement des données : consolider les données de plusieurs bases de données dans des rapports unifiés, affiner et réduire de grands ensembles de données dans des formats utiles, itérer et traiter des millions de fichiers dans un compartiment Amazon Simple Storage Service (S3) avec des flux de travail à haute concurrence, ou coordonner des flux de travail d'analyse et de machine learning à plusieurs étapes
  • Création d'applications d'IA générative sans serveur : tirer parti de Step Functions pour l’orchestration des interactions avec les modèles de fondation Amazon Bedrock, le chaînage d’invites, le paramétrage précis et l’enrichissement grâce aux fonctionnalités de plus de 220 services AWS
  • DevOps et automatisation informatique : création d'outils pour l'intégration et le déploiement continus, ou création d'applications pilotées par événements qui réagissent automatiquement aux modifications de l'infrastructure
  • E-commerce : automatise des processus métier critiques, notamment le traitement des commandes et le suivi d'inventaire
  • Applications Web : met en œuvre des processus d’enregistrement utilisateur solides et l’authentification à la connexion

Pour plus de détails, explorez les cas d'utilisation et les témoignages client relatifs à AWS Step Functions.

Q : comment fonctionne AWS Step Functions ?

Lorsque vous utilisez Step Functions, vous définissez des machines à état qui décrivent votre flux de travail comme une série d'étapes, leurs relations, ainsi que leurs entrées et sorties. Les machines à état contiennent un certain nombre d'états, dont chacun représente une étape dans un diagramme de flux de travail.

Les états peuvent effectuer des travaux, faire des choix, passer des paramètres, lancer une exécution parallèle, gérer les délais d'attente ou mettre fin à votre flux de travail en cas de succès ou d'échec.

La console visuelle représente automatiquement chaque état dans l'ordre d'exécution, ce qui facilite la conception d'applications à plusieurs étapes. La console met en évidence le statut de chaque étape en temps réel et fournit un historique détaillé de chaque exécution.

Pour plus d'informations, consultez Fonctionnement de Step Functions dans le guide du développeur Step Functions.

Q : Comment Step Functions se connecte-t-il à mes ressources ?

Vous pouvez orchestrer n'importe quel service AWS à l'aide des intégrations aux services ou n'importe quel composant d'application autogéré à l'aide des tâches d'activité.

Les intégrations aux services vous permettent de concevoir des appels aux services AWS et d'inclure la réponse dans votre flux de travail. Les intégrations de services AWS-SDK vous permettent d'invoquer l'une des 9 000 actions API AWS de plus de 200 services directement à partir de votre flux de travail.

Les intégrations de services optimisées simplifient encore l'utilisation de services courants tels que AWS Lambda, Amazon Elastic Container Service (ECS), AWS Glue ou Amazon EMR grâce à des fonctionnalités telles que la génération de politique IAM et le modèle RunAJob qui attendra automatiquement l'achèvement des tâches asynchrones.

Les tâches d'activité intègrent des travaux d'activité que vous exécutez à l'endroit de votre choix, notamment dans Amazon Elastic Compute Cloud (EC2), dans Amazon ECS, sur un appareil mobile ou sur un serveur sur site. Le programme exécutant de l'activité interroge Step Functions pour le travail, prend les entrées de Step Functions, exécute le travail en utilisant votre code et renvoie les résultats. Comme les programmes exécutant de l'activité demandent du travail, il est plus facile d'utiliser des travaux qui sont déployés derrière un pare-feu.

Une machine d'état Step Functions peut contenir différentes combinaisons d'intégrations de services et de tâches d'activité. Les applications Step Functions peuvent également combiner des les programmes exécutant de l'activité actifs dans un centre de données avec des tâches de service exécutées dans le cloud. Les travaux du centre de données continuent à fonctionner comme d'habitude, ainsi que toutes les tâches de service basées sur le cloud.

Q : comment démarrer avec Step Functions ?

Il existe plusieurs manières de démarrer avec Step Functions :

Q : Quel est le langage utilisé dans Step Functions ?

Les machines d'état AWS Step Functions sont définies dans JSON en utilisant le langage déclaratif Amazon States Language.

Vous pouvez utiliser n'importe quel langage de programmation pour créer un programme exécutant de l'activité dès lors que vous pouvez communiquer avec Step Functions en utilisant les API de service Web.

Pour plus de commodité, vous pouvez utiliser un SDK AWS dans la langue de votre choix. Lambda prend en charge le code écrit en Node.js (JavaScript), Python, Golang (Go) et C# (avec l'exécution .NET Core et d'autres langages). Pour obtenir des informations supplémentaires sur le modèle de programmation Lambda, reportez-vous au Guide du développeur Lambda.

Q : Mon flux de travail possède certaines propriétés de Standard Workflows et certaines propriétés d'Express Workflows. Comment tirer parti du meilleur des deux mondes ?

Vous pouvez composer les deux types de flux de travail :

  • En exécutant Express Workflows comme flux de travail enfant de Standard Workflows : Express Workflows est appelé à partir d'un état de tâche dans l'orchestration de flux de travail parente. Leur exécution s'effectue ou échoue ensuite selon la perspective parente. La politique de nouvelles tentatives du parent s'applique pour cette tâche.
  • En appelant Express Workflows depuis un Express Workflows, tant que tous les flux de travail ne dépassent pas la limite de temps du parent : vous pouvez choisir de factoriser vos flux de travail de cette manière si votre cas d'utilisation a une combinaison d'étapes de longue durée ou uniques et d'étapes de courte durée à haut débit.

Q : Comment Step Functions prend-il en charge le parallélisme ?

Step Functions comprend un état Map pour le parallélisme dynamique. L'état Map a deux modes de fonctionnement, e ligne et distribué, et les deux modes exécutent le même ensemble d'étapes pour une collection d'éléments. Une carte en mode en ligne peut supporter une concurrence de 40 branches parallèles et des limites d'historique d'exécution de 25 000 événements ou d'environ 6 500 transitions d'état dans un flux de travail. Avec le mode distribué, vous pouvez exécuter jusqu'à 10 000 branches parallèles. La carte distribuée a été optimisée pour Amazon S3, ce qui vous permet d'itérer plus facilement sur les objets d'un compartiment S3. Voir la FAQ dans la section sur l'intégration. Les itérations d'une carte distribuée sont divisées en exécutions parallèles pour vous aider à surmonter les limites de charge utile et d'historique d'exécution. Vous pouvez également choisir si chaque itération est effectuée par un flux de travail standard, qui est idempotent, ou un flux de travail express, qui est plus rapide et moins coûteux, mais pas idempotent. En savoir plus sur l'état de la carte.

Comparaisons

Q : dans quels cas faut-il utiliser Step Functions plutôt que Amazon Simple Queue Service (SQS) ?

Utilisez AWS Step Functions lorsque vous devez coordonner des composants de service dans le développement d'applications hautement évolutives et contrôlables. Utilisez Amazon Simple Queue Service (Amazon SQS) lorsque vous avez besoin d'une file d'attente hébergée fiable et hautement évolutive pour l'envoi, le stockage et la réception de messages entre les services.
 
  • Step Functions garde la trace de toutes les tâches et évènements dans une application, SQS nécessite que vous assuriez vous-même le suivi par application, en particulier si votre application utilise plusieurs files d'attente.
  • La console Step Functions et les API de visibilité offrent une vue orientée application qui vous permet notamment de rechercher des exécutions, d'analyser en détail une exécution donnée et d'administrer des exécutions. SQS nécessite d'implémenter des fonctionnalités supplémentaires.
  • Step Functions propose plusieurs fonctionnalités qui facilitent le développement d'applications, comme la transmission de données entre les tâches ou la flexibilité en matière de distribution des tâches, tandis que SQS requiert que vous implémentiez une fonctionnalité au niveau de l'application.
  • Step Functions offre des capacités prêtes à l'emploi pour construire des flux de travail ou coordonner vos applications distribuées. SQS vous permet de construire des flux de travail basiques, mais offre une fonctionnalité limitée.

Dans quels cas faut-il utiliser Step Functions plutôt que Amazon Simple Workflow Service (SWF) ?

Vous devriez envisager d'utiliser Step Functions pour toutes vos nouvelles applications, car il s'agit d'une approche plus productive et plus agile pour coordonner les composants d'une application à l'aide de flux de travail visuels. Si vous avez besoin que des signaux externes interviennent dans vos processus ou souhaitez lancer des processus enfants qui renvoient un résultat à un parent, utilisez plutôt Amazon Simple Workflow Service (Amazon SWF).

Avec SWF, au lieu d'écrire des machines à états en JSON déclaratif, vous pouvez écrire un programme de décision pour séparer les étapes d'activité des étapes de décision. Cela vous permet d'avoir un contrôle total sur votre logique d'orchestration, mais augmente la complexité du développement des applications. Vous pouvez écrire des programmes décideurs dans le langage de votre choix, ou vous appuyer sur le cadre Flow pour utiliser des structures de programmation qui organisent les interactions asynchrones pour vous.

Quel est le lien entre l'intégration des points de terminaison HTTPS de Step Functions et les destinations de l'API Amazon EventBridge ?

Amazon EventBridge est un service d'intégration sans serveur qui utilise les événements pour relier les composants d'application entre eux, ce qui permet aux développeurs de créer plus facilement des applications évolutives basées sur les événements. Les destinations de l’API sont une fonctionnalité d'EventBridge qui vous permet de créer des règles pour transmettre des événements à des points de terminaison tiers afin de dissocier les producteurs d'événements des consommateurs.

L'intégration des points de terminaison HTTPS d'AWS Step Functions vous permettra d'invoquer des services basés sur HTTPS et de recevoir une réponse qui pourra être utilisée pour contrôler le flux de votre exécution en fonction de votre logique métier. Amazon EventBridge se concentre sur le routage des événements, tandis que Step Functions se concentre sur l'orchestration des flux de travail et la gestion des états. L'intégration des points de terminaison HTTPS des destinations de l'API EventBridge et de Step Functions peut prendre en charge une connexion à des fins d'authentification, afin que vous puissiez réutiliser les informations d'authentification entre les services. Les deux services peuvent être utilisés ensemble pour créer des applications distribuées hautement évolutives et robustes.

Intégration

Q : comment Step Functions connecte-t-il et coordonne-t-il les autres services AWS ?

Les flux de travail que vous créez avec Step Functions peuvent connecter et coordonner plus de 200 services AWS en utilisant des intégrations de service. Par exemple, vous pouvez :

  • Appeler une fonction AWS Lambda
  • Exécuter une tâche ECS ou AWS Fargate
  • Récupérer un élément existant sur une table Amazon DynamoDB ou placer un nouvel élément sur une table DynamoDB
  • Soumettre une tâche AWS Batch et attendre qu'elle soit achevée
  • Invoquer le modèle de fondation Amazon Bedrock
  • Publier un message sur une rubrique SNS
  • Envoyer un message à une file d'attente Amazon SQS
  • Lancer l’exécution d’une tâche AWS Glue
  • Créer une tâche Amazon SageMaker pour entraîner un module de machine learning ou transformer un ensemble de données par lots

Pour en savoir plus sur l'utilisation de Step Functions pour la connexion à d'autres services AWS, consultez le guide du développeur Step Functions. Vous pouvez également créer des tâches dans les machines d'état exécutant des applications. Reportez-vous aux questions fréquentes (FAQ) dans la section Présentation, Comment connecter Step Functions à mes ressources ?

Pour les cas d'utilisation de Step Functions les plus communs, visitez la page concernant les cas d'utilisation, qui comporte les cas détaillés, en plus de leurs visualisations d'architecture.

Q : Comment s'intègre Step Functions aux applications tierces ?

Grâce à l'intégration des points de terminaison HTTPS d'AWS Step Functions, vous pouvez directement intégrer les services HTTP, y compris les applications SaaS. À l'aide d'une interface visuelle, vous pouvez créer et orchestrer des applications distribuées composées de services AWS et d'applications SaaS.

Q : Comment puis-je tester, analyser ou déboguer mes exécutions ?

Vous pouvez utiliser l'API TestState pour tester une seule étape de votre flux de travail, ce qui permet des cycles de commentaires plus rapides pour accélérer le développement. TestState vous permet d'appeler directement les services et les points de terminaison, de modifier l'entrée pour imiter différents scénarios et d’examiner la réponse. Vous pouvez accéder à TestState via Workflow Studio, ce qui facilite les tests pendant la création sans avoir à déployer votre flux de travail. TestState accepte une définition et une entrée d'état uniques, puis renvoie de manière synchrone la sortie d'état ainsi que les transformations de données intermédiaires. Après avoir exécuté votre flux de travail, vous pouvez analyser et déboguer les exécutions via Amazon CloudWatch Logs, AWS X-Ray et directement dans la console Step Functions grâce à une expérience utilisateur visuelle qui vous permet d'identifier rapidement les problèmes. 

Q : Comment Step Functions peut-il m'aider à traiter un grand jeu de données dans Amazon S3 ?

Vous pouvez créer des flux de travail à l'aide d'un état Map en mode distribué pour effectuer un traitement à grande échelle de données telles que des journaux, des fichiers multimédias, des transactions commerciales ou des données de capteurs IoT. Step Functions va parcourir les éléments et lancer des exécutions parallèles de flux de travail, ce qui vous permet de mettre en place un traitement des données à la demande à grande échelle. L'état Map distribué a été optimisé pour fonctionner avec S3. Vous pouvez spécifier un compartiment S3 avec des critères de filtrage, un fichier manifeste S3, une collection JSON ou un fichier CSV stocké dans S3 comme entrées pour votre flux de travail. Vous pouvez également spécifier un compartiment S3 pour les sorties d'exécution d'une carte distribuée.

Comment Step Functions fonctionne-t-il avec Amazon API Gateway ?

Vous pouvez associer vos API Step Functions à Amazon API Gateway pour que ces API appellent vos machines d'état au moment où une requête HTTPS est envoyée à une méthode d'API que vous définissez.

Vous pouvez utiliser l'API d'une passerelle API pour démarrer des machines d'état Step Functions qui coordonnent les composants d'une application backend distribuée, et intégrer des tâches d'activité humaine dans les étapes de votre application, telles que des demandes d'approbation, et leurs réponses.

Vous pouvez également effectuer des appels asynchrones sans serveur vers les API des services que votre application utilise. Pour plus d'informations, reportez-vous à notre tutoriel Création d'une API Step Functions en utilisant une passerelle API.

Q : Comment le service AWS Step Functions fonctionne-t-il avec Amazon EventBridge ?

La chorégraphie et l'orchestration sont deux modèles différents de communication entre les services distribués. Dans l'orchestration, la communication est contrôlée plus étroitement et Step Functions, un service d'orchestration, coordonne l'interaction et l'ordre dans lequel les services sont invoqués.

La chorégraphie permet la communication sans contrôle étroit. Avec Amazon Eventbridge, les évènements se déplacent entre les services sans coordination centralisée. De nombreuses applications utilisent la chorégraphie et l'orchestration pour différents cas d'utilisation. 

Des exemples de combinaison de Step Functions et EventBridge peuvent inclure l'envoi d'un évènement ou la création d'un planning avec EventBridge Scheduler pour déclencher un flux de travail AWS Step Functions, suivi par l'émission d'évènements à différentes étapes de votre flux de travail.

En quoi consiste AWS Step Functions par rapport à AWS Lambda

AWS Lambda est un service de calcul d'événement sans serveur qui vous permet d'exécuter du code pour presque tout type d'application ou de service dorsal, sans vous soucier de l'allocation ou de la gestion des serveurs. Step Functions est un service d'orchestration sans serveur qui vous permet de facilement coordonner plusieurs fonctions Lambda dans des flux de travail flexibles faciles à déboguer et à modifier. Vos fonctions Lambda ne nécessitent pas de logique supplémentaire grâce à Step Functions qui déclenche et suit chaque étape de votre application à votre place.

AWS Step Functions est-il sans serveur ?

Oui. Step Functions est un service d'orchestration sans serveur. Step Functions mesure automatiquement les opérations et le calcul sous-jacent pour exécuter les étapes de votre application pour vous, en réponse à des changements de charges de travail. Step Functions dispose d'une tolérance de faute intégrée et maintient la capacité de service sur plusieurs zones de disponibilité au sein de chaque région. Vous bénéficiez ainsi d'une protection de vos applications face aux défaillances d'une machine individuelle ou de votre centre de données. Cela permet d'assurer une grande disponibilité pour le service et le flux de travail de l'application opérée.
 
Step Functions offre un modèle de facturation à la carte pour améliorer l'agilité et optimiser les coûts. En savoir plus sur la tarification de Step Functions.

Q : Comment la journalisation et la surveillance fonctionnent-elles pour Step Functions ?

AWS Step Functions envoie des métriques à Amazon CloudWatch et AWS CloudTrail pour la surveillance d'application. CloudWatch collecte et assure le suivi des mesures, définit des alarmes et réagit automatiquement aux modifications apportées à AWS Step Functions.

CloudTrail capture tous les appels d'API pour Step Functions en tant qu'événements, y compris les appels de la console Step Functions et les appels de code aux API Step Functions. Step Functions prend également en charge les règles gérées par CloudWatch Events pour chaque service intégré dans votre flux de travail, et créera et gérera les règles CloudWatch Events dans votre compte AWS si nécessaire.

Pour obtenir des informations supplémentaires, consultez la section Surveillance et journalisation du Guide du développeur Step Functions.

Q : Que se passe-t-il si mon flux de travail express échoue en raison de nouvelles tentatives non réussies ou d'une exception non gérée ?

Par défaut, Express Workflows transmet tous les résultats à CloudWatch Logs, y compris les informations relatives à l'entrée, à la sortie et aux étapes terminées du flux de travail. Vous pouvez sélectionner différents niveaux de journalisation pour ne consigner que les erreurs, et choisir de ne pas effectuer cette dernière opération avec les entrées et les sorties. Les flux de travail avec lesquelles de nouvelles tentatives ne sont plus possibles, ou qui sont associés à une exception non gérée, doivent être exécutés de nouveau depuis le début.

Q : Comment Step Functions vous aide à créer des applications d'IA générative ?

Step Functions dispose d'une intégration optimisée avec Amazon Bedrock. Vous pouvez invoquer les modèles de fondation de Bedrock directement depuis le flux de travail de Step Functions en utilisant le langage naturel. Cela vous donne la possibilité de :   

  • Enrichir vos données traitées par Step Functions avec des fonctionnalités d'IA générative afin de réduire la complexité du traitement de vos données, telles que la synthèse de texte, la génération d'images ou la personnalisation.
  • Récupérer des informations dans des bases de données telles que les derniers prix de vos produits et les données de personnalisation des utilisateurs et utiliser les fonctions intrinsèques de Step Functions pour les injecter dans l'invite, en veillant à ce que le LLM utilise les données les plus récentes pour améliorer la précision de la réponse.
  • Générer des intégrations en demandant à Step Functions de parcourir les documents, d'extraire des données, de fragmenter les documents, puis de transformer les données du texte numérique en une intégration dans le cadre d'un processus en plusieurs étapes. Cela peut être planifié comme un processus récurrent.
  • Utiliser les flux de travail Step Function pour un chaînage d’invites. Vous pouvez orchestrer plusieurs appels LLM et choisir le meilleur modèle pour chaque étape de la chaîne, en formant une chaîne personnalisée d'étapes de traitement et en organisant des réponses plus précises et plus adaptées au contexte à partir du modèle de fondation.
  • Créer des interactions Human-in-the-Loop (HITL) avec votre flux de travail d'IA générative pour modérer les réponses afin d'éviter les hallucinations ou intégrer une logique pour gérer les réponses qui ne sont pas prises en charge par le modèle de fondation.

Sécurité

Q : Puis-je accéder à Step Functions à partir des ressources situées derrière mon Amazon VPC sans me connecter à Internet ?

Step Functions prend également en charge les points de terminaison d'un VPC (VPCE) à l'aide d'AWS PrivateLink. Vous pouvez accéder à Step Functions à partir de fonctions AWS Lambda compatibles VPC et d'autres services AWS sans devoir passer par l'Internet public.

Pour plus d'informations, reportez-vous aux points de terminaison Amazon VPC pour Step Functions dans le guide du développeur Step Functions.

Conformité

Q : quelles sont les normes de conformité prises en charge par Step Functions ?

Step Functions est conforme aux normes HIPAA, FedRAMP, SOC, GDPR et à d'autres normes de conformité courantes. Consultez le site de Sécurité du Cloud AWS pour obtenir la liste détaillée des normes de conformité prises en charge.

Démarrer avec AWS Step Functions

Visitez la page de démarrage
Prêt à vous lancer ?
S'inscrire à la console AWS Step Functions
D'autres questions ?
Contactez-nous