Conception d'une machine à états dans Workflow Studio - 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.

Conception d'une machine à états dans Workflow Studio

Dans ce didacticiel, vous apprendrez les bases de l'utilisation de Workflow Studio pour AWS Step Functions. Dans Mode de conception Workflow Studio, vous allez créer une machine à états contenant plusieurs étatsPass, notammentChoice,Fail,Wait, etParallel. Vous allez utiliser la fonction glisser-déposer pour rechercher, sélectionner et configurer ces états. Vous verrez ensuite la définition générée automatiquement Amazon States Language (ASL) de votre flux de travail. Vous utiliserez également Workflow Studio pour modifier la définition du flux de travail. Mode code Ensuite, vous quitterez Workflow Studio, exécuterez la machine d'état et passerez en revue les détails de l'exécution.

Dans ce didacticiel, vous apprendrez également à mettre à jour la machine à états et à visualiser les modifications apportées au résultat de l'exécution. Enfin, vous allez effectuer une étape de nettoyage et supprimer votre machine à états.

Après avoir terminé ce didacticiel, vous saurez comment utiliser Workflow Studio pour créer et configurer un flux de travail en utilisant à la fois les modes Design et Code. Vous saurez également comment mettre à jour, exécuter et supprimer votre machine d'état.

Étape 1 : Accédez à Workflow Studio

  1. Ouvrez la console Step Functions et choisissez Create state machine.

  2. Dans la boîte de dialogue Choisir un modèle, sélectionnez Vide.

  3. Choisissez Sélectionner pour ouvrir Workflow Studio dansMode de conception.

Étape 2 : Création d'une machine à états

Dans Workflow Studio, une machine à états est une représentation graphique de votre flux de travail. Avec Workflow Studio, vous pouvez définir, configurer et examiner les différentes étapes de votre flux de travail. Dans les étapes suivantes, vous utiliserez Mode de conception Workflow Studio pour créer votre machine à états.

Pour créer une machine d'état
  1. Assurez-vous que vous êtes en mode Design de Workflow Studio.

  2. Navigateur d'étatsSur la gauche, choisissez l'onglet Flow. Faites ensuite glisser un état Pass vers l'état vide intitulé Drag first state here.

  3. Faites glisser un état Choice depuis l'onglet Flow et déposez-le sous l'état Pass.

  4. Pour le nom de l'État, remplacez le nom par défaut de Choice. Pour ce tutoriel, utilisez le nom IsHelloWorldExample.

  5. Faites glisser un autre état Pass et déposez-le sur une branche de l'IsHelloWorldExampleétat. Faites ensuite glisser un état Fail et déposez-le sous l'autre branche de l'IsHelloWorldExampleétat.

  6. Choisissez l'état Pass (1) et renommez-le enYes. Renommez l'état Fail enNo.

  7. Spécifiez la logique de branchement de IsHelloWorldExamplel'état à l'aide de la variable booléenne. IsHelloWorldExample

    Si tel IsHelloWorldExample est le casFalse, le flux de travail passera à l'état Non. Dans le cas contraire, le flux de travail poursuivra son flux d'exécution à l'état Oui.

    Pour définir la logique de branchement, procédez comme suit :

    1. Choisissez l'IsHelloWorldExampleétat sur leCanevas et graphique du flux de travail, puis sous Règles de choix, cliquez sur l'icône d'édition dans la zone Règle #1 pour définir la règle de premier choix.

    2. Sélectionnez Ajouter des conditions.

    3. Dans la boîte de dialogue Conditions pour la règle #1, entrez dans $.IsHelloWorldExample Variable.

    4. Choisir est égal à sous Opérateur.

    5. Choisissez Constante booléenne sous Valeur, puis sélectionnez vrai dans la liste déroulante.

    6. Choisissez Enregistrer les conditions.

    7. Assurez-vous que l'état suivant est : est sélectionné dans la liste déroulante « Oui ».

    8. Choisissez Ajouter une nouvelle règle de choix, puis sélectionnez Ajouter des conditions.

    9. Dans la zone Règle #2, définissez la règle du second choix lorsque la valeur de la IsHelloWorldExample variable est fausse en répétant les sous-étapes 7.c à 7.f. Pour l'étape 7.e, choisissez false au lieu de true.

    10. Dans la zone Règle #2, choisissez Non dans la liste déroulante Then next state is :.

    11. Dans la zone Règle par défaut, cliquez sur l'icône de modification pour définir la règle de choix par défaut, puis choisissez Oui dans la liste déroulante.

  8. Ajoutez un état d'attente après l'état Oui et nommez-leWait 3 sec. Configurez ensuite le temps d'attente de trois secondes en procédant comme suit :

    1. Sous Options, conservez la sélection par défaut de Attendre pendant un intervalle fixe.

    2. Sous Secondes, assurez-vous que l'option Enter seconds est sélectionnée, puis entrez 3 dans le champ.

  9. Après l'état Attendre 3 secondes, ajoutez un état parallèle. Ajoutez deux états Pass dans ses deux branches. Nommez le premier État du PassHello. Nommez le deuxième état du PassWorld.

    Le flux de travail terminé doit ressembler au schéma suivant :

    Capture d'écran du flux de travail IsHelloWorldExample State Machine.

Étape 3 : Vérifiez la définition de la langue Amazon States générée automatiquement

Lorsque vous glissez et déposez des états de l'onglet Flow sur le canevas, Workflow Studio compose automatiquement la définition Amazon States Language (ASL) de votre flux de travail en temps réel. Dans le Panneau Inspector panneau, cliquez sur le bouton Définition pour afficher cette définition ou passez au bouton Mode code pour modifier cette définition selon vos besoins. Pour plus d'informations sur la modification de la définition du flux de travail, reportez-vous à l'étape 4 de ce didacticiel.

  • (Facultatif) Choisissez Definition dans le panneau Inspector et visualisez le flux de travail de la machine à états.

    L'exemple de code suivant montre la définition du langage Amazon States générée automatiquement pour la machine à IsHelloWorldExample états. L'Choiceétat que vous avez ajouté dans Workflow Studio est utilisé pour déterminer le flux d'exécution en fonction de la logique de branchement que vous avez définie à l'étape 2.

    { "Comment": "A Hello World example of the Amazon States Language using Pass states", "StartAt": "Pass", "States": { "Pass": { "Type": "Pass", "Next": "IsHelloWorldExample", "Comment": "A Pass state passes its input to its output, without performing work. Pass states are useful when constructing and debugging state machines." }, "IsHelloWorldExample": { "Type": "Choice", "Comment": "A Choice state adds branching logic to a state machine. Choice rules can implement 16 different comparison operators, and can be combined using And, Or, and Not\"", "Choices": [ { "Variable": "$.IsHelloWorldExample", "BooleanEquals": false, "Next": "No" }, { "Variable": "$.IsHelloWorldExample", "BooleanEquals": true, "Next": "Yes" } ], "Default": "Yes" }, "No": { "Type": "Fail", "Cause": "Not Hello World" }, "Yes": { "Type": "Pass", "Next": "Wait 3 sec" }, "Wait 3 sec": { "Type": "Wait", "Seconds": 3, "Next": "Parallel" }, "Parallel": { "Type": "Parallel", "End": true, "Branches": [ { "StartAt": "Hello", "States": { "Hello": { "Type": "Pass", "End": true } } }, { "StartAt": "World", "States": { "World": { "Type": "Pass", "End": true } } } ] } } }

Étape 4 : Modifier la définition du flux de travail en mode Code

Le mode Code de Workflow Studio fournit un éditeur de code intégré pour afficher et modifier la ASL définition de vos flux de travail.

  1. Choisissez Code pour passer en mode Code.

  2. Après la définition de l'état parallèle, placez le curseur et appuyez surEnter.

  3. Appuyez Ctrl+space pour voir la liste des états que vous pouvez ajouter après l'état parallèle.

  4. Choisissez Pass State dans la liste des options. L'éditeur de code ajoute un code standard pour le Pass State.

  5. L'ajout de cet état entraîne des erreurs dans la définition de votre flux de travail. Dans la définition de l'état parallèle, remplacez "End": true par"Next": "PassState".

  6. Dans la définition de Pass State que vous avez ajoutée, apportez les modifications suivantes :

    1. Supprimez le nœud Result.

    2. Supprimer "ResultPath": "$.result", et"Next": "NextState".

    3. Après"Type": "Pass",, entrez"End": true.

    4. Ajoutez un , après la définition de Pass State.

La définition de votre flux de travail doit désormais ressembler à la définition suivante.

{ "Comment": "A description of my state machine", "StartAt": "Pass", "States": { "Pass": { "Type": "Pass", "Next": "IsHelloWorldExample" }, "IsHelloWorldExample": { "Type": "Choice", "Choices": [ { "Variable": "$.IsHelloWorldExample", "BooleanEquals": true, "Next": "Yes" }, { "Variable": "$.IsHelloWorldExample", "BooleanEquals": false, "Next": "No" } ], "Default": "Yes" }, "Yes": { "Type": "Pass", "Next": "Wait 3 seconds" }, "Wait 3 seconds": { "Type": "Wait", "Seconds": 3, "Next": "Parallel" }, "Parallel": { "Type": "Parallel", "Branches": [ { "StartAt": "Hello", "States": { "Hello": { "Type": "Pass", "End": true } } }, { "StartAt": "World", "States": { "World": { "Type": "Pass", "End": true } } } ], "Next": "PassState" }, "PassState": { "Type": "Pass", "End": true }, "No": { "Type": "Fail" } } }

Étape 5 : Enregistrez la machine à états

  1. Choisissez le mode Config ou cliquez sur l'icône d'édition à côté du nom de la machine à états par défaut de MyStateMachine. Dans Configuration de la machine State, spécifiez un nom. Par exemple, saisissez HelloWorld.

  2. (Facultatif) Spécifiez d'autres paramètres de flux de travail, tels que le type de machine à états et son rôle d'exécution. Pour ce didacticiel, conservez toutes les sélections par défaut dans la configuration State Machine.

  3. Sélectionnez Create (Créer).

  4. Dans la boîte de dialogue Confirmer la création du rôle, choisissez Confirmer pour continuer.

    Vous pouvez également choisir Afficher la configuration des rôles pour revenir au mode Config.

Pour plus d'informations sur le mode Config, voir Mode Config de Workflow Studio.

Étape 6 : Exécutez la machine d'état

Les exécutions par State Machine sont des instances dans lesquelles vous exécutez votre flux de travail pour effectuer des tâches.

  1. Sur la page State machines, choisissez l'HelloWorldétat machine.

  2. Sur la HelloWorldpage, choisissez Démarrer l'exécution.

  3. (Facultatif) Entrez un nom d'exécution personnalisé pour remplacer le nom par défaut généré.

    ASCIINon-noms et journalisation

    Step Functions accepte les noms des machines d'état, des exécutions, des activités et des étiquettes contenant des caractères autres que des ASCII caractères. Comme ces caractères ne fonctionneront pas avec Amazon CloudWatch, nous vous recommandons de n'utiliser que des ASCII caractères afin de pouvoir suivre les statistiques CloudWatch.

  4. Dans la zone de saisie, entrez les valeurs d'entrée pour votre exécution au JSON format. En fonction de votre saisie, la IsHelloWorldExample variable détermine le flux de machine à états qui sera exécuté. Pour le moment, utilisez la valeur d'entrée suivante :

    { "IsHelloWorldExample": true }
    Note

    Bien que la spécification d'une entrée d'exécution soit facultative, dans ce didacticiel, il est obligatoire de spécifier une entrée d'exécution similaire à l'exemple d'entrée ci-dessus. Cette valeur d'entrée est référencée dans l'Choiceétat lorsque vous exécutez la machine d'état.

  5. Choisissez Start execution (Démarrer l'exécution).

  6. La console Step Functions vous dirige vers une page intitulée avec votre ID d'exécution. Cette page est connue sous le nom de page Détails de l'exécution. Sur cette page, vous pouvez consulter les résultats de l'exécution au fur et à mesure que l'exécution progresse ou une fois celle-ci terminée.

    Pour consulter les résultats de l'exécution, choisissez des états individuels dans la vue graphique, puis choisissez les onglets individuels du Détails de l'étape volet pour afficher les détails de chaque état, y compris les entrées, les sorties et la définition respectivement. Pour plus de détails sur les informations d'exécution que vous pouvez consulter sur la page Détails de l'exécution, voirVue d'ensemble des détails d'exécution.

    Pour ce didacticiel, si vous avez saisi une valeur d'entrée de"IsHelloWorldExample": true, vous devriez voir le résultat suivant :

    { "IsHelloWorldExample": true }, { "IsHelloWorldExample": true }

Étape 7 : Mettez à jour votre machine d'état

Lorsque vous mettez à jour une machine à états, vos mises à jour sont finalement cohérentes. Après un court laps de temps, toutes les nouvelles exécutions refléteront la définition mise à jour de votre machine à états. Toutes les exécutions en cours seront exécutées jusqu'à leur fin selon la définition précédente.

Au cours de cette étape, vous allez mettre à jour votre machine d'état en Mode de conception mode Workflow Studio. Vous allez ajouter un Result champ intitulé World dans l'état du Pass.

  1. Sur la page intitulée avec votre ID d'exécution, choisissez Modifier la machine à états.

  2. Assurez-vous que vous êtes en mode Design.

  3. Choisissez l'état Pass nommé World sur le canevas, puis choisissez Output.

  4. Dans le champ Résultat, entrez"World has been updated!".

  5. Choisissez Save (Enregistrer).

  6. (Facultatif) Dans la zone Définition, consultez la définition mise à jour du langage Amazon States de votre flux de travail.

    { "Type": "Parallel", "End": true, "Branches": [ { "StartAt": "Hello", "States": { "Hello": { "Type": "Pass", "End": true } } }, { "StartAt": "World", "States": { "World": { "Type": "Pass", "Result": "World has been updated!", "End": true } } } ], "Next": "PassState" }
  7. Sélectionnez Execute (Exécuter).

  8. Dans la boîte de dialogue Démarrer l'exécution qui s'ouvre dans un nouvel onglet, saisissez l'entrée d'exécution suivante.

    { "IsHelloWorldExample": true }
  9. Choisissez Démarrer une exécution.

  10. (Facultatif) Dans la vue graphique, choisissez l'étape Monde, puis choisissez Sortie. Le résultat est que World a été mis à jour !

Étape 8 : Nettoyer

Pour supprimer votre machine à états
  1. Dans le menu de navigation, choisissez State machines.

  2. Sur la page State machines, sélectionnez HelloWorld, puis choisissez Supprimer.

  3. Dans la boîte de dialogue Supprimer la machine à états, tapez delete pour confirmer la suppression.

  4. Sélectionnez Delete (Supprimer).

    Si la suppression est réussie, une barre d'état verte apparaît en haut de votre écran. La barre d'état verte indique que votre machine à états est marquée pour être supprimée. Votre machine d'état sera supprimée lorsque toutes ses exécutions en cours cesseront de fonctionner.

Pour supprimer votre rôle d'exécution
  1. Ouvrez la page Rôles pourIAM.

  2. Choisissez le IAM rôle que Step Functions a créé pour vous. Par exemple, StepFunctions- HelloWorld -role- EXAMPLE.

  3. Choisissez Supprimer le rôle.

  4. Choisissez Oui, supprimer.