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.