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 üblicher Arbeitsablauf fürAWS Batch Kunden besteht darin, einen Einrichtungsauftrag für die Voraussetzungen auszuführen, eine Reihe von Befehlen für eine große Anzahl von Eingabeaufgaben auszuführen und dann mit einem Job abzuschließen, der Ergebnisse aggregiert und Zusammenfassungsdaten 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 S3-Bucket durchführt,BucketA. Die SubmitJobJSON-Syntax lautet wie folgt.

    { "jobName": "JobA", "jobQueue": "ProdQueue", "jobDefinition": "JobA-list-and-validate:1" }
  • JobB: Ein Array-Job mit 10.000 Kopien, derJobA davon abhängig ist, CPU-intensive Befehle für jedes Objekt ausführtBucketA und Ergebnisse in hochlädtBucketB. Die SubmitJobJSON-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 Array-JobJobB mit 10.000 Kopien, von dem einN_TO_N Abhängigkeitsmodell abhängt, das speicherintensive Befehle für jedes Element ausführtBucketB, Metadaten in DynamoDB schreibt und die resultierende Ausgabe in hochlädtBucketC. Die SubmitJobJSON-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 ausführt, die jeweils eine Abfrage von DynamoDB erfordern und möglicherweise mit einem der oben genannten Amazon S3 S3-Buckets interagieren. Jeder der Schritte inJobD führt denselben Befehl aus. Das Verhalten unterscheidet sich jedoch je nach Wert derAWS_BATCH_JOB_ARRAY_INDEX Umgebungsvariablen im Container des Jobs. Diese Validierungsschritte werden sequentiell ausgeführt (z. B.JobD:0 und dannJobD:1). Die SubmitJobJSON-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 ausführt und eine Amazon SNS SNS-Benachrichtigung mit einer Meldung sendet, dass die Pipeline abgeschlossen ist, und einem Link zur Ausgabe-URL. Die SubmitJobJSON-Syntax lautet wie folgt.

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