Qu'est-ce que c'est AWS Step Functions ? - AWS Step Functions

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Qu'est-ce que c'est AWS Step Functions ?

AWS Step Functions est un service de flux de travail visuel qui vous aide à créer des applications distribuées, à automatiser des processus, à orchestrer des microservices et à créer des pipelines de données et d'apprentissage automatique (ML).

Dans la console graphique de Step Functions, vous pouvez voir le flux de travail de votre application sous la forme d'une série d'étapes pilotées par des événements.

Step Functions est basé sur des machines à états et des tâches. Dans Step Functions, les machines à états sont appelées flux de travail, qui sont une série d'étapes pilotées par des événements. Chaque étape d'un flux de travail est appelée état. Par exemple, un état de tâche représente une unité de travail exécutée par un autre AWS service, comme l'appel d'un autre service Service AWS ou d'une API.

Grâce aux commandes intégrées de Step Functions, vous pouvez examiner l'état de chaque étape de votre flux de travail pour vous assurer que votre application s'exécute dans l'ordre et comme prévu. Selon votre cas d'utilisation, vous pouvez demander à Step Functions d'appeler AWS des services, tels que Lambda, pour effectuer des tâches. Vous pouvez créer des flux de travail qui traitent et publient des modèles d'apprentissage automatique. Vous pouvez utiliser les AWS services de contrôle Step Functions, par exemple pour créer des flux de travail d'extraction, de transformation et de chargement (ETL). AWS Glue Vous pouvez également créer des flux de travail automatisés à long terme pour les applications qui nécessitent une interaction humaine.

Astuce

Pour apprendre à utiliser Step Functions, suivez les modules interactifs de l'AWS Step Functions atelier ou lisez la section Getting Started de ce guide pour créer un flux de travail pour les demandes de carte de crédit.

AWS SDK et intégrations optimisées

Pour appeler d'autres AWS services, vous pouvez utiliser les intégrations du AWS SDK de Step Functions, ou vous pouvez utiliser l'une des intégrations optimisées de Step Functions.

  • Les intégrations du AWS SDK vous permettent d'appeler n'importe lequel des plus de deux cents AWS services directement depuis votre machine d'état, ce qui vous donne accès à plus de neuf mille actions d'API.

  • Les intégrations optimisées de Step Functions ont été personnalisées pour simplifier l'utilisation dans vos machines d'état.

Flux de travail standard et express

Step Functions propose deux types de flux de travail. Les flux de travail standard ne sont exécutés qu'une seule fois et peuvent durer jusqu'à un an. Cela signifie que chaque étape d'un flux de travail standard ne sera exécutée qu'une seule fois. Les flux de travail Express, quant at-least-once à eux, peuvent être exécutés pendant cinq minutes au maximum. Cela signifie qu'une ou plusieurs étapes d'un flux de travail express peuvent potentiellement être exécutées plusieurs fois, chaque étape du flux de travail étant exécutée au moins une fois.

Les exécutions sont des instances dans lesquelles vous exécutez votre flux de travail pour effectuer des tâches. Les flux de travail standard sont idéaux pour les flux de travail auditables de longue durée, car ils affichent l'historique d'exécution et le débogage visuel. Les flux de travail Express sont idéaux pour les high-event-rate charges de travail, telles que le traitement des données en streaming et l'ingestion de données IoT.

Spécifications des flux de travail standard

  • Taux d'exécution de 2 000 par seconde

  • Taux de transition entre États de 4 000 par seconde

  • Tarification en fonction de la transition entre États

  • Afficher l'historique d'exécution et le débogage visuel

  • Support de tous les modèles et intégrations de services

Spécifications des flux de travail Express

  • Taux d'exécution de 100 000 par seconde

  • Taux de transition entre États presque illimité

  • Tarification en fonction du nombre et de la durée des exécutions

  • Envoyer l'historique des exécutions à Amazon CloudWatch

  • Afficher l'historique d'exécution et le débogage visuel en fonction du niveau de journalisation activé

  • Support de toutes les intégrations de services et de la plupart des modèles

Pour plus d'informations sur les flux de travail Standard et Express, y compris la tarification de Step Functions, consultez les pages suivantes :

Cas d’utilisation

Step Functions gère les composants et la logique de votre application, afin que vous puissiez écrire moins de code et vous concentrer sur la création et la mise à jour rapides de votre application. Cette section décrit les cas d'utilisation typiques de l'utilisation de Step Functions.

Cas d'utilisation #1 : Orchestration de fonctions

Création de chaînes

Vous créez un flux de travail qui exécute un groupe de fonctions Lambda (étapes) dans un ordre spécifique. La sortie d'une fonction Lambda passe à l'entrée de la fonction Lambda suivante. La dernière étape de votre flux de travail donne un résultat. Avec Step Functions, vous pouvez voir comment chaque étape de votre flux de travail interagit les unes avec les autres, afin de vous assurer que chaque étape exécute la fonction prévue.

Pour un didacticiel qui explique comment créer une machine à états avec un groupe de fonctions, consultez ce qui suit :

Cas d'utilisation #2 : Branching

Ramification

Un client demande une augmentation de sa limite de crédit. À l'aide d'un Choice état, vous pouvez demander à Step Functions de prendre des décisions en fonction des données saisies par Choice l'état. Si la demande dépasse la limite de crédit préapprouvée de votre client, vous pouvez demander à Step Functions d'envoyer la demande de votre client à un responsable pour approbation. Si la demande est inférieure à la limite de crédit préapprouvée par votre client, vous pouvez demander à Step Functions d'approuver automatiquement la demande.

Cas d'utilisation #3 : gestion des erreurs

Réessayer/Catch

Retry

Dans ce cas d'utilisation, un client demande un nom d'utilisateur. La première fois, la demande de votre client échoue. À l'aide d'un Retry relevé, vous pouvez demander à Step Functions de réessayer la demande de votre client. La deuxième fois, la demande de votre client est acceptée.

Catch

Dans un cas d'utilisation similaire, un client demande un nom d'utilisateur non disponible. À l'aide d'une Catch instruction, Step Functions vous suggère un nom d'utilisateur disponible. Si votre client utilise le nom d'utilisateur disponible, vous pouvez demander à Step Functions de passer à l'étape suivante de votre flux de travail, qui consiste à envoyer un e-mail de confirmation. Si votre client n'utilise pas le nom d'utilisateur disponible, Step Functions passe à une autre étape de votre flux de travail, qui consiste à recommencer le processus d'inscription.

Pour des exemples Retry et des Catch déclarations plus détaillés, consultez les rubriques suivantes :

Cas d'utilisation #4 : Un humain dans la boucle

Création de chaînes

À l'aide d'une application bancaire, l'un de vos clients envoie de l'argent à un ami. Votre client attend un e-mail de confirmation. À l'aide d'un rappel et d'un jeton de tâche, Step Functions demande à Lambda d'envoyer l'argent à votre client et de faire rapport lorsque l'ami de votre client l'aura reçu. Une fois que Lambda aura indiqué que l'ami de votre client a reçu l'argent, vous pouvez demander à Step Functions de passer à l'étape suivante de votre flux de travail, qui consiste à envoyer un e-mail de confirmation à votre client.

Pour voir un exemple de projet qui montre un rappel avec un jeton de tâche, consultez ce qui suit :

Cas d'utilisation #5 : traitement parallèle

Parallelism

Un client convertit un fichier vidéo en cinq résolutions d'affichage différentes, afin que les spectateurs puissent regarder la vidéo sur plusieurs appareils. À l'aide d'un Parallel état, Step Functions saisit le fichier vidéo, afin que Lambda puisse le traiter dans les cinq résolutions d'affichage en même temps.

Cas d'utilisation #6 : parallélisme dynamique

Création de chaînes

Un client commande trois articles, et vous devez préparer chaque article pour la livraison. Vous vérifiez la disponibilité de chaque article, vous rassemblez chaque article, puis vous emballez chaque article pour livraison. À l'aide d'un Map état, Step Functions permet à Lambda de traiter chacun des articles de votre client en parallèle. Une fois que tous les articles de votre client sont emballés pour la livraison, Step Functions passe à l'étape suivante de votre flux de travail, qui consiste à envoyer à votre client un e-mail de confirmation contenant des informations de suivi.

Pour voir un exemple de projet illustrant le parallélisme dynamique à l'aide d'un Map état, consultez ce qui suit :

Intégrations de service

Step Functions s'intègre à de nombreux AWS services. Pour associer Step Functions à ces services, utilisez les modèles d'intégration de services suivants :

Demander une réponse (par défaut)
  • Appelez un service et laissez Step Functions passer à l'état suivant après avoir reçu une réponse HTTP.

Exécuter une tâche (.sync)
  • Appelez un service et demandez à Step Functions d'attendre qu'une tâche soit terminée.

Attendez un rappel avec un jeton de tâche (. waitForTaskJeton)
  • Appelez un service avec un jeton de tâche et demandez à Step Functions d'attendre que le jeton de tâche revienne avec un rappel.

Le tableau ci-dessous présente les intégrations de services disponibles et les modèles d'intégration de services pour Step Functions.

Les flux de travail standard et les flux de travail express prennent en charge les mêmes intégrations, mais pas les mêmes modèles d'intégration.

  • La prise en charge des modèles d'intégration optimisés est différente pour chaque intégration.

  • Express Workflows ne prend pas en charge Run a Job (.sync) ou Wait for Callback (. waitForTaskJeton).

  • Pour plus d’informations, consultez Flux de travail standard ou express.

Standard Workflows
Intégrations de services prises en charge
Service Réponse à la requête Exécuter une tâche (.sync) Attendre le rappel (.waitForTaskToken)
Intégrations optimisées Amazon API Gateway
Amazon Athena
AWS Batch
Amazon Bedrock
AWS CodeBuild
Amazon DynamoDB
Amazon ECS/Fargate
Amazon EKS
Amazon EMR
Amazon EMR on EKS
Amazon EMR Serverless
Amazon EventBridge
AWS Glue
AWS Glue DataBrew
AWS Lambda
AWS Elemental MediaConvert
Amazon SageMaker
Amazon SNS
Amazon SQS
AWS Step Functions
AWS Intégrations du SDK Plus de deux cents
Express Workflows

Régions prises en charge

La plupart des AWS régions prennent en charge Step Functions. Pour une liste complète des AWS régions dans lesquelles Step Functions est disponible, consultez le tableau des AWS régions.

Est-ce la première fois que vous utilisez Step Functions ?

Si c'est la première fois que vous utilisez Step Functions, les rubriques suivantes vous aideront à comprendre les différents aspects de l'utilisation de Step Functions, notamment la façon dont Step Functions se combine à d'autres AWS services :