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 Aktivität.AWS Step Functions-Funktion, mit der Sie eine Aufgabe in Ihrem Zustandsautomaten ausführen lassen können, wobei die Arbeit von einemArbeiterSie können auf Amazon Elastic Compute Cloud (Amazon EC2), Amazon Elastic Container Service (Amazon ECS) und mobilen Geräten gehostet werden — im Grunde ü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 den Aufruf von erstellenCreateActivityaus. Dadurch wird ein Amazon-Ressourcennamen (ARN) für Ihren Aufgabenstatus bereitgestellt. 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 Änderung an einer Aktivität vornehmen müssen, die nicht abwärtskompatibel ist, erstellen Sie eine Aktivität.neueeine Aktivität in Step Functions unter Verwendung eines eindeutigen Namens.

Ein Aktivitäts-Worker kann eine Anwendung, die auf einer Amazon EC2 EC2-Instance ausgeführt wird, eine Aktivität sein,AWS Lambda-Funktion, ein mobiles Gerät: eine beliebige Anwendung, die eine HTTP-Verbindung einrichten kann, an beliebiger Stelle gehostet. Wenn Step Functions einen Aktivitätsaufgabenstatus erreichen, wartet der Workflow, bis ein Aktivitäts-Worker eine Aufgabe abruft. Ein Aktivitätsarbeiter fragt Step Functions mitGetActivityTaskund senden Sie den ARN für die zugehörige Aktivität.GetActivityTaskgibt eine Antwort zurück, einschließlichinput(eine Reihe von JSON-Eingaben für die Aufgabe) und eintaskToken(eine eindeutige Kennung für die Aufgabe). 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 stellt APIs zum Erstellen und Auflisten von Aktivitäten, Anfordern einer Aufgabe und für die Verwaltung des Ablaufs Ihres Zustandsautomaten auf der Grundlage der Ergebnisse Ihrer Worker bereit.

Im Folgenden finden Sie die Step Functions Functions-APIs, 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 Heartbeats 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: