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. GetActivityTask
gibt 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:
-
Erstellen Sie eine Aktivität mithilfe der Konsole oder unter Verwendung von
CreateActivity
. Notieren Sie sich den ARN der Aktivität. -
Verweisen Sie auf diesen ARN in einem Aktivitätsaufgabenstatus in der Definition Ihres Zustandsautomaten und setzen Sie
TimeoutSeconds
. -
Implementieren Sie einen Aktivitäts-Worker, der Arbeit mit
GetActivityTask
abruft und dabei auf diesen Aktivitäts-ARN verweist. -
Verwenden Sie regelmäßig
SendTaskHeartbeat
innerhalb der inHeartbeatSeconds
in Ihrer Aufgabendefinition des Zustandsautomaten festgelegten Zeit, um zu verhindern, dass ein Timeout für die Aufgabe entsteht. -
Starten Sie die Ausführung Ihres Zustandsautomaten.
-
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 SendTaskFailure
einen 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: