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 visuels. 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 du 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 l'échec 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, explorez 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 Functions dans le Guide du développeur AWS Step Functions.

Q : Comment AWS 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. Les intégrations aux services AWS-SDK vous permettent d'invoquer l'une des 9 000 actions d'API AWS parmi plus de 200 services directement à partir de votre flux. Les intégrations aux services optimisées simplifient encore l'utilisation de services courants tels que Lambda, ECS, Glue ou EMR, grâce à des fonctionnalités telles que la génération de politiques IAM et le modèle RunAJob qui attendra automatiquement l'achèvement des tâches asynchrones.

Les tâches d'activité permettent l'intégration avec des travaux d'activité que vous exécutez à l'endroit de votre choix, notamment dans Amazon EC2, dans Amazon ECS, sur un appareil mobile ou sur un serveur sur site. Le programme exécutant interroge Step Functions, prend les entrées de Step Functions, exécute le travail en utilisant votre code, puis 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.

Une machine d'état AWS Step Functions peut contenir différentes combinaisons de tâches d'activité et d'intégrations de services. 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 services basés sur le 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 déclaratif Amazon States Language. 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 mondes ?

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 ?

Vous devez 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. 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 créer 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 Amazon Simple Workflow Service (SWF) ?

Vous devez 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 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 plus de 200 services AWS en utilisant des intégrations de service. Par exemple, vous pouvez effectuer les opérations suivantes :

  • 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 AWS Batch 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 tutoriel 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, puis 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 ?
Contactez-nous