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

Im folgenden Auftragsdefinitionsbeispiel werden Umgebungsvariablen verwendet, um einen Dateityp und eine Amazon S3 S3-URL anzugeben. Dieses Beispiel stammt aus dem Datenverarbeitungs-Blogpost zum Anlegen eines einfachen "Fetch & Run"-AWS Batch-Jobs. Diefetch_and_run.shDas im Blogpost beschriebene Skript verwendet diese Umgebungsvariablen, um dasmyjob.sh-Skript von S3 und deklarieren seinen Dateityp.

Obwohl der Befehl und die Umgebungsvariablen in der Auftragsdefinition in diesem Beispiel hartcodiert sind, können Sie Überschreibungen für den Befehl und die Umgebungsvariable angeben, um die Auftragsdefinition flexibler 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. DieparametersAbschnitt, der folgt, legt einen Standardwert fürcodec, aber Sie können diesen Parameter bei 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 diesem Beispiel einer Auftragsdefinition wird der Klassifizierer TensorFlow deep MNIST ausgeführtBeispielvon 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 namens erstellentensorflow_mnist_deep.jsonund melden Sie sich dann anAWS BatchAuftragsdefinition mit dem folgenden -Befehl:

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

Parallele Auftrag mit mehreren Knoten

Die folgende beispielhafte Aufgabendefinition veranschaulicht eine parallele Aufgabe mit mehreren Knoten. Weitere Informationen finden Sie unterAufbau eines eng gekoppelten molekularen dynamischen Workflows mit parallelen -Aufgaben mit mehreren KnotenAWS BatchimAWSDatenverarbeitungBlog.

{ "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" } } ] } }