View a markdown version of this page

Beispiel für einen Array-Job-Workflow - AWS Batch

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.

Beispiel für einen Array-Job-Workflow

Ein gängiger Arbeitsablauf für AWS Batch Kunden müssen einen erforderlichen Einrichtungsauftrag ausführen, eine Reihe von Befehlen für eine große Anzahl von Eingabeaufgaben ausführen und dann mit einem Job abschließen, der die Ergebnisse aggregiert und zusammenfassende Daten in Amazon S3, DynamoDB, Amazon Redshift oder Aurora schreibt.

Beispiel:

  • JobA: Ein Standardjob ohne Array, der eine schnelle Auflistung und Metadatenvalidierung von Objekten in einem Amazon S3-Bucket durchführt, BucketA. Das SubmitJob Die JSON-Syntax lautet wie folgt.

    { "jobName": "JobA", "jobQueue": "ProdQueue", "jobDefinition": "JobA-list-and-validate:1" }
  • JobB: Ein Array-Job mit 10.000 Kopien, der abhängig ist von JobA das läuft CPU-intensive Befehle für jedes Objekt in BucketA und lädt Ergebnisse hoch BucketB. Das SubmitJob Die JSON-Syntax lautet wie folgt.

    { "jobName": "JobB", "jobQueue": "ProdQueue", "jobDefinition": "JobB-CPU-Intensive-Processing:1", "containerOverrides": { "resourceRequirements": [ { "type": "MEMORY", "value": "4096" }, { "type": "VCPU", "value": "32" } ] } "arrayProperties": { "size": 10000 }, "dependsOn": [ { "jobId": "JobA_job_ID" } ] }
  • JobC: Ein weiterer 10.000 Kopier-Array-Job, der abhängig ist von JobB mit einem N_TO_N Abhängigkeitsmodell, das speicherintensive Befehle für jedes Element in ausführt BucketB, schreibt Metadaten in DynamoDB und lädt die resultierende Ausgabe hoch BucketC. Das SubmitJob Die JSON-Syntax lautet wie folgt.

    { "jobName": "JobC", "jobQueue": "ProdQueue", "jobDefinition": "JobC-Memory-Intensive-Processing:1", "containerOverrides": { "resourceRequirements": [ { "type": "MEMORY", "value": "32768" }, { "type": "VCPU", "value": "1" } ] } "arrayProperties": { "size": 10000 }, "dependsOn": [ { "jobId": "JobB_job_ID", "type": "N_TO_N" } ] }
  • JobD: Ein Array-Job, der 10 Validierungsschritte durchführt, die jeweils DynamoDB abfragen müssen und möglicherweise mit einem der oben genannten Amazon S3-Buckets interagieren. Jeder der Schritte in JobD führe den gleichen Befehl aus. Das Verhalten unterscheidet sich jedoch je nach dem Wert von AWS_BATCH_JOB_ARRAY_INDEX Umgebungsvariable im Container des Jobs. Diese Validierungsschritte werden sequentiell ausgeführt (z. B. JobD:0 und dann JobD:1). Das SubmitJob Die JSON-Syntax lautet wie folgt.

    { "jobName": "JobD", "jobQueue": "ProdQueue", "jobDefinition": "JobD-Sequential-Validation:1", "containerOverrides": { "resourceRequirements": [ { "type": "MEMORY", "value": "32768" }, { "type": "VCPU", "value": "1" } ] } "arrayProperties": { "size": 10 }, "dependsOn": [ { "jobId": "JobC_job_ID" }, { "type": "SEQUENTIAL" }, ] }
  • JobE: Ein letzter Job ohne Array, der einige einfache Bereinigungsvorgänge durchführt und eine Amazon SNS-Benachrichtigung mit der Meldung, dass die Pipeline abgeschlossen wurde, und einem Link zur Ausgabe-URL sendet. Der SubmitJob Die JSON-Syntax lautet wie folgt.

    { "jobName": "JobE", "jobQueue": "ProdQueue", "jobDefinition": "JobE-Cleanup-and-Notification:1", "parameters": { "SourceBucket": "s3://amzn-s3-demo-source-bucket", "Recipient": "pipeline-notifications@mycompany.com" }, "dependsOn": [ { "jobId": "JobD_job_ID" } ] }