Verwenden Sie Timeouts, um festgefahrene Ausführungen zu vermeiden - AWS Step Functions

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwenden Sie Timeouts, um festgefahrene Ausführungen zu vermeiden

Standardmäßig gibt die Sprache von Amazon States keine Timeouts für State-Machine-Definitionen an. Ohne ein explizites Timeout verlassen sich Step Functions oft ausschließlich auf die Antwort eines Aktivitätsmitarbeiters, um zu wissen, dass eine Aufgabe abgeschlossen ist. Wenn etwas schief geht und das TimeoutSeconds Feld nicht für den Task Status Activity oder angegeben ist, bleibt eine Ausführung hängen und wartet auf eine Antwort, die niemals kommen wird.

Um diese Situation zu vermeiden, geben Sie ein angemessenes Timeout an, wenn Sie eine Task Zustandsmaschine erstellen. Beispiele:

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

Wenn Sie einen Callback mit einem Task-Token verwenden (. waitForTaskToken), empfehlen wir, Heartbeats zu verwenden und das HeartbeatSeconds Feld zu Ihrer Task Statusdefinition hinzuzufügen. Sie können einen Wert festlegenHeartbeatSeconds, der unter dem Zeitlimit für die Aufgabe liegt. Wenn Ihr Workflow also mit einem Heartbeat-Fehler fehlschlägt, wissen Sie, dass es am Aufgabenfehler liegt und nicht daran, dass die Ausführung der Aufgabe viel Zeit in Anspruch nimmt.

{ "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 } } }

Weitere Informationen finden Sie Aufgabe in der Sprachdokumentation von Amazon States.

Anmerkung

Sie können mithilfe des TimeoutSeconds Felds in Ihrer Sprachdefinition für die Amazon-Staaten ein Timeout für Ihren State Machine festlegen. Weitere Informationen finden Sie unter Struktur der Zustandsmaschine.