Présentation d'AWS Step Functions

Théorie



Que sont les fonctions Step?



À partir d'AWS Docs: Step Functions est un service d'orchestration sans serveur qui vous permet de combiner des fonctions AWS Lambda et d'autres services AWS pour créer des applications critiques pour l'entreprise. Avec la console graphique Step Functions, vous voyez le flux de travail de votre application comme une série d'étapes pilotées par des événements. Step Functions est basé sur des machines d'état et des tâches. Une machine à états est un flux de travail. Une tâche est un état dans un flux de travail qui est une unité de travail effectuée par un autre service AWS. Chaque étape du flux de travail est un état.



Avec les commandes Step Functions intégrées, vous vérifiez l'état de chaque étape du flux de travail pour vous assurer que votre application s'exécute dans le bon ordre et comme prévu. En fonction de votre cas d'utilisation, Step Functions peut appeler des services AWS tels que Lambda pour effectuer des tâches. Vous pouvez créer des flux de travail pour traiter et publier des modèles d'apprentissage automatique. Vous pouvez utiliser Step Functions pour gérer les services AWS tels qu'AWS Glue pour créer des flux de travail d'extraction, de transformation et de chargement (ETL). Vous pouvez également créer de longs flux de travail automatisés pour les applications qui nécessitent une interaction humaine.



Ou, en termes simples, un service de gestion de vos processus.





Quels sont les cas d'utilisation possibles des fonctions d'Ă©tape?



  1. Fonctions Lambda d'orchestration



    image

  2. Ramification



    image

  3. Gestion des exceptions (réessayer ou intercepter)



    image

  4. Participation humaine au processus



    image

  5. Parallélisme



    image



Types de processus dans les fonctions d'Ă©tape



  • Standard - nĂ©cessaire pour les processus en cours d'exĂ©cution pendant une longue pĂ©riode, offre une large prise en charge des services et des options d'interaction
  • Express - nĂ©cessaire pour les processus Ă  exĂ©cution rapide (5 minutes), Ă©conomisant environ 20 fois par million de processus exĂ©cutĂ©s. A moins d'intĂ©gration avec les services AWS


Types d'intégration avec les services AWS



Demander une réponse (par défaut) - Appelle le service et autorise Step Functions à passer à l'état suivant après avoir reçu la réponse HTTP.



Exécuter un travail (.sync) - appelle le service et attend la fin du travail.



Attendez un rappel avec un jeton de tâche (.waitForTaskToken) - appelle le service avec le jeton de tâche et attend le retour du jeton de tâche à l'aide du rappel.



Comparaison de l'intégration avec les services AWS dans les types standard et express



Intégrations de services prises en charge pour Standard

Un service Demande de réponse Exécuter un travail (.sync) Attendre le rappel (.waitForTaskToken)
Lambda âś“ âś“
AWS Batch âś“ âś“
DynamoDB âś“
Amazon ECS / AWS Fargate âś“ âś“ âś“
Amazon SNS âś“ âś“
Amazon SQS âś“ âś“
AWS Glue âś“ âś“
SageMaker âś“ âś“
Amazon EMR âś“ âś“
CodeBuild âś“ âś“
Fonctions d'Ă©tape AWS âś“ âś“ âś“


Intégrations de services prises en charge pour Express

Un service Demande de réponse Exécuter un travail (.sync) Attendre le rappel (.waitForTaskToken)
Lambda âś“
AWS Batch âś“
DynamoDB âś“
Amazon ECS / AWS Fargate âś“
Amazon SNS âś“
Amazon SQS âś“
AWS Glue âś“
SageMaker âś“
Amazon EMR âś“
CodeBuild âś“
Fonctions d'Ă©tape âś“ âś“


Assez de théorie, allons-y par exemple.



Exemple théorique



Afin d'avoir au moins une idée de ce à quoi ressemble le service, considérons l'exemple Hello world.



Conditions préalables



  1. Compte AWS
  2. Accédez au service Step Functions dans le compte AWS


Voici donc ce que nous faisons:



  1. Allez dans "Créer des fonctions d'étape"
  2. Define state machine = Auteur avec des extraits de code
  3. Type = Standard
  4. DĂ©finition =



    {
      "Comment": "A Hello World example of the Amazon States Language using Pass states",
      "StartAt": "Hello",
      "States": {
        "Hello": {
          "Type": "Pass",
          "Result": "Hello",
          "Next": "World"
        },
        "World": {
          "Type": "Pass",
          "Result": "World",
          "End": true
        }
      }
    }




Cliquez sur Démarrer l'exécution. L'insertion peut être omise. Vous devriez voir un diagramme comme celui-ci:



image

Félicitations, vous avez créé les fonctions Step les plus simples.



Au lieu d'une conclusion



Si ce sujet est intéressant, dans la partie suivante, nous créerons des fonctions d'étape avec l'intégration AWS Lambda + SQS + SNS, comme indiqué dans le diagramme:



image



Liens vers les sources:



https://docs.aws.amazon.com/step-functions/



All Articles