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.
Einen AWS Batch Job ausfächern
Dieses Beispielprojekt zeigt, wie Sie den Map-Status von Step Functions verwenden können, um AWS Batch Jobs zu fächern. Durch die Bereitstellung dieses Beispielprojekts werden eine AWS Step Functions State-Maschine, eine Lambda-Funktion und eine AWS Batch Job-Warteschlange erstellt.
In diesem Projekt verwendet Step Functions eine State-Machine, um eine Lambda-Funktion aufzurufen, um eine einfache Vorverarbeitung durchzuführen, und ruft dann mithilfe des Map-Status mehrere AWS Batch Jobs parallel auf.
Erstellen des Zustandsautomaten und Bereitstellen von Ressourcen
-
Öffnen Sie das Beispielprojekt „An AWS Batch Job ausklappen
“. Der Status der Maschine und der visuelle Arbeitsablauf werden angezeigt. -
Wählen Sie Weiter aus.
Die Seite „Bereitstellen und Ausführen“ wird angezeigt, auf der die Ressourcen aufgeführt sind, die erstellt werden. Die Ressourcen für dieses Beispielprojekt:
-
Eine AWS Batch Job-Warteschlange
-
Eine Lambda-Funktion
-
-
Wählen Sie Deploy and run.
Anmerkung
Es kann bis zu 10 Minuten dauern, bis diese Ressourcen und die zugehörigen IAM-Berechtigungen erstellt sind. 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
-
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).
(Optional) Um Ihre Ausführung zu identifizieren, können Sie im Feld Name einen Namen dafür angeben. Standardmäßig generiert Step Functions automatisch einen eindeutigen Ausführungsnamen.
Anmerkung
Mit Step Functions können Sie Zustandsnamen, Maschinen-, Ausführungs- und Aktivitätsnamen erstellen, die Nicht-ASCII-Zeichen enthalten. Diese Nicht-ASCII-Namen funktionieren nicht mit Amazon. CloudWatch Um sicherzustellen, dass Sie CloudWatch Metriken verfolgen können, wählen Sie einen Namen, der nur ASCII-Zeichen verwendet.
-
Optional können Sie im Step Functions Dashboard zur neu erstellten Zustandsmaschine wechseln und dann Neue Ausführung auswählen.
-
Wenn eine Ausführung abgeschlossen ist, können Sie im visuellen Workflow Status auswählen und unter Schrittdetails nach Eingabe und Ausgabe suchen.
Code des Zustandsautomaten aus diesem Beispiel
Die State Machine in diesem Beispielprojekt lässt sich in Amazon SNS integrieren, indem Parameter direkt an diese Ressourcen weitergegeben werden. AWS Batch
Sehen Sie sich dieses Beispiel für einen State Machine an, um zu sehen, wie Step Functions Amazon SNS steuertAWS Batch, indem es eine Verbindung zum Amazon Resource Name (ARN) im Resource
Feld herstellt und Parameters
an die Service-API weiterleitet.
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
Diese durch das Beispielprojekt generierten Beispielrichtlinien AWS Identity and Access Management (IAM) beinhalten die geringsten Rechte, die zur Ausführung der State-Maschine und der zugehörigen Ressourcen erforderlich sind. Wir empfehlen, dass Sie nur die erforderlichen Berechtigungen in Ihre IAM-Richtlinien aufnehmen.
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" } ] }
Hinweise zur Konfiguration von IAM bei der Verwendung von Step Functions mit anderen AWS Diensten finden Sie unterIAM-Richtlinien für integrierte Dienste.