Umfrage des Auftragsstatus (Lambda,AWS Batch) - 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.

Umfrage des Auftragsstatus (Lambda,AWS Batch)

Dieses Beispielprojekt erstellt einen AWS Batch-Auftrags-Poller. Es implementiert einen AWS Step Functions-Zustandsautomaten, der mit AWS Lambda eine Wait-Zustandsschleife erstellt, die einen AWS Batch-Auftrag überprüft.

Dieses Beispielprojekt erstellt und konfiguriert alle Ressourcen, sodass Ihr Step Functions Functions-Workflow einenAWS Batch-Auftrag und wartet, bis dieser Auftrag abgeschlossen ist, bevor er erfolgreich beendet wird.

Anmerkung

Sie können dieses Muster auch ohne Lambda-Funktion implementieren. Weitere Informationen zum direkten Steuern von AWS Batch finden Sie unter Verwenden von AWS Step Functions mit sonstigen Services.

Dieses Beispielprojekt erstellt den Zustandsautomaten, zwei Lambda-Funktionen und einAWS BatchWarteschlange und konfiguriert die zugehörigen IAM-Berechtigungen.

Weitere Informationen darüber, wie AWS Step Functions andere AWS-Services steuern kann, finden Sie unter Verwenden von AWS Step Functions mit sonstigen Services.

Erstellen des Zustandsautomaten und Bereitstellen von Ressourcen

  1. Öffnen SieStep Functions Functions Konsoleund wähleErstellen eines Zustandsautomatenaus.

  2. Klicken Sie aufFühren Sie ein Beispielprojekt ausKlicken Sie auf und danach aufAuftrags-Polleraus.

    Der ZustandsautomatDefinitionundVisueller Workflowwerden angezeigt.

    
          Visueller Workflow für Auftrags-Poller
    Anmerkung

    DieDefinitionAbschnitt in diesem Zustandsmaschine verweist aufAWS-Ressourcen, die für dieses Beispielprojekt erstellt werden.

  3. Wählen Sie Next (Weiter) aus.

    Die Seite Deploy resources (Ressourcen bereitstellen) wird angezeigt und listet die Ressourcen auf, die erstellt werden. Die Ressourcen für dieses Beispielprojekt:

    • EINSubmitJobLambda-Funktion

    • EINCheckJobLambda-Funktion

    • Eine SampleJobQueue-Stapelauftrag-Warteschlange

  4. Klicken Sie aufBereitstellen von Ressourcenaus.

    Anmerkung

    Es kann bis zu 10 Minuten dauern, bis diese Ressourcen und dazu gehörende IAM-Berechtigungen erstellt werden. Wenn die Seite Deploy resources (Ressourcen bereitstellen) anzeigt wird, können Sie den Link Stack ID (Stack-ID) öffnen, um zu sehen, welche Ressourcen bereitgestellt werden.

Starten einer Ausführung

Nachdem alle Ressourcen bereitgestellt und bereitgestellt wurden, wird derStarten Sie die Ausführungangezeigt werden, wobei Beispieldaten ähnlich der Folgenden angezeigt werden.

{ "jobName": "my-job", "jobDefinition": "arn:aws:batch:us-east-1:123456789012:job-definition/SampleJobDefinition-343f54b445d5312:1", "jobQueue": "arn:aws:batch:us-east-1:123456789012:job-queue/SampleJobQueue-4d9d696031e1449", "wait_time": 60 }
Anmerkung

wait_time weist den Wait-Zustand an, alle 60 Sekunden eine Schleife auszuführen.

Starten einer neuen Ausführung

  1. (Optional) Um Ihre Ausführung zu identifizieren, können Sie einen Namen für sie in derNameaus. Standardmäßig generiert Step Functions automatisch einen eindeutigen Ausführungsnamen.

    Anmerkung

    Mit Step Functions können Sie Statuscomputer-, Ausführungs- und Aktivitätsnamen erstellen, die Nicht-ASCII-Zeichen enthalten. Diese Nicht-ASCII-Namen funktionieren nicht mit Amazon CloudWatch. Um sicherzustellen, dass Sie nachverfolgen können CloudWatch Metriken, wählen Sie einen Namen, der nur ASCII-Zeichen verwendet.

  2. Wählen Sie Start Execution aus.

  3. (Optional) Wählen Sie nach Abschluss der Ausführung einzelne Zustände in derGraph InspectorWählen Sie dann denSchritt-EingabeundSchritt-AusgabeRegisterkarten, um die Eingabe bzw. Ausgabe jedes Bundesstaates anzuzeigen.

    Zum Beispiel, um den sich ändernden Status IhresAWS BatchAuftrag und die Ergebnisse Ihrer Ausführung in Looping, Wählen SieSchritt-Ausgabeaus.

    
              Ausführung des Zustandsautomaten.

Code des Zustandsautomaten aus diesem Beispiel

Der Zustandsautomat in diesem Beispielprojekt wird inAWS LambdaÜbermitteln einesAWS Batch-Auftrag. Durchsuchen Sie diesen Beispiel-Zustandsautomaten, um zu sehen, wie Step Functions Functions-Lambda steuert undAWS Batchaus.

Weitere Informationen darüber, wie AWS Step Functions andere AWS-Services steuern kann, finden Sie unter Verwenden von AWS Step Functions mit sonstigen Services.

{ "Comment": "An example of the Amazon States Language that runs an AWS Batch job and monitors the job until it completes.", "StartAt": "Submit Job", "States": { "Submit Job": { "Type": "Task", "Resource": "arn:aws:lambda:us-east-1:111122223333:function:StepFunctionsSample-JobStatusPol-SubmitJobFunction-jDaYcl4cx55r", "ResultPath": "$.guid", "Next": "Wait X Seconds" }, "Wait X Seconds": { "Type": "Wait", "SecondsPath": "$.wait_time", "Next": "Get Job Status" }, "Get Job Status": { "Type": "Task", "Resource": "arn:aws:lambda:us-east-1:111122223333:function:StepFunctionsSample-JobStatusPoll-CheckJobFunction-1JkJwY10vonI", "Next": "Job Complete?", "InputPath": "$.guid", "ResultPath": "$.status" }, "Job Complete?": { "Type": "Choice", "Choices": [ { "Variable": "$.status", "StringEquals": "FAILED", "Next": "Job Failed" }, { "Variable": "$.status", "StringEquals": "SUCCEEDED", "Next": "Get Final Job Status" } ], "Default": "Wait X Seconds" }, "Job Failed": { "Type": "Fail", "Cause": "AWS Batch Job Failed", "Error": "DescribeJob returned FAILED" }, "Get Final Job Status": { "Type": "Task", "Resource": "arn:aws::lambda:us-east-1:111122223333:function:StepFunctionsSample-JobStatusPoll-CheckJobFunction-1JkJwY10vonI", "InputPath": "$.guid", "End": true } } }