Fächern Sie einAWS BatchAufgabe - 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.

Fächern Sie einAWS BatchAufgabe

Dieses Beispielprojekt veranschaulicht, wie Sie den Map-Status von Step Functions verwenden, um zu lüfternAWS Batch-Aufträge. Durch die Bereitstellung dieses Beispielprojekts wird einAWS Step FunctionsState Machine, eine Lambda-Funktion und einAWS BatchAuftragswarteschlange

In diesem Projekt ruft Step Functions eine Statusmaschine auf, um eine Lambda-Funktion für eine einfache Vorverarbeitung aufzurufen, und ruft dann mehrere aufAWS BatchJobs parallel unter Verwendung des Map-Status.

Erstellen des Zustandsautomaten und Bereitstellen von Ressourcen

  1. Öffnen SieFächern Sie einAWS BatchAufgabeBeispielprojekt. Die ZustandsmaschineCodeundVisueller Workflowangezeigt werden.

    
            Lüfter rausAWS Batch-Workflow.
  2. Wählen Sie Next (Weiter) aus.

    DieBereitstellen und ausführenangezeigt werden und listet die Ressourcen auf, die erstellt werden. Die Ressourcen für dieses Beispielprojekt:

    • Importieren in &S3;AWS BatchAuftragswarteschlange

    • Eine Lambda-Funktion

  3. Klicken Sie aufBereitstellen und ausführenaus.

    Anmerkung

    Es kann bis zu 10 Minuten dauern, bis diese Ressourcen und dazugehö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 neuen Ausführung

  1. Geben Sie auf der Seite New execution (Neue Ausführung) einen Namen für die Ausführung (optional) ein und wählen Sie Start Execution (Ausführung starten).

  2. (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 AmazonCloudWatchaus. Um sicherzustellen, dass Sie nachverfolgen könnenCloudWatchMetriken, wählen Sie einen Namen, der nur ASCII-Zeichen verwendet.

  3. Optional können Sie auf den Step Functions zum neu erstellten Zustandsautomaten wechselnDashboardKlicken Sie auf und danach aufNeue Ausführungaus.

  4. Wenn eine Ausführung abgeschlossen ist, können Sie den Status auf demVisueller Workflowund stöbern Sie imEingabeundAusgabeunterSchritt-Detailsaus.

Code des Zustandsautomaten aus diesem Beispiel

Der Zustandsautomat in diesem Beispielprojekt lässt sich inAWS Batchund Amazon SNS, indem Parameter direkt an diese Ressourcen übergeben werden.

So durchsuchen Sie diesen Beispiel-Zustandsautomaten, um zu sehen, wie Step Functions steuernAWS Batchund Amazon SNS, indem Sie eine Verbindung zum Amazon-Ressourcennamen (ARN) in derResourceFeld, und durch VorbeigehenParameterszur Service-API.

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 for fanning out AWS Batch job", "StartAt": "Generate batch job input", "TimeoutSeconds": 3600, "States": { "Generate batch job input": { "Type": "Task", "Resource": "arn:aws:states:::lambda:invoke", "OutputPath": "$.Payload", "Parameters": { "FunctionName": "<GENERATE_BATCH_JOB_INPUT_LAMBDA_FUNCTION_NAME>" }, "Next": "Fan out batch jobs" }, "Fan out batch jobs": { "Comment": "Start multiple executions of batch job depending on pre-processed data", "Type": "Map", "End": true, "ItemsPath": "$", "Parameters": { "BatchNumber.$": "$$.Map.Item.Value" }, "Iterator": { "StartAt": "Submit Batch Job", "States": { "Submit Batch Job": { "Type": "Task", "Resource": "arn:aws:states:::batch:submitJob.sync", "Parameters": { "JobName": "BatchJobFanOut", "JobQueue": "<BATCH_QUEUE_ARN>", "JobDefinition": "<BATCH_JOB_DEFINITION_ARN>" }, "End": true } } } } } }

IAM-Beispiel

In diesem BeispielAWS Identity and Access Management(IAM) -Beispielprojekt erstellt wurden, enthalten die geringstmöglichen Privilegien, die für die Ausführung des Zustandsautomaten und der verwandten Ressourcen erforderlich sind. Wir empfehlen, nur die erforderlichen Berechtigungen in Ihre IAM-Richtlinien aufzunehmen.

Beispiel BatchJobFanOutAccessPolicy

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "batch:SubmitJob", "batch:DescribeJobs", "batch:TerminateJob" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "events:PutTargets", "events:PutRule", "events:DescribeRule" ], "Resource": [ "arn:aws:events:us-west-2:123456789012:rule/StepFunctionsGetEventsForBatchJobsRule" ], "Effect": "Allow" } ] }

Beispiel InvokeGenerateBatchJobMapLambdaPolicy

{ "Statement": [ { "Action": [ "lambda:InvokeFunction" ], "Resource": "arn:aws:lambda:us-west-2:123456789012:function:StepFunctionsSample-BatchJobFa-GenerateBatchJobMap-444455556666", "Effect": "Allow" } ] }

Weitere Informationen zum Konfigurieren von IAM bei Verwendung von Step Functions mit anderenAWSDienstleistungen, sieheIAM-Richtlinien für integrierte Diensteaus.