

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.

# Poursuivre les flux de travail de longue durée à l'aide de l'API Step Functions (recommandé)
<a name="tutorial-continue-new"></a>

AWS Step Functions est conçu pour exécuter des flux de travail dont la durée et le nombre d'étapes sont limités. Les exécutions de flux de travail standard ont une durée maximale d'un an et 25 000 événements (voir[Quotas de service Step Functions](service-quotas.md)).

Pour les exécutions de longue durée, vous pouvez éviter d'atteindre le quota strict en démarrant une nouvelle exécution de flux de travail depuis l'`Task`état. Vous devez diviser vos flux de travail en machines à états plus petites qui continuent à travailler dans le cadre d'une nouvelle exécution.

Pour démarrer de nouvelles exécutions de flux de travail, vous devez appeler l'action `StartExecution` API depuis votre `Task` état et transmettre les paramètres nécessaires.

Step Functions peut lancer des exécutions de flux de travail en appelant sa propre API en tant que [service intégré](integrate-services.md). Nous vous recommandons d'utiliser cette approche pour éviter de dépasser les quotas de service lors d'exécutions de longue durée.

## Étape 1 : Création d'une machine à états de longue durée
<a name="use-sfn-api-create-called-state-machine"></a>

Créez une machine à états de longue durée que vous souhaitez démarrer à partir de l'`Task`état d'une machine à états différente. Pour ce didacticiel, utilisez la [machine à états qui utilise une fonction Lambda](tutorial-creating-lambda-state-machine.md).

**Note**  
Assurez-vous de copier le nom et le nom de ressource Amazon de cette machine d'état dans un fichier texte pour une utilisation ultérieure.

## Étape 2 : créer une machine à états pour appeler l'action de l'API Step Functions
<a name="use-sfn-api-create-caller-state-machine"></a>

**Pour démarrer les exécutions de flux de travail à partir d'un `Task` état**

1. Ouvrez la [console Step Functions](https://console.aws.amazon.com/states/home), choisissez **State machines** dans le menu, puis **Create state machine**.

1. Choisissez **Créer à partir de rien**.

1. Donnez un nom à votre machine d'état, puis choisissez **Continuer** pour modifier votre machine d'état dans Workflow Studio.

1. Dans l'onglet **Actions**, faites glisser l'action **StartExecution**API et déposez-la sur l'état vide intitulé **Drag first state here**.

1. Choisissez l'**StartExecution**état et effectuez les opérations suivantes dans l'onglet **Configuration** de [Mode de conception](workflow-studio.md#wfs-interface-design-mode) :

   1. Renommez l'état en. **Start nested execution**

   1. Pour le **type d'intégration**, choisissez **AWS SDK - nouveau** dans la liste déroulante.

   1. Dans **Paramètres de l'API**, procédez comme suit :

      1. Pour remplacer `StateMachineArn` l'exemple de nom de ressource Amazon par l'ARN de votre machine à états. Par exemple, entrez l'ARN de la [machine à états qui utilise Lambda](tutorial-creating-lambda-state-machine.md).

      1. Pour `Input` node, remplacez le texte de l'espace réservé existant par la valeur suivante :

         ```
         "Comment": "Starting workflow execution using a Step Functions API action"
         ```

      1. Assurez-vous que vos entrées dans les **paramètres de l'API** ressemblent à ce qui suit :

         ```
         {
           "StateMachineArn": "arn:aws:states:us-east-2:123456789012:stateMachine:LambdaStateMachine",
           "Input": {
             "Comment": "Starting workflow execution using a Step Functions API action",
             "AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID.$": "$$.Execution.Id"
           }
         ```

1. (Facultatif) Choisissez **Définition** dans le [Panneau Inspector](workflow-studio.md#workflow-studio-components-formdefinition) panneau pour afficher la définition générée automatiquement [Amazon States Language](concepts-amazon-states-language.md) (ASL) de votre flux de travail.
**Astuce**  
Vous pouvez également consulter la définition ASL dans Workflow Studio. [Éditeur de code](workflow-studio.md#wfs-interface-code-editor) Dans l'éditeur de code, vous pouvez également modifier la définition ASL de votre flux de travail.

1. Spécifiez un nom pour votre machine à états. Pour ce faire, cliquez sur l'icône d'édition à côté du nom de la machine à états par défaut de **MyStateMachine**. Ensuite, dans **Configuration de la machine d'état**, spécifiez un nom dans le champ **Nom de la machine d'état**.

   Pour ce didacticiel, saisissez le nom **ParentStateMachine**.

1. (Facultatif) Dans **Configuration de la machine à états**, 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 **les paramètres State Machine**.

   Si vous avez [déjà créé un rôle IAM](procedure-create-iam-role.md) avec les autorisations appropriées pour votre machine d'état et que vous souhaitez l'utiliser, dans **Autorisations**, sélectionnez **Choisir un rôle existant**, puis sélectionnez un rôle dans la liste. Vous pouvez également sélectionner **Entrer un ARN de rôle**, puis fournir un ARN pour ce rôle IAM.

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

   Vous pouvez également choisir **Afficher les paramètres des rôles** pour revenir à la **configuration de la machine State**.
**Note**  
Si vous supprimez le rôle IAM créé par Step Functions, Step Functions ne pourra pas le recréer ultérieurement. De même, si vous modifiez le rôle (par exemple, en supprimant Step Functions des principes de la politique IAM), Step Functions ne pourra pas restaurer ses paramètres d'origine ultérieurement. 

## Étape 3 : mettre à jour la politique IAM
<a name="use-sfn-api-update-policy-start-execution"></a>

Pour vous assurer que votre machine à états dispose des autorisations nécessaires pour démarrer l'exécution de la [machine à états qui utilise une fonction Lambda](tutorial-creating-lambda-state-machine.md), vous devez associer une politique en ligne au rôle IAM de votre machine à états. Pour plus d'informations, consultez la section [Intégration de politiques intégrées](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html#embed-inline-policy-console) dans le guide de l'utilisateur *IAM*.

1. Sur la **ParentStateMachine**page, choisissez l'**ARN du rôle IAM** pour accéder à la page **Rôles** IAM de votre machine à états.

1. Attribuez une autorisation appropriée au rôle IAM du **ParentStateMachine**pour qu'il puisse démarrer l'exécution d'une autre machine à états. Pour attribuer l'autorisation, procédez comme suit :

   1. Sur la page **Rôles** IAM, choisissez **Ajouter des autorisations**, puis choisissez **Créer une politique intégrée.**

   1. Sur la page **Créer une politique**, choisissez l'onglet **JSON**.

   1. Remplacez le texte existant par la politique suivante.  
****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "states:StartExecution"
                ],
                "Resource": [
                    "arn:aws:states:us-east-1:123456789012:stateMachine:LambdaStateMachine"
                ]
            }
        ]
      }
      ```

   1. Choisissez **Examiner une politique**.

   1. Spécifiez un nom pour la politique, puis choisissez **Créer une politique**.

## Étape 4 : Exécutez la machine d'état
<a name="use-sfn-api-start-execution"></a>

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 **ParentStateMachine**page, choisissez **Démarrer l'exécution**.

   La boîte de dialogue **Démarrer l'exécution** s'affiche.

1. Dans la boîte de dialogue **Démarrer l'exécution**, procédez comme suit :

   1. (Facultatif) Entrez un nom d'exécution personnalisé pour remplacer le nom par défaut généré.
**Noms non ASCII et journalisation**  
Step Functions accepte les noms des machines à états, des exécutions, des activités et des étiquettes contenant des caractères non ASCII. Dans la mesure où ces caractères empêcheront Amazon CloudWatch d'enregistrer les données, nous vous recommandons de n'utiliser que des caractères ASCII afin de pouvoir suivre les métriques de Step Functions.

   1. (Facultatif) Dans la zone de **saisie**, entrez les valeurs d'entrée au format JSON pour exécuter votre flux de travail.

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

   1. 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](concepts-view-execution-details.md#exec-details-intf-step-details) 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*, voir[Vue d'ensemble des détails d'exécution](concepts-view-execution-details.md#exec-details-interface-overview).

1. Ouvrez la **LambdaStateMachine**page et remarquez une nouvelle exécution déclenchée par le **ParentStateMachine**.