Aktivitäten - 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.

Aktivitäten

Aktivitäten sind eine AWS Step Functions Funktion, mit der Sie eine Aufgabe auf Ihrem State-Computer einrichten können, auf dem die Arbeit von einem Worker ausgeführt wird. Diese Aufgabe kann auf Amazon Elastic Compute Cloud (Amazon EC2), Amazon Elastic Container Service (Amazon ECS) und Mobilgeräten gehostet werden — praktisch überall.

Übersicht

In AWS Step Functions sind Aktivitäten eine Möglichkeit, Code, der irgendwo ausgeführt wird (der sogenannteAktivitäts-Worker) einer bestimmten Aufgabe in einem Zustandsautomaten zuzuordnen. Sie können eine Aktivität mithilfe der Step Functions-Konsole oder durch einen Anruf erstellenCreateActivity. Dies stellt einen Amazon-Ressourcennamen (ARN) für Ihren Aufgabenstatus bereit. Verwenden Sie diesen ARN, um den Aufgabenstatus für die Arbeit in Ihrem Aktivitäts-Worker abzurufen.

Anmerkung

Aktivitäten werden nicht versioniert und es wird erwartet, dass sie immer abwärtskompatibel sind. Wenn Sie eine abwärtsinkompatible Änderung an einer Aktivität vornehmen müssen, erstellen Sie in Step Functions eine neue Aktivität mit einem eindeutigen Namen.

Ein Activity Worker kann eine Anwendung sein, die auf einer Amazon EC2-Instance ausgeführt wird, eine AWS Lambda Funktion, ein Mobilgerät: jede Anwendung, die eine HTTP-Verbindung herstellen kann und überall gehostet wird. Wenn Step Functions den Status einer Aktivitätsaufgabe erreicht, wartet der Workflow darauf, dass ein Aktivitätsmitarbeiter nach einer Aufgabe fragt. Ein Activity Worker fragt Step Functions abGetActivityTask, indem er den ARN für die entsprechende Aktivität verwendet und sendet. GetActivityTaskgibt eine Antwort zurück, die input (eine Zeichenfolge mit JSON-Eingaben für die Aufgabe) und eine taskToken(eine eindeutige Kennung für die Aufgabe) enthält. Nachdem der Aktivitäts-Worker seine Arbeit abgeschlossen hat, kann er einen Bericht über seinen Erfolg oder Misserfolg mithilfe von SendTaskSuccess oder SendTaskFailure bereitstellen. Diese beiden Aufrufe verwenden dastaskToken, das von GetActivityTask bereitgestellt wurde, um das Ergebnis dieser Aufgabe zuzuordnen.

APIs im Zusammenhang mit Aktivitätsaufgaben

Step Functions bietet APIs zum Erstellen und Auflisten von Aktivitäten, zum Anfordern einer Aufgabe und zum Verwalten des Ablaufs Ihrer State Machine auf der Grundlage der Ergebnisse Ihres Workers.

Im Folgenden sind die Step Functions APIs aufgeführt, die sich auf Aktivitäten beziehen:

Anmerkung

Das Abrufen von Aktivitätsaufgaben mit GetActivityTask kann für einige Implementierungen eine gewisse Latenz verursachen. Siehe Vermeiden Sie Latenz bei der Abfrage von Aktivitätsaufgaben.

Auf den Abschluss einer Aktivitätsaufgabe warten

Konfigurieren Sie, wie lange ein Zustand wartet, indem Sie TimeoutSeconds in der Aufgabendefinition festlegen. Wenn die Aufgabe aktiv bleiben und warten soll, senden Sie mit SendTaskHeartbeat regelmäßig einen Heartbeat von Ihrem Aktivitäts-Worker innerhalb der in TimeoutSeconds konfigurierten Zeit. Durch die Konfiguration einer langen Timeout-Dauer und das aktive Senden eines Herzschlags kann eine Aktivität in Step Functions bis zu einem Jahr warten, bis eine Ausführung abgeschlossen ist.

Wenn Sie beispielsweise einen Workflow benötigen, der auf das Ergebnis eines langen Prozesses wartet, gehen Sie wie folgt vor:

  1. Erstellen Sie eine Aktivität mithilfe der Konsole oder unter Verwendung von CreateActivity. Notieren Sie sich den ARN der Aktivität.

  2. Verweisen Sie auf diesen ARN in einem Aktivitätsaufgabenstatus in der Definition Ihres Zustandsautomaten und setzen Sie TimeoutSeconds.

  3. Implementieren Sie einen Aktivitäts-Worker, der Arbeit mit GetActivityTask abruft und dabei auf diesen Aktivitäts-ARN verweist.

  4. Verwenden Sie regelmäßig SendTaskHeartbeat innerhalb der in HeartbeatSeconds in Ihrer Aufgabendefinition des Zustandsautomaten festgelegten Zeit, um zu verhindern, dass ein Timeout für die Aufgabe entsteht.

  5. Starten Sie die Ausführung Ihres Zustandsautomaten.

  6. Starten Sie Ihren Aktivitäts-Worker-Prozess.

Die Ausführung wird an dem Aktivitätsaufgabenstatus unterbrochen und wartet darauf, dass Ihr Aktivitäts-Worker eine Aufgabe abruft. Nachdem Ihrem Aktivitäts-Worker ein taskToken übergeben wurde, wartet Ihr Workflow, bis SendTaskSuccess oder SendTaskFailureeinen Status bereitstellt. Erhält die Ausführung keinen dieser Status oder einen SendTaskHeartbeat-Aufruf, bevor die in TimeoutSeconds konfigurierte Zeit abgelaufen ist, schlägt die Ausführung fehl und der Ausführungsverlauf enthält ein ExecutionTimedOut-Ereignis.

Nächste Schritte

Ausführlichere Informationen über das Erstellen eines Zustandsautomaten, der Aktivitäts-Arbeitskräfte verwendet, finden Sie unter: