Redrivingexécutions - 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.

Redrivingexécutions

Vous pouvez l'utiliser redrive pour redémarrer les exécutions de flux de travail standard qui ne se sont pas terminées correctement au cours des 14 derniers jours. Il s'agit notamment des exécutions échouées, abandonnées ou dont le délai imparti a expiré.

Lorsque vous effectuez redrive une exécution, elle poursuit l'exécution échouée à partir de l'étape infructueuse et utilise la même entrée. Step Functionspréserve les résultats et l'historique d'exécution des étapes réussies, et ces étapes ne sont pas réexécutées lors redrive d'une exécution. Supposons, par exemple, que votre flux de travail contienne deux états : un Pass état suivi d'un État de la tâche état. Si l'exécution de votre flux de travail échoue à l'état Tâche et que vous redrive l'exécutez, l'exécution replanifie puis réexécute l'état Tâche.

Redrivenles exécutions utilisent la même définition de machine à états et le même ARN d'exécution que ceux utilisés lors de la tentative d'exécution initiale. Si votre tentative d'exécution initiale était associée à une version, à un alias ou aux deux, l'redrivenexécution est associée à la même version, au même alias, ou aux deux. Même si vous mettez à jour votre alias pour qu'il pointe vers une autre version, l'redrivenexécution continue d'utiliser la version associée à la tentative d'exécution initiale. Étant donné que les redriven exécutions utilisent la même définition de machine à états, vous devez démarrer une nouvelle exécution si vous mettez à jour la définition de votre machine à états.

Lors redrive d'une exécution, le délai d'expiration au niveau de la machine à états, s'il est défini, est remis à 0. Pour plus d'informations sur le délai d'expiration au niveau de la machine à états, consultezTimeoutSeconds.

redrivesLes exécutions sont considérées comme des transitions d'état. Pour plus d'informations sur l'impact des transitions entre États sur la facturation, consultez Step Functions Pricing.

Redriveéligibilité en cas d'exécution infructueuse

Vous pouvez exécuter redrive des exécutions si votre tentative d'exécution initiale répond aux conditions suivantes :

  • Vous avez commencé l'exécution le 15 novembre 2023 ou après cette date. Les exécutions que vous avez commencées avant cette date ne sont pas éligiblesredrive.

  • Le statut d'exécution ne l'est pasSUCCEEDED.

  • L'exécution du flux de travail n'a pas dépassé le redrivable délai de 14 jours. RedrivableLa période fait référence au temps pendant lequel vous pouvez redrive effectuer une exécution donnée. Cette période commence le jour où une machine d'État termine son exécution.

  • L'exécution du flux de travail n'a pas dépassé la durée d'ouverture maximale d'un an. Pour plus d'informations sur les quotas d'exécution des machines à états, consultezQuotas liés aux exécutions par les machines de l'État.

  • L'historique des événements d'exécution est inférieur à 24 999. Redrivenles exécutions ajoutent leur historique des événements à l'historique des événements existant. Assurez-vous que l'exécution de votre flux de travail contient moins de 24 999 événements pour tenir compte de ExecutionRedriven l'événement historique et d'au moins un autre événement historique.

Redrivecomportement des différents États

En fonction de l'état qui a échoué dans votre flux de travail, le redrive comportement de tous les états d'échec varie. Le tableau suivant décrit le redrive comportement de tous les états.

Nom de l'État Redrivecomportement d'exécution
Pass

Si une étape précédente échoue ou si le délai d'expiration de la machine à états expire, l'état Pass est quitté et n'est pas exécuté. redrive

État de la tâche

Planifie et recommence l'état de la tâche.

Lorsque vous redrive effectuez une exécution qui réexécute un état de tâche, l'état TimeoutSeconds correspondant, s'il est défini, est remis à 0. Pour plus d'informations sur le délai d'expiration, consultez la section État des tâches.

Choice Réévalue les règles de l'état Choice.
Attente

Si l'état indique Timestamp ou TimestampPath fait référence à un horodatage antérieur, redrive provoque la sortie de l'état Wait et entre dans l'état spécifié dans le champ. Next

Succeed

N'indique pas redrive les exécutions automatiques qui passent à l'état Succeed.

Fail

Repasse à l'état Fail et échoue à nouveau.

Parallèle

Replanifie et redrives uniquement les branches qui ont échoué ou ont été abandonnées.

Si l'état a échoué en raison d'une States.DataLimitExceeded erreur, l'état parallèle est réexécuté, y compris les branches qui ont réussi lors de la tentative d'exécution initiale.

État de la carte en ligne

Replanifie et redrives uniquement les itérations qui ont échoué ou ont été abandonnées.

Si l'état a échoué en raison d'une States.DataLimitExceeded erreur, l'état Inline Map est réexécuté, y compris les itérations réussies lors de la tentative d'exécution initiale.

État de la carte distribuée

redrivesles exécutions infructueuses du flux de travail enfant dans un Map Run. Pour de plus amples informations, veuillez consulter RedrivingCartes parcourues.

Si l'état a échoué en raison d'une States.DataLimitExceeded erreur, l'état de la carte distribuée est réexécuté. Cela inclut les flux de travail enfants qui ont réussi lors de la tentative d'exécution initiale.

Autorisation IAM pour redrive une exécution

Step Functions a besoin d'une autorisation appropriée pour redrive une exécution. L'exemple de politique IAM suivant accorde le minimum de privilèges requis à votre machine d'état pour redriving une exécution. N'oubliez pas de remplacer le texte en italique par les informations spécifiques à votre ressource.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "states:RedriveExecution" ], "Resource": "arn:aws:states:us-east-2:123456789012:execution:myStateMachine:*" } ] }

Pour un exemple de l'autorisation dont vous avez besoin pour exécuter redrive une carte, consultezExemple de politique IAM pour redriving une carte distribuée.

Redrivingexécutions dans la console

Vous pouvez redrive sélectionner des exécutions depuis la Step Functions console.

Supposons, par exemple, que l'image suivante représente le graphe du flux de travail de votre machine à états.

Graphique de flux de travail d'une machine à états incluant les états : Pass, Parallel, Lambda Invoke et Wait.

Imaginez que vous dirigez cette machine d'État. L'image suivante montre le graphique de l'exécution de la machine à états.

Graphique de l'échec de l'exécution d'une machine à états. Lors de cette exécution, la branche d'état parallèle nommée Do square number a échoué, provoquant l'échec de l'état parallèle.

Comme le montre cette image, l'étape LambdaInvoke nommée Do square number inside the Parallel state a renvoyé une erreur. Cela a provoqué l'échec de l'état parallèle. Les branches dont l'exécution était en cours ou non démarrée sont arrêtées et l'exécution de la machine d'état échoue.

Vers redrive une exécution depuis la console
  1. Ouvrez la console Step Functions, puis choisissez une machine à états existante dont l'exécution a échoué.

  2. Sur la page détaillée de la machine d'état, sous Exécutions, choisissez une instance d'exécution ayant échoué.

  3. Sélectionnez Redrive.

  4. Dans la Redriveboîte de dialogue, sélectionnez RedriveExécution.

    Astuce

    Si vous êtes sur la page Détails de l'exécution d'une exécution qui a échoué, effectuez l'une des opérations suivantes pour redrive l'exécution :

    • Choisissez Restaurer, puis sélectionnez En cas Redrive d'échec.

    • Choisissez Actions, puis sélectionnez Redrive.

    Notez qu'il redrive utilise la même définition de machine à états et le même ARN. Il poursuit l'exécution à partir de l'étape qui a échoué lors de la tentative d'exécution initiale. Dans cet exemple, il s'agit de l'étape Do square number et de la branche Wait 3 sec dans l'état Parallel. Après avoir redémarré l'exécution de ces étapes infructueuses à l'état parallèle, l'exécution de l'étape Terminé se redrive poursuivra.

  5. Choisissez l'exécution pour ouvrir la page Détails de l'exécution.

    Sur cette page, vous pouvez consulter les résultats de l'redrivenexécution. Par exemple, dans la Résumé de l'exécution section, vous pouvez voir le Redrivenombre, qui représente le nombre de fois qu'une exécution a eu lieuredriven. Dans la section Événements, vous pouvez voir les événements d'exécution redrive associés ajoutés aux événements de la tentative d'exécution initiale. Par exemple, l'ExecutionRedrivenévénement.

Redrivingexécutions à l'aide de l'API

Vous pouvez sélectionner redrive des exécutions à l'aide de l'RedriveExecutionAPI. Cette API redémarre les exécutions infructueuses des flux de travail standard à partir de l'étape qui a échoué, qui a été interrompue ou qui a expiré.

Dans le AWS Command Line Interface (AWS CLI), exécutez la commande suivante en cas redrive d'échec de l'exécution de la machine à états. N'oubliez pas de remplacer le texte en italique par les informations spécifiques à votre ressource.

aws stepfunctions redrive-execution --execution-arn arn:aws:states:us-east-2:123456789012:execution:myStateMachine:foo

Examen des redriven exécutions

Vous pouvez examiner une redriven exécution dans la console ou à l'aide des API : GetExecutionHistoryet DescribeExecution.

Examiner redriven les exécutions sur console
  1. Ouvrez la console Step Functions, puis choisissez une machine à états existante pour laquelle vous avez redriven une exécution.

  2. Ouvrez la page Détails de l'exécution.

    Sur cette page, vous pouvez consulter les résultats de l'redrivenexécution. Par exemple, dans la Résumé de l'exécution section, vous pouvez voir le Redrivenombre, qui représente le nombre de fois qu'une exécution a eu lieuredriven. Dans la section Événements, vous pouvez voir les événements d'exécution redrive associés ajoutés aux événements de la tentative d'exécution initiale. Par exemple, l'ExecutionRedrivenévénement.

Examinez les redriven exécutions à l'aide d'API

Si vous avez redriven une exécution par machine à états, vous pouvez utiliser l'une des API suivantes pour afficher les détails de l'redrivenexécution. N'oubliez pas de remplacer le texte en italique par les informations spécifiques à votre ressource.

  • GetExecutionHistory — Renvoie l'historique de l'exécution spécifiée sous forme de liste d'événements. Cette API renvoie également les informations relatives à la redrive tentative d'exécution, si elles sont disponibles.

    Dans le AWS CLI, exécutez la commande suivante.

    aws stepfunctions get-execution-history --execution-arn arn:aws:states:us-east-2:123456789012:execution:myStateMachine:foo
  • DescribeExecution — Fournit des informations sur l'exécution d'une machine à états. Il peut s'agir de la machine d'état associée à l'exécution, des entrées et sorties d'exécution, des redrive détails de l'exécution, le cas échéant, et des métadonnées d'exécution pertinentes.

    Dans le AWS CLI, exécutez la commande suivante.

    aws stepfunctions describe-execution --execution-arn arn:aws:states:us-east-2:123456789012:execution:myStateMachine:foo

Réessayer le comportement des exécutions redriven

Si votre redriven exécution réexécute un état État de la tâcheParallèle, ou Inline Map, pour lequel vous avez défini de nouvelles tentatives, le nombre de tentatives pour ces états est remis à 0. Cela permet de maximiser le nombre de tentativesredrive. Pour une redriven exécution, vous pouvez suivre les tentatives de tentative individuelles de ces états à l'aide de la console.

Pour examiner les différentes tentatives de tentative dans la console
  1. Sur la page Détails de l'exécution de la console Step Functions, choisissez un état qui a été réessayé. redrive

  2. Cliquez sur l'redrivesonglet Rétentatives et.

  3. Cliquez sur la arrow icon case à côté de chaque nouvelle tentative pour en afficher les détails. Si la nouvelle tentative a réussi, vous pouvez consulter les résultats dans la section Sortie qui apparaît dans une liste déroulante.

L'image suivante montre un exemple des nouvelles tentatives effectuées pour un état lors de la tentative d'exécution initiale et redrives de cette exécution. Dans cette image, trois nouvelles tentatives sont effectuées lors des tentatives d'origine et d'redriveexécution. L'exécution réussit à la quatrième redrive tentative et renvoie une sortie de 16.

Réessaie et affiche redrives l'état d'une redriven tâche. Cet onglet indique les trois tentatives de nouvelle tentative effectuées lors de l'exécution initiale et celle redrives de cette exécution. L'exécution réussit à la quatrième redrive tentative et renvoie une sortie de 16.