View a markdown version of this page

Beispiel für einen Arbeitsablauf bei Array-Aufträgen - 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 Arbeitsablauf bei Array-Aufträgen

Ein üblicher Arbeitsablauf für AWS Batch Kunden besteht darin, einen erforderlichen Einrichtungsauftrag auszuführen, eine Reihe von Befehlen für eine große Anzahl von Eingabeaufgaben auszuführen und dann mit einem Job abzuschließ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 Die SubmitJob JSON-Syntax lautet wie folgt.

    { "jobName": "JobA", "jobQueue": "ProdQueue", "jobDefinition": "JobA-list-and-validate:1" }
  • JobB: Ein Array-Job mit 10.000 Kopien, der davon abhängtJobA, dass er CPU-intensive Befehle für jedes Objekt ausführt BucketA und Ergebnisse hochlädt. BucketB Die SubmitJob 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 Job zum Kopieren von 10.000 Arrays, von JobB dem ein N_TO_N Abhängigkeitsmodell abhängt. Dabei werden speicherintensive Befehle für jedes eingegebene Element ausgeführtBucketB, Metadaten in DynamoDB geschrieben und die resultierende Ausgabe dorthin hochgeladen. BucketC Die SubmitJob 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ührt denselben Befehl aus. Das Verhalten unterscheidet sich jedoch je nach Wert der AWS_BATCH_JOB_ARRAY_INDEX Umgebungsvariablen im Auftragscontainer. Diese Validierungsschritte werden sequentiell ausgeführt (z. B. JobD:0 und dannJobD:1). Die SubmitJob 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. Die SubmitJob 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" } ] }