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 plus d’informations sur le modèle de programmation Lambda, consultez le Guide du développeur Lambda AWS

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 programmation de votre choix ou vous appuyer sur le framework Flow pour utiliser des structures de programmation qui organisent les interactions asynchrones pour vous. 

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 plus d’informations, consultez Surveillance et journalisation dans le guide du développeur AWS Step Functions. 

Sécurité

Q : Comment sécuriser les flux de travail ?

AWS Step Functions est intégré à AWS Identity and Access Management (AWS IAM). Les stratégies IAM peuvent être utilisées pour contrôler l’accès aux API Step Functions, et lorsque vous créez une machine d’état dans la console AWS Step Functions, Step Functions recommande une stratégie IAM basée sur les ressources utilisées dans la définition de la machine d’état. Pour plus d’informations, consultez Stratégies IAM pour les services connectés dans le guide du développeur AWS Step Functions. 

Premiers pas 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