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 d'applications et de microservices distribués en utilisant des flux de travail graphiques. Le développement d'applications à partir de composants individuels qui réalisent chacun une fonction discrète vous permet de facilement mettre à l'échelle et modifier les applications rapidement. Step Functions est un moyen fiable de coordonner des composants et suivre les fonctions de votre application. Step Functions fournit une console graphique pour organiser et visualiser les composants de votre application sous forme de suite d’opérations. Vous pouvez donc développer et exécuter des applications en plusieurs étapes plus facilement. Step Functions déclenche automatiquement chaque opération, en assure le suivi et la relance en cas d'erreur. Votre application est donc exécutée dans un certain ordre et comme prévu. Step Functions consigne l'état de chacune des opérations pour que vous puissiez diagnostiquer et résoudre rapidement les problèmes éventuels. Vous pouvez modifier et ajouter des étapes sans même écrire de code, ce qui vous permet de faire évoluer votre application plus facilement et d'innover plus rapidement.

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

En divisant une application en plusieurs composants de service (ou étapes), vous êtes assuré que la défaillance d'un composant ne rend pas l'ensemble du système inopérant, que chaque composant évolue de façon indépendante et que les composants peuvent être mis à jour sans avoir à redéployer l'ensemble du système après chaque modification. La coordination des composants de service implique la gestion des dépendances, de la programmation, ainsi que de la simultanéité en matière d'exécution suivant le flux logique de l'application. Dans une telle application, les développeurs peuvent utiliser l'orchestration de services à cette fin et pour gérer les incidents.

Q : Quels sont les cas d’utilisation d'AWS Step Functions les plus courants ?

AWS Step Functions s’avère utile pour tous les problèmes de calcul ou les processus métier qui peuvent être subdivisés en une suite d'étapes. Il est également utile pour la création de flux de travail de bout en bout en vue de la gestion de tâches avec des interdépendances. Parmi les cas d'utilisation les plus courants, on trouve notamment :

  • Le traitement des données : il consiste à consolider des données présentes dans plusieurs bases de données dans des rapports unifiés, à affiner et réduire d’importants ensembles de données dans des formats utiles, ou à coordonner des analyses en plusieurs étapes et les flux de travail d’apprentissage machine
  • L’automatisation DevOps et IT : permet de construire des outils pour une intégration et un déploiement continu, ou de créer des applications commandées par les événements qui répondent 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, consultez les cas d’utilisation et les témoignages client relatifs à AWS Step Functions.

Q : Comment fonctionne AWS Step Functions ?

Avec AWS Step Functions, vous définissez des machines d’état qui décrivent votre flux de travail sous la forme d'une suite d’étapes, leurs relations mutuelles et leurs entrées et sorties. Les machines d’état contiennent un certain nombre d’états, chacun représentant une étape individuelle dans un diagramme de flux de travail. Les états peuvent effectuer des tâches, faire des choix, transmettre des paramètres, initier une exécution parallèle, gérer les arrêts ou exécuter des flux de travail avec une réussite ou des échecs. La console visuelle trace automatiquement le graphique de chaque étape dans l'ordre de son exécution, ce qui facilite la conception d'applications en plusieurs étapes. La console met en surbrillance le statut de chaque étape en temps réel et fournit un historique détaillé de chacune des exécutions. Pour plus d’informations, consultez Fonctionnement de Step Function dans le guide du développeur AWS Step Functions.

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

Vous pouvez configurer vos machines d’état pour exécuter le travail en utilisant des tâches d’activité et des tâches de service. Les tâches d’activité permettent d’affecter une étape donnée de votre flux de travail à du code exécuté autre (appelé programme exécutant). Un programme exécutant peut prendre la forme de n’importe quelle application qui peut établir une connexion HTTP hébergée n’importe où. Par exemple, les programmes peuvent s’exécuter sur une Instance Amazon EC2, sur un périphérique mobile, ou sur un serveur sur site. Le programme exécutant interroge Step Functions, prend les entrées de Step Functions, exécute la tâche en utilisant votre code, et renvoie un résultat. Comme les programmes exécutants demandent du travail, il est facile d’utiliser des programmes déployés derrière un pare-feu.

Les tâches de service permettent de connecter une étape du flux de travail à un service AWS pris en charge. Step Functions génère des requêtes pour d’autres services afin qu’ils exécutent des opérations de votre flux de travail, attend la fin des tâches de service et passe à l’opération suivante.

Une machine d’état AWS Step Functions peut contenir différentes combinaisons de tâches d’activité et tâches de service. Les applications d'AWS Step Functions peuvent combiner les programmes exécutants dans le centre de données avec des tâches de service s’exécutant dans le cloud. Les programmes exécutants du centre de données continuent de s'exécuter normalement, parallèlement aux tâches de service cloud.

Q : Comment démarrer avec AWS Step Functions ?

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

Q : Quel est le langage utilisé par AWS Step Functions ?

Les machines d’état AWS Step Functions sont définies dans JSON en utilisant le langage Amazon States Language déclaratif. Vous pouvez utiliser n'importe quel langage de programmation pour créer un programme exécutant dès lors que vous pouvez communiquer avec AWS Step Functions en utilisant les API de service Web. Pour plus de commodité, vous pouvez choisir d'utiliser un kit SDK AWS dans le langage de votre choix. AWS Lambda prend en charge les programmes écrits en Node.js (JavaScript), Python, Golang (Go), et C# (en utilisant le code d’exécution .NET Core et d’autres langages). Pour obtenir des informations supplémentaires sur le modèle de programmation Lambda, consultez le guide du développeur AWS 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 ?

Vous pouvez exploiter les deux types de flux de travail, les flux express pouvant s'exécuter en tant qu'enfant des flux standard. Les flux de travail express sont appelés à partir d'un état de tâche dans le parent. Leur exécution s'effectue ou échoue ensuite. La politique de nouvel essai associée au parent s'applique. Vous pouvez également appeler de tels flux à partir d'un flux express similaire, à condition que tous les flux ne dépassent pas la limite de durée du parent. Vous pouvez choisir de factoriser vos flux de travail de cette façon s'il est question d'une combinaison d'étapes de longue durée ou uniques, ainsi que d'étapes de courte durée à haut débit. 

Comparaisons

Q : Quand est-il préférable d' utiliser AWS Step Functions plutôt qu'Amazon 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 une trace de l'ensemble des tâches et événements d'une application. Amazon 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 ou administrer des exécutions ou d'analyser en détail une exécution donnée. Amazon SQS nécessite que vous implémentiez vous-même ces 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. Amazon SQS nécessite que vous implémentiez vous-même diverses fonctionnalités au niveau des applications. Bien que vous puissiez utiliser Amazon SQS pour développer des flux de travail de base pour coordonner votre application distribuée, Step Functions vous propose cette fonctionnalité clé en main, ainsi que d'autres fonctionnalités au niveau de l'application.

Q : Quand est-il préférable d' utiliser AWS Step Functions plutôt qu'Amazon Simple Workflow Service (SWF) ?

Utilisez AWS Step Functions pour toutes vos nouvelles applications. Ce service offre en effet une approche plus productive et plus agile pour la coordination des composants d'application en utilisant des flux de travail graphiques. 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 Amazon SWF, au lieu d'écrire des machines à états en JSON déclaratif, vous écrivez un programme décideur pour séparer les étapes d'activité des étapes de décision. Vous maîtrisez ainsi entièrement votre logique d'orchestration, mais le développement des applications est plus complexe. 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. 

Q : Quand dois-je utiliser Express Workflows plutôt que Standard Workflows ?

Vous devez utiliser Express Workflows pour les charges de travail associées à des taux d'événements élevés et à des durées courtes. Express Workflows prend en charge des taux d'événements supérieurs à 100 000 par seconde. Express Workflows se caractérise par une durée maximale de cinq minutes. Avec Express Workflows, chaque étape du flux de travail s'exécute au moins une fois. Les flux de travail ayant échoué doivent être exécutés de nouveau depuis le début. Express Workflows prend en charge toutes les intégrations de services. Express Workflows ne prend pas en charge les activités, les exécutions de tâches (.sync) et les modèles de rappel.

La solution Standard Workflows est plus adaptée aux flux de travail à exécution longue, durables et contrôlables pour lesquels la répétition des étapes est coûteuse (par exemple, car il est nécessaire de réitérer un transcodage multimédia de longue durée) voire dangereuse (par exemple, car une carte de crédit doit être chargée deux fois). Les charges de travail comprennent la formation et le déploiement de modèles de machine learning, la génération de rapports, la facturation, le traitement des cartes de crédit et les processus de commande et de traitement des commandes. Standard Workflows garantit l'exécution de chaque étape du flux de travail au moins une fois, avec une durée maximale d'un an. Ces flux de travail permettent de stocker, étape par étape, des informations détaillées que vous pouvez consulter pendant et après l'exécution de ceux-ci. Standard Workflows prend en charge toutes les intégrations de services, les activités et les modèles de conception.

Q : Quand est-il préférable d'utiliser AWS Step Functions plutôt qu'AWS CodePipeline ?

Vous devriez envisager d'utiliser AWS CodePipeline lorsque vous automatisez la publication de modifications d'un logiciel ou d'une infrastructure et souhaitez tirer profit d'intégrations avec des services CI/CD comme CodeBuild, CodeDeploy et des solutions CI/CD tierces dans le cadre de votre flux de travail de publication. Inspiré par les pratiques de déploiement d'Amazon, seule une instance de chaque pipeline existe et chacune est composée d'étapes séquentielles. Ces étapes servent de mécanisme de verrouillage pour assurer que seule une exécution unique est acheminée dans une section critique du pipeline à tout moment donné. La prise en charge des autorisations manuelles de CodePipeline conserve une publication à une certaine étape et permet la réalisation de tests manuels pendant que les phases préliminaires continuent leur exécution. Le modèle basé sur des étapes vous permet également de suspendre toutes les publications sans générer de files d'attente de publication importante. CodePipeline publie de manière intelligente les modifications de logiciel les plus récentes afin de vous faire éviter de perdre du temps sur des publications obsolètes.

En comparaison, Step Functions prend en charge de manière native plusieurs instances d'une machine d'état qui s'exécutent simultanément. Cette fonctionnalité se prête bien pour aider les équipes de développeurs à réaliser des intégrations en concevant et en testant leurs modifications en même temps. Cependant, la gestion des déploiements nécessite des solutions personnalisées pour contrôler l'ordre des déploiements. Nous vous conseillons d'utiliser AWS Step Functions lorsque vous devez créer des flux d'intégration continue en utilisant des modèles comme le traitement d'erreur, la parallélisation et le branchement. Step Functions prend en charge l'intégration de service au sein d'AWS CodeBuild, Amazon ECS, Amazon EMR, AWS Glue et d'autres services. Si votre flux de travail nécessite que vous conceviez des modifications de logiciel ou que vous exécutiez des applications de traitement des données, nous vous conseillons d'envisager l'utilisation de Step Functions avec les intégrations de service AWS CodeBuild, Amazon ECS, Amazon EMR et AWS Glue.

Intégration

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

Les flux de travail que vous créez avec AWS Step Functions peuvent connecter et coordonner les autres services AWS en utilisant des tâches de service. Par exemple, vous pouvez :

  • Appeler une fonction AWS Lambda
  • Exécuter un service Amazon Elastic Container Service ou une tâche AWS Fargate
  • Obtenir un élément existant de la table Amazon DynamoDB ou placer un nouvel élément dans un tableau DynamoDB
  • Soumettre une tâche par lots AWS et attendre qu’elle soit achevée
  • Publier un message sur une rubrique Amazon 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 d’apprentissage machine 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. Consultez les questions fréquentes (FAQ) dans la section Présentation, Comment connecter AWS Step Functions à mes ressources ?

Q : Comment le service AWS 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 Amazon API Gateway 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, consultez notre didacticiel Création d’une API Step Functions en utilisant API Gateway

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

AWS Step Functions envoie des métriques à Amazon CloudWatch et AWS CloudTrail pour la surveillance d’application. Amazon CloudWatch collecte et assure le suivi des mesures, définit des alarmes et réagit automatiquement aux modifications apportées à AWS Step Functions. AWS CloudTrail capture tous les appels d’API Step Functions comme des événements, et notamment les appels de la console Step Functions console et des appels de code pour les API Step Functions. Step Functions prend également en charge les règles gérées Amazon CloudWatch Events pour chaque service intégré dans votre flux de travail, et crée et gère les règles CloudWatch Events dans votre compte AWS selon les besoins. Pour obtenir des informations supplémentaires, consultez la section Surveillance et journalisation du guide du développeur AWS 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. 

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 de 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, consultez Points de terminaison Amazon Virtual Private Cloud pour AWS Step Functions dans le Guide du développeur AWS Step Functions.

Conformité

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

AWS 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 ?
Nous contacter