AWS Step Functions est désormais disponible pour tous

Essayez gratuitement AWS Step Functions

L'offre gratuite d'AWS Step Functions inclut 4 000 transitions d'état par mois.  

Consultez les détails relatifs à l'Offre gratuite d'AWS »


Q : En quoi consiste AWS Step Functions?

AWS Step Functions est un service entièrement géré qui permet de coordonner facilement les composants d'applications et de microservices distribués à l'aide de processus visuels. Le développement d'applications à partir de composants individuels qui réalisent chacun une fonction discrète vous permet de mettre à l'échelle et de modifier les applications rapidement. Step Functions est un moyen fiable pour 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 en une série d'étapes. Vous pouvez donc développer et exécuter des applications à plusieurs étapes plus facilement. Step Functions déclenche automatiquement chaque étape, en fait le suivi et la relance en cas d'erreur. Votre application est donc exécutée dans l'ordre et comme prévu. Step Functions consigne l'état de chaque étape 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 d'innover plus rapidement et de faire évoluer facilement votre application.

AWS Step Functions gère les opérations et l'infrastructure sous-jacente à votre place pour vous aider à assurer la disponibilité de votre application quelle que soit l'échelle.

Q : Quels sont les avantages offerts par la conception de mon application en utilisant l'orchestration de services pour coordonner des tâches ?

En séparant une application en différents composants de service (ou étapes), vous vous assurez que l'échec d'un composant ne rend pas l'ensemble du système inopérant, que chaque composant se dimensionne de façon indépendante et que les composants peuvent être mis à jour sans avoir besoin de 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, conformément au 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 pannes.

Q : Quels sont les cas d'utilisation pouvant être résolus grâce à AWS Step Functions ? 

AWS Step Functions est utile pour tout problème de calcul ou processus métier pouvant être subdivisé en une série d'étapes. Parmi les cas d'utilisation les plus courants, on trouve notamment les cas suivants :

  • Traitement des documents et des données – Consolider des données provenant de plusieurs bases de données en des rapports unifiés. Affiner et réduire de grands ensembles de données en des formats utiles.
  • DevOps – Développer des outils pour l'intégration continue et le déploiement continu. Créer des applications basées sur les événements, qui s'adaptent automatiquement aux modifications de l'infrastructure.
  • E-commerce – Automatiser des processus métier critiques, comme le traitement des commandes et le suivi de l'inventaire.
  • Applications Web – Implémenter des processus d'identification et d'enregistrement utilisateur robustes.

Q : Comment fonctionne AWS Step Functions ?

Avec AWS Step Functions, vous définissez votre application en tant que machine à états. Ces états représentent une série d'étapes qui, ensemble, capturent le comportement de l'application. Les états d'une machine à états peuvent être des tâches, des étapes séquentielles, des étapes parallèles, des embranchements (choix) et/ou des minuteurs (attente). Les tâches sont des unités de travail et ce travail peut être effectué par des fonctions AWS Lambda, des instances Amazon EC2 de tous types, des conteneurs ou des serveurs sur site. Vous pouvez attribuer une tâche à n'importe quel élément capable de communiquer avec l'API Step Functions. 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 en temps réel de chaque étape et fournit un historique détaillé de chacune des exécutions. Step Functions exploite et dimensionne les étapes de votre application et les calculs sous-jacents. Vous êtes donc sûr que votre application s'exécute de manière fiable lorsque la demande augmente.

Q : Dans quels cas utiliser AWS Step Functions plutôt qu'Amazon SQS ?

Vous devriez envisager d'utiliser AWS Step Functions lorsque vous avez besoin de coordonner des composants de service pour développer des applications hautement évolutives et contrôlables. Vous devriez envisager d'utiliser Amazon Simple Queue Service (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 différents 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 au niveau de l'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 d'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 de l'application. Bien que vous puissiez utiliser Amazon SQS pour développer des flux de travail basiques visant à coordonner votre application distribuée, Step Functions vous propose cette fonctionnalité clé en main, ainsi que d'autres capacités au niveau de l'application.

Q : Dans quels cas utiliser AWS Step Functions plutôt qu'AWS Batch ?

AWS Batch est un service qui permet d'exécuter facilement des flux de travail de calcul par lots, indépendamment de leur taille, dans le cloud AWS. Vous devriez utiliser AWS Step Functions lorsque vous souhaitez développer une application distribuée en une série d'étapes, notamment des étapes séquentielles, parallèles et/ou d'embranchement logique (choix). Vous pouvez utiliser Batch pour exécuter des tâches dans votre application et pouvez utiliser Step Functions pour envoyer plusieurs tâches Batch avec des interdépendances. Utilisez Batch lorsque vous souhaitez gérer automatiquement votre infrastructure de calcul afin de la dimensionner en fonction de la quantité de traitement par lots nécessaire.

Q : Dans quels cas utiliser AWS Step Functions plutôt qu'Amazon Simple Workflow Service (SWF) ?

Vous devriez envisager d'utiliser 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 à l'aide de flux de travail visuels. Si vous avez besoin que des signaux externes interviennent dans vos processus ou si vous souhaitez lancer des processus enfants qui renvoient un résultat à un parent, vous devriez plutôt envisager d'utiliser Amazon Simple Workflow Service (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 programmation de votre choix ou vous appuyer sur le framework Flow pour utiliser des structures de programmation qui organisent les interactions asynchrones pour vous.

Q : Que deviendra le service Amazon Simple Workflow (SWF) existant ?

AWS continuera à fournir le service Amazon Simple Workflow (SWF), ainsi que le support technique associé.

Q : Comment AWS Step Functions fonctionne-t-il avec les autres services AWS ?

AWS Step Functions fonctionne avec plusieurs autres services AWS, notamment AWS CloudFormation, AWS Lambda, Amazon EC2, Amazon EC2 Container Service (ECS), Amazon API Gateway, Amazon CloudWatch, AWS CloudTrail et Auto Scaling.

Voici quelques exemples de ce que vous pouvez faire avec divers services AWS :

  • Lancer plusieurs ressources connexes requises pour les automates et les activités AWS Step Functions via AWS CloudFormation.
  • Implémenter des tâches à l'aide de fonctions Lambda ou de programmes s'exécutant sur EC2 ou dans des conteneurs ECS.
  • Associez vos API Step Functions à des méthodes dans une API API Gateway.
  • Dimensionner votre flotte de tâches EC2 pour les activités AWS Step Functions en réponse aux mesures d'Amazon CloudWatch.

Q : Comment AWS Step Functions fonctionne-t-il avec AWS Lambda ?

Vous pouvez utiliser les fonctions AWS Lambda pour effectuer des tâches dans votre machine à états. AWS Step Functions transmet l'entrée à une fonction Lambda spécifique, puis attend que la fonction Lambda lui renvoie un résultat. Avec Lambda, vous pouvez créer des tâches sans mettre en service ni gérer de serveurs, dans tous les langages pris en charge par Lambda. Pour en savoir plus sur l'utilisation de Step Functions avec Lambda, consultez notre documentation sur Step Functions.

Q : Comment AWS Step Functions fonctionne-t-il avec Amazon EC2 et d'autres ressources de calcul ?

Dans votre machine à états, tout le travail est effectué par des tâches. Une tâche peut être une activité, qui peut être constituée de code dans n'importe quel langage. Les activités peuvent être hébergées sur Amazon EC2, sur Amazon ECS ou sur des appareils mobiles ; en somme sur tout ordinateur capable de communiquer avec l'API d'AWS Step Functions. Les activités envoient une interrogation longue durée à Step Functions à l'aide d'appels d'API afin de demander du travail, recevoir les données d'entrée, effectuer la tâche, et retourner un résultat.

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

Amazon API Gateway est un service entièrement géré, qui permet aux développeurs de publier, gérer, surveiller et sécuriser facilement des API à n'importe quelle échelle. En quelques clics dans AWS Management Console, vous pouvez associer vos API Step Functions à des méthodes dans votre API API Gateway de manière à ce que lorsqu'une requête HTTPS est envoyée à une méthode d'API que vous avez définie, API Gateway appelle vos actions d'API Step Functions.

Vous pouvez utiliser une API Amazon API Gateway pour démarrer les machines à états Step Functions qui coordonnent les composants d'une application backend distribuée. Vous pouvez également intégrer des tâches d'activité humaine dans les étapes de votre application, telles que des demandes d'approbation et des réponses. Vous pouvez même effectuer des appels asynchrones sans serveur vers les API des services que votre application utilise.

Amazon API Gateway gère toutes les tâches liées à l'acceptation et au traitement de centaines de milliers d'appels d'API simultanés, notamment la gestion du trafic, le contrôle des autorisations et des accès, la surveillance et la gestion de la version de l'API.

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

Amazon CloudWatch est un service de surveillance pour les services AWS et les applications que vous exécutez sur AWS. Amazon CloudWatch collecte et suit des mesures, définit des alarmes et réagit automatiquement aux modifications apportées à AWS Step Functions.

Voici quelques exemples de ce que vous pouvez faire avec Amazon CloudWatch et AWS Step Functions :

  • Surveiller les mesures de workflows AWS Step Functions.
  • Lancer des workflows AWS Step Functions en réponse aux événements Amazon CloudWatch Events.
  • Générer des alarmes lorsque AWS Step Functions atteint les seuils des mesures.
  • Programmer des workflows AWS Step Functions à des intervalles pouvant n'être que d'une minute en utilisant Amazon CloudWatch Events.

Q : Puis-je utiliser AWS Step Functions avec mes ressources sur site ?

Oui. Les applications d'AWS Step Functions peuvent combiner les programmes exécutants dans le centre de données et les programmes exécutants dans le cloud. Les programmes exécutants du centre de données continuent de s'exécuter normalement, parallèlement aux nouveaux programmes exécutants dans le cloud.


Q : Comment démarrer avec AWS Step Functions ?

Pour commencer à utiliser AWS Step Functions, accédez à la page de présentation détaillée d'AWS Step Functions, puis cliquez sur le bouton « Mise en route gratuite ». Si vous n'avez pas de compte Amazon Web Services, vous serez invité à en créer un. Une fois connecté, vous pouvez suivre un exemple de procédure dans la console AWS Step Functions, qui vous guide tout au long des étapes de création d'une machine à états. Accédez à AWS Step Functions depuis AWS Management Console. Sélectionnez ensuite le plan « Hello World » et ajoutez une fonction Lambda « HelloWorld ». Vous pouvez maintenant prévisualiser et exécuter votre machine à états. Pour commencer à utiliser AWS Step Functions dans vos applications, consultez la documentation d'AWS Step Functions.

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

Vous pouvez utiliser n'importe quel langage de programmation pour écrire une activité, tant que vous pouvez communiquer avec AWS Step Functions à l'aide d'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 le code écrit en Node.js (JavaScript), Python, Java (compatible Java 8) et C# (avec l'environnement d'exécution .NET Core). Les machines à états sont définies en JSON à l'aide du langage Amazon States Language.


Q : Comment puis-je authentifier des utilisateurs ?

AWS Step Functions est intégré à AWS Identity and Access Management (IAM). Les politiques IAM peuvent être utilisées pour contrôler l'accès aux API de Step Functions.


Q : De quelle manière l'utilisation d'AWS Step Functions m'est-elle facturée ?

Avec AWS Step Functions, vous ne payez que pour la transition d'une étape à une autre du flux de travail de votre application. Cette transition est appelée transition d'état. La facturation est calculée par transition d'état, quelle que soit la durée de chaque état (jusqu'à un an), ce qui permet de s'adapter automatiquement et de manière simple et rentable en passant de quelques exécutions par jour à des dizaines de millions d'exécutions par mois. Pour en savoir plus, consultez la page relative à la tarification d'AWS Step Functions.