AWS Batchmit Lambda - 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.

AWS Batchmit Lambda

In diesem Beispielprojekt wird veranschaulicht, wie Sie Step Functions verwenden, um Daten vorab zu verarbeitenAWS LambdaFunktionen und orchestrieren Sie dannAWS Batchjobs. Durch die Bereitstellung dieses Beispielprojekts wird einAWS Step FunctionsState Machine, eine Lambda-Funktion und einAWS BatchAuftrag.

In diesem Projekt ruft Step Functions eine Statusmaschine auf, um eine Lambda-Funktion aufzurufen, um eine einfache Vorverarbeitung vor einemAWS BatchJob wird eingereicht. Je nach Ergebnis/Erfolg des vorherigen Jobs können mehrere Jobs aufgerufen werden.

Erstellen des Zustandsautomaten und Bereitstellen von Ressourcen

  1. Öffnen SieAWS Batchmit Lambda-Beispielprojekt

    Der Code und der Visual Workflow des Zustandsautomaten werden angezeigt.

    
            VerwaltenAWS Batch-Workflow.
  2. Wählen Sie Next (Weiter) aus.

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

    • Ein AWS Batch-Auftrag

    • Eine Lambda-Funktion

  3. Wählen Sie Deploy Resources (Ressourcen bereitstellen) aus.

    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 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 die Ausführung leichter 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 verfolgen 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 wechselnDashboardund 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 in integrierenAWS 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) imResourceFeld, 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 using batch job with pre-processing lambda", "StartAt": "Generate batch job input", "TimeoutSeconds": 3600, "States": { "Generate batch job input": { "Type": "Task", "Resource": "arn:aws:states:::lambda:invoke", "OutputPath": "$.batch_input", "Parameters": { "FunctionName": "<GENERATE_BATCH_JOB_INPUT_LAMBDA_FUNCTION_NAME>" }, "Next": "Submit Batch Job" }, "Submit Batch Job": { "Type": "Task", "Resource": "arn:aws:states:::batch:submitJob.sync", "Parameters": { "JobName": "BatchJobFanOut", "JobQueue": "<BATCH_QUEUE_ARN>", "JobDefinition": "<BATCH_JOB_DEFINITION_ARN>", "Parameters.$": "$.batch_input" }, "End": true } } }

IAM-Beispielprogramm

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

Beispiel BatchJobWithLambdaAccessPolicy

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "sns:Publish" ], "Resource": [ "arn:aws:sns:us-west-2:123456789012:ManageBatchJob-SNSTopic-JHLYYG7AZPZI" ], "Effect": "Allow" }, { "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-BatchWithL-GenerateBatchJobMap-444455556666", "Effect": "Allow" } ] }

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