Beispiel für Auftragsdefinitionen - 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 Auftragsdefinitionen

Die folgenden Beispiele für Auftragsdefinitionen veranschaulichen, wie Sie allgemeine Muster wie Umgebungsvariablen, Parameterersetzung und Volume-Mounts verwenden.

Verwenden von Umgebungsvariablen

In der folgenden Beispielauftragsdefinition werden Umgebungsvariablen verwendet, um einen Dateityp und eine Amazon S3-URL anzugeben. Dieses Beispiel stammt aus dem Datenverarbeitungs-Blogpost zum Anlegen eines einfachen "Fetch & Run"-AWS Batch-Jobs. Das im Blogbeitrag beschriebene fetch_and_run.shSkript verwendet diese Umgebungsvariablen, um das myjob.shSkript von S3 herunterzuladen und seinen Dateityp zu deklarieren.

Obwohl die Befehls- und Umgebungsvariablen in diesem Beispiel fest in die Auftragsdefinition codiert sind, können Sie Überschreibungen von Befehls- und Umgebungsvariablen angeben, um die Auftragsdefinition noch umfassender zu gestalten.

{ "jobDefinitionName": "fetch_and_run", "type": "container", "containerProperties": { "image": "123456789012.dkr.ecr.us-east-1.amazonaws.com/fetch_and_run", "resourceRequirements": [ { "type": "MEMORY", "value": "2000" }, { "type": "VCPU", "value": "2" } ], "command": [ "myjob.sh", "60" ], "jobRoleArn": "arn:aws:iam::123456789012:role/AWSBatchS3ReadOnly", "environment": [ { "name": "BATCH_FILE_S3_URL", "value": "s3://my-batch-scripts/myjob.sh" }, { "name": "BATCH_FILE_TYPE", "value": "script" } ], "user": "nobody" } }

Verwenden der Parameterersetzung

Im folgenden Auftragsdefinitionsbeispiel wird gezeigt, wie Sie die Parameterersetzung zulassen und Standardwerte festlegen.

Die Ref::-Deklarationen im Abschnitt command werden zum Festlegen von Platzhaltern für die Parameterersetzung verwendet. Wenn Sie einen Auftrag mit dieser Auftragsdefinition senden, geben Sie die Parameterüberschreibungen für diese Werte an, z. B. inputfile und outputfile. Im folgenden parameters Abschnitt wird ein Standardwert für festgelegtcodec, Sie können diesen Parameter jedoch nach Bedarf überschreiben.

Weitere Informationen finden Sie unter Parameter.

{ "jobDefinitionName": "ffmpeg_parameters", "type": "container", "parameters": {"codec": "mp4"}, "containerProperties": { "image": "my_repo/ffmpeg", "resourceRequirements": [ { "type": "MEMORY", "value": "2000" }, { "type": "VCPU", "value": "2" } ], "command": [ "ffmpeg", "-i", "Ref::inputfile", "-c", "Ref::codec", "-o", "Ref::outputfile" ], "jobRoleArn": "arn:aws:iam::123456789012:role/ECSTask-S3FullAccess", "user": "nobody" } }

Testen der GPU-Funktionalität

Mit dem folgende Auftragsdefinitionsbeispiel wird getestet, ob die GPU-Workload-AMI in Verwenden eines GPU-Workload-AMI ordnungsgemäß konfiguriert ist. In dieser Beispielauftragsdefinition wird das TensorFlow Deep MNIST-Classifier-Beispiel von ausgeführt GitHub.

{ "containerProperties": { "image": "tensorflow/tensorflow:1.8.0-devel-gpu", "resourceRequirements": [ { "type": "MEMORY", "value": "32000" }, { "type": "VCPU", "value": "8" } ], "command": [ "sh", "-c", "cd /tensorflow/tensorflow/examples/tutorials/mnist; python mnist_deep.py" ] }, "type": "container", "jobDefinitionName": "tensorflow_mnist_deep" }

Sie können eine Datei mit dem vorherigen JSON-Text erstellen tensorflow_mnist_deep.json und dann eine -AWS BatchAuftragsdefinition mit dem folgenden Befehl registrieren:

aws batch register-job-definition --cli-input-json file://tensorflow_mnist_deep.json

Paralleler Auftrag mit mehreren Knoten

Die folgende beispielhafte Aufgabendefinition veranschaulicht eine parallele Aufgabe mit mehreren Knoten. Weitere Informationen finden Sie unter Erstellen eines eng gekoppelten Workflows für die synchrone Dynamics mit parallelen Aufträgen mit mehreren Knoten in AWS Batch im AWS -Compute-Blog.

{ "jobDefinitionName": "gromacs-jobdef", "jobDefinitionArn": "arn:aws:batch:us-east-2:123456789012:job-definition/gromacs-jobdef:1", "revision": 6, "status": "ACTIVE", "type": "multinode", "parameters": {}, "nodeProperties": { "numNodes": 2, "mainNode": 0, "nodeRangeProperties": [ { "targetNodes": "0:1", "container": { "image": "123456789012.dkr.ecr.us-east-2.amazonaws.com/gromacs_mpi:latest", "resourceRequirements": [ { "type": "MEMORY", "value": "24000" }, { "type": "VCPU", "value": "8" } ], "command": [], "jobRoleArn": "arn:aws:iam::123456789012:role/ecsTaskExecutionRole", "ulimits": [], "instanceType": "p3.2xlarge" } } ] } }