Utilisez les délais d'attente pour éviter les exécutions bloquées - 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.

Utilisez les délais d'attente pour éviter les exécutions bloquées

Par défaut, l'Amazon States Language ne spécifie pas de délais d'expiration pour les définitions des machines à états. En l'absence de délai d'attente explicite, Step Functions s'appuie souvent uniquement sur la réponse d'un intervenant chargé de l'activité pour savoir qu'une tâche est terminée. Si quelque chose ne va pas et que le TimeoutSeconds champ n'est pas spécifié pour un Task état Activity ou, une exécution est bloquée dans l'attente d'une réponse qui n'arrivera jamais.

Pour éviter cette situation, spécifiez un délai d'attente raisonnable lorsque vous créez une machine Task dans votre état. Par exemple :

"ActivityState": { "Type": "Task", "Resource": "arn:aws:states:us-east-1:123456789012:activity:HelloWorld", "TimeoutSeconds": 300, "Next": "NextState" }

Si vous utilisez un rappel avec un jeton de tâche (. waitForTaskToken), nous vous recommandons d'utiliser les pulsations cardiaques et d'ajouter le HeartbeatSeconds champ dans la définition de votre Task état. Vous pouvez le régler HeartbeatSeconds pour qu'il soit inférieur au délai d'expiration de la tâche. Ainsi, si votre flux de travail échoue en raison d'une erreur cardiaque, vous savez que c'est à cause de l'échec de la tâche et non du fait que l'exécution de la tâche prend du temps.

{ "StartAt": "Push to SQS", "States": { "Push to SQS": { "Type": "Task", "Resource": "arn:aws:states:::sqs:sendMessage.waitForTaskToken", "HeartbeatSeconds": 600, "Parameters": { "MessageBody": { "myTaskToken.$": "$$.Task.Token" }, "QueueUrl": "https://sqs.us-east-1.amazonaws.com/123456789012/push-based-queue" }, "ResultPath": "$.SQS", "End": true } } }

Pour plus d'informations, consultez État de la tâche la documentation Amazon States Language.

Note

Vous pouvez définir un délai d'expiration pour votre machine à états en utilisant le TimeoutSeconds champ de votre définition de Amazon States Language. Pour plus d'informations, veuillez consulter Structure de la machine d'État.