Activités - 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.

Activités

Les activités sont une AWS Step Functions fonctionnalité qui vous permet de disposer d'une tâche sur votre machine d'État dans laquelle le travail est effectué par un travailleur et qui peut être hébergée sur Amazon Elastic Compute Cloud (Amazon EC2), Amazon Elastic Container Service (Amazon ECS), sur des appareils mobiles, pratiquement n'importe où.

Présentation

Dans AWS Step Functions, les activités sont un moyen d'associer du code s'exécutant à un endroit (appelé travail d'activité) à une tâche spécifique dans une machine d'état. Vous pouvez créer une activité à l'aide de la console Step Functions ou en appelantCreateActivity. Cela fournit un Amazon Resource Name (ARN) pour l'état de votre tâche. Utilisez cet ARN pour interroger l'état de la tâche à la recherche d'un travail de votre travail d'activité.

Note

Les versions des activités ne sont pas gérées et les activités doivent être rétrocompatibles. Si vous devez apporter une modification incompatible avec les versions antérieures à une activité, créez-en une nouvelle dans Step Functions en utilisant un nom unique.

Un worker d'activité peut être une application exécutée sur une instance Amazon EC2, une AWS Lambda fonction, un appareil mobile : toute application capable d'établir une connexion HTTP, hébergée n'importe où. Lorsque Step Functions atteint l'état d'une tâche d'activité, le flux de travail attend qu'un agent d'activité interroge pour une tâche. Un travailleur d'activité interroge Step Functions en utilisant GetActivityTask et en envoyant l'ARN pour l'activité associée. GetActivityTaskrenvoie une réponse comprenant input (une chaîne d'entrée JSON pour la tâche) et un taskToken(un identifiant unique pour la tâche). Une fois le travail d'activité terminé, il peut fournir un rapport de réussite ou d'échec en utilisant SendTaskSuccess ou SendTaskFailure. Ces deux appels utilisent le taskToken fourni par GetActivityTask pour associer le résultat à cette tâche.

API liées aux tâches d'activité

Step Functions fournit des API permettant de créer et de répertorier des activités, de demander une tâche et de gérer le flux de votre machine d'état en fonction des résultats de votre travailleur.

Les API Step Functions associées aux activités sont les suivantes :

Note

La recherche de tâches d'activité avec GetActivityTask peut provoquer une certaine latence dans les implémentations. Consultez Évitez la latence lorsque vous interrogez pour des tâches d'activité.

En attente de l'achèvement d'une tâche d'activité

Configurez la durée d'attente d'un état en définissant TimeoutSeconds dans la définition de tâche. Pour garder la tâche active et en attente, envoyez régulièrement une pulsation depuis votre travail d'activité en utilisant SendTaskHeartbeat dans le délai configuré dans TimeoutSeconds. En configurant un délai d'attente long et en envoyant activement un battement de cœur, une activité dans Step Functions peut attendre jusqu'à un an avant la fin de son exécution.

Par exemple, si vous avez besoin d'un flux de travail en attente du résultat d'un long processus, procédez comme suit.

  1. Créez une activité dans la console ou en utilisant CreateActivity. Notez l'ARN d'activité.

  2. Faites référence à l'ARN se trouvant en état de tâche d'activité dans la définition de votre machine d'état et définissez TimeoutSeconds.

  3. Implémentez un travail d'activité qui recherche un travail à l'aide de GetActivityTask, faisant référence à cet ARN d'activité.

  4. Utilisez SendTaskHeartbeat régulièrement au cours de la durée définie dans HeartbeatSeconds dans la définition de la tâche de la machine d'état pour éviter l'expiration de la tâche.

  5. Démarrer l'exécution de la machine d'état.

  6. Démarrez le processus de votre travail d'activité.

L'exécution s'interrompt au niveau de l'état de tâche d'activité et attend que le travail d'activité recherche une tâche. Dès qu'un taskToken est fourni à votre travail d'activité, votre flux de travail attend que SendTaskSuccess ou SendTaskFailure indique un statut. Si l'exécution ne reçoit pas l'un ou l'autre de ces éléments ou un appel SendTaskHeartbeat avant l'heure configurée dans TimeoutSeconds, l'exécution échoue et l'historique des exécutions comportera un événement ExecutionTimedOut.

Étapes suivantes

Pour un aperçu plus détaillé de la création de machines d'état qui utilisent des programmes de travail d'activité, voir :