Beispiele für die Verwendung der AWS CLI mit AWS Batch - AWS Command Line Interface

Beispiele für die Verwendung der AWS CLI mit AWS Batch

Die folgenden Codebeispiele zeigen, wie Sie Aktionen durchführen und gängige Szenarien implementieren, indem Sie die AWS Command Line Interface mit AWS Batch nutzen.

Aktionen sind Codeauszüge aus größeren Programmen und müssen im Kontext ausgeführt werden. Während Aktionen Ihnen zeigen, wie Sie einzelne Service-Funktionen aufrufen, können Sie Aktionen im Kontext der zugehörigen Szenarien anzeigen.

Jedes Beispiel enthält einen Link zum vollständigen Quellcode, wo Sie Anleitungen zum Einrichten und Ausführen des Codes im Kontext finden.

Themen

Aktionen

Das folgende Codebeispiel zeigt, wie cancel-job verwendet wird.

AWS CLI

So brechen Sie einen Auftrag ab

In diesem Beispiel wird ein Auftrag mit der angegebenen Auftrags-ID abgebrochen.

Befehl:

aws batch cancel-job --job-id bcf0b186-a532-4122-842e-2ccab8d54efb --reason "Cancelling job."
  • API-Details finden Sie unter CancelJob in der AWS CLI-Befehlsreferenz.

Das folgende Codebeispiel zeigt, wie create-compute-environment verwendet wird.

AWS CLI

So erstellen Sie eine verwaltete Datenverarbeitungsumgebung mit On-Demand-Instances

In diesem Beispiel wird eine verwaltete Datenverarbeitungsumgebung mit bestimmten C4-Instance-Typen erstellt, die bei Bedarf gestartet werden. Die Datenverarbeitungsumgebung wird als C4OnDemand bezeichnet.

Befehl:

aws batch create-compute-environment --cli-input-json file://<path_to_json_file>/C4OnDemand.json

JSON-Dateiformat:

{ "computeEnvironmentName": "C4OnDemand", "type": "MANAGED", "state": "ENABLED", "computeResources": { "type": "EC2", "minvCpus": 0, "maxvCpus": 128, "desiredvCpus": 48, "instanceTypes": [ "c4.large", "c4.xlarge", "c4.2xlarge", "c4.4xlarge", "c4.8xlarge" ], "subnets": [ "subnet-220c0e0a", "subnet-1a95556d", "subnet-978f6dce" ], "securityGroupIds": [ "sg-cf5093b2" ], "ec2KeyPair": "id_rsa", "instanceRole": "ecsInstanceRole", "tags": { "Name": "Batch Instance - C4OnDemand" } }, "serviceRole": "arn:aws:iam::012345678910:role/AWSBatchServiceRole" }

Ausgabe:

{ "computeEnvironmentName": "C4OnDemand", "computeEnvironmentArn": "arn:aws:batch:us-east-1:012345678910:compute-environment/C4OnDemand" }

So erstellen Sie eine verwaltete Datenverarbeitungsumgebung mit Spot Instances

In diesem Beispiel wird eine verwaltete Datenverarbeitungsumgebung mit dem Instance-Typ M4 erstellt. Diese wird gestartet, wenn der Spot-Gebotspreis bei oder unter 20 % des On-Demand-Preises für den Instance-Typ liegt. Die Datenverarbeitungsumgebung wird als M4Spot bezeichnet.

Befehl:

aws batch create-compute-environment --cli-input-json file://<path_to_json_file>/M4Spot.json

JSON-Dateiformat:

{ "computeEnvironmentName": "M4Spot", "type": "MANAGED", "state": "ENABLED", "computeResources": { "type": "SPOT", "spotIamFleetRole": "arn:aws:iam::012345678910:role/aws-ec2-spot-fleet-role", "minvCpus": 0, "maxvCpus": 128, "desiredvCpus": 4, "instanceTypes": [ "m4" ], "bidPercentage": 20, "subnets": [ "subnet-220c0e0a", "subnet-1a95556d", "subnet-978f6dce" ], "securityGroupIds": [ "sg-cf5093b2" ], "ec2KeyPair": "id_rsa", "instanceRole": "ecsInstanceRole", "tags": { "Name": "Batch Instance - M4Spot" } }, "serviceRole": "arn:aws:iam::012345678910:role/AWSBatchServiceRole" }

Ausgabe:

{ "computeEnvironmentName": "M4Spot", "computeEnvironmentArn": "arn:aws:batch:us-east-1:012345678910:compute-environment/M4Spot" }

Das folgende Codebeispiel zeigt, wie create-job-queue verwendet wird.

AWS CLI

So erstellen Sie eine Auftragswarteschlange mit niedriger Priorität mit einer einzigen Datenverarbeitungsumgebung

In diesem Beispiel wird eine Auftragswarteschlange namens „LowPriority“ erstellt, die die M4Spot-Datenverarbeitungsumgebung nutzt.

Befehl:

aws batch create-job-queue --cli-input-json file://<path_to_json_file>/LowPriority.json

JSON-Dateiformat:

{ "jobQueueName": "LowPriority", "state": "ENABLED", "priority": 10, "computeEnvironmentOrder": [ { "order": 1, "computeEnvironment": "M4Spot" } ] }

Ausgabe:

{ "jobQueueArn": "arn:aws:batch:us-east-1:012345678910:job-queue/LowPriority", "jobQueueName": "LowPriority" }

So erstellen Sie eine Auftragswarteschlange mit hoher Priorität mit zwei Datenverarbeitungsumgebungen

In diesem Beispiel wird eine Auftragswarteschlange namens „HighPriority“ erstellt, die die C4OnDemand-Datenverarbeitungsumgebung mit der Reihenfolge 1 und die M4Spot-Datenverarbeitungsumgebung mit der Reihenfolge 2 verwendet. Der Scheduler versucht zunächst, Aufträge in der C4OnDemand-Datenverarbeitungsumgebung zu platzieren.

Befehl:

aws batch create-job-queue --cli-input-json file://<path_to_json_file>/HighPriority.json

JSON-Dateiformat:

{ "jobQueueName": "HighPriority", "state": "ENABLED", "priority": 1, "computeEnvironmentOrder": [ { "order": 1, "computeEnvironment": "C4OnDemand" }, { "order": 2, "computeEnvironment": "M4Spot" } ] }

Ausgabe:

{ "jobQueueArn": "arn:aws:batch:us-east-1:012345678910:job-queue/HighPriority", "jobQueueName": "HighPriority" }
  • API-Details finden Sie unter CreateJobQueue in der AWS CLI-Befehlsreferenz.

Das folgende Codebeispiel zeigt, wie delete-compute-environment verwendet wird.

AWS CLI

So löschen Sie eine Datenverarbeitungsumgebung

In diesem Beispiel wird die P2OnDemand-Datenverarbeitungsumgebung gelöscht.

Befehl:

aws batch delete-compute-environment --compute-environment P2OnDemand

Das folgende Codebeispiel zeigt, wie delete-job-queue verwendet wird.

AWS CLI

So löschen Sie eine Auftragswarteschlange

In diesem Beispiel wird die GPGPU-Auftragswarteschlange gelöscht.

Befehl:

aws batch delete-job-queue --job-queue GPGPU
  • API-Details finden Sie unter DeleteJobQueue in der AWS CLI-Befehlsreferenz.

Das folgende Codebeispiel zeigt, wie deregister-job-definition verwendet wird.

AWS CLI

So heben Sie die Registrierung einer Auftragsdefinition auf

In diesem Beispiel wird die Registrierung einer Auftragsdefinition namens „sleep10“ aufgehoben.

Befehl:

aws batch deregister-job-definition --job-definition sleep10

Das folgende Codebeispiel zeigt, wie describe-compute-environments verwendet wird.

AWS CLI

So beschreiben Sie eine Datenverarbeitungsumgebung

In diesem Beispiel wird die P2OnDemand-Datenverarbeitungsumgebung beschrieben.

Befehl:

aws batch describe-compute-environments --compute-environments P2OnDemand

Ausgabe:

{ "computeEnvironments": [ { "status": "VALID", "serviceRole": "arn:aws:iam::012345678910:role/AWSBatchServiceRole", "computeEnvironmentArn": "arn:aws:batch:us-east-1:012345678910:compute-environment/P2OnDemand", "computeResources": { "subnets": [ "subnet-220c0e0a", "subnet-1a95556d", "subnet-978f6dce" ], "tags": { "Name": "Batch Instance - P2OnDemand" }, "desiredvCpus": 48, "minvCpus": 0, "instanceTypes": [ "p2" ], "securityGroupIds": [ "sg-cf5093b2" ], "instanceRole": "ecsInstanceRole", "maxvCpus": 128, "type": "EC2", "ec2KeyPair": "id_rsa" }, "statusReason": "ComputeEnvironment Healthy", "ecsClusterArn": "arn:aws:ecs:us-east-1:012345678910:cluster/P2OnDemand_Batch_2c06f29d-d1fe-3a49-879d-42394c86effc", "state": "ENABLED", "computeEnvironmentName": "P2OnDemand", "type": "MANAGED" } ] }

Das folgende Codebeispiel zeigt, wie describe-job-definitions verwendet wird.

AWS CLI

So beschreiben Sie aktive Auftragsdefinitionen

In diesem Beispiel werden alle Ihre aktiven Auftragsdefinitionen beschrieben.

Befehl:

aws batch describe-job-definitions --status ACTIVE

Ausgabe:

{ "jobDefinitions": [ { "status": "ACTIVE", "jobDefinitionArn": "arn:aws:batch:us-east-1:012345678910:job-definition/sleep60:1", "containerProperties": { "mountPoints": [], "parameters": {}, "image": "busybox", "environment": {}, "vcpus": 1, "command": [ "sleep", "60" ], "volumes": [], "memory": 128, "ulimits": [] }, "type": "container", "jobDefinitionName": "sleep60", "revision": 1 } ] }

Das folgende Codebeispiel zeigt, wie describe-job-queues verwendet wird.

AWS CLI

So beschreiben Sie eine Auftragswarteschlange

In diesem Beispiel wird die Auftragswarteschlange „HighPriority“ beschrieben.

Befehl:

aws batch describe-job-queues --job-queues HighPriority

Ausgabe:

{ "jobQueues": [ { "status": "VALID", "jobQueueArn": "arn:aws:batch:us-east-1:012345678910:job-queue/HighPriority", "computeEnvironmentOrder": [ { "computeEnvironment": "arn:aws:batch:us-east-1:012345678910:compute-environment/C4OnDemand", "order": 1 } ], "statusReason": "JobQueue Healthy", "priority": 1, "state": "ENABLED", "jobQueueName": "HighPriority" } ] }

Das folgende Codebeispiel zeigt, wie describe-jobs verwendet wird.

AWS CLI

So beschreiben Sie einen Auftrag

Das folgende describe-jobs-Beispiel beschreibt einen Auftrag mit der angegebenen Auftrags-ID.

aws batch describe-jobs \ --jobs bcf0b186-a532-4122-842e-2ccab8d54efb

Ausgabe:

{ "jobs": [ { "status": "SUBMITTED", "container": { "mountPoints": [], "image": "busybox", "environment": [], "vcpus": 1, "command": [ "sleep", "60" ], "volumes": [], "memory": 128, "ulimits": [] }, "parameters": {}, "jobDefinition": "arn:aws:batch:us-east-1:012345678910:job-definition/sleep60:1", "jobQueue": "arn:aws:batch:us-east-1:012345678910:job-queue/HighPriority", "jobId": "bcf0b186-a532-4122-842e-2ccab8d54efb", "dependsOn": [], "jobName": "example", "createdAt": 1480483387803 } ] }
  • API-Details finden Sie unter DescribeJobs in der AWS CLI-Befehlsreferenz.

Das folgende Codebeispiel zeigt, wie list-jobs verwendet wird.

AWS CLI

So listen Sie laufende Aufträge auf

In diesem Beispiel werden die laufenden Aufträge in der HighPriority-Auftragswarteschlange aufgelistet.

Befehl:

aws batch list-jobs --job-queue HighPriority

Ausgabe:

{ "jobSummaryList": [ { "jobName": "example", "jobId": "e66ff5fd-a1ff-4640-b1a2-0b0a142f49bb" } ] }

So listen Sie übermittelte Aufträge auf

In diesem Beispiel werden Aufträge in der HighPriority-Auftragswarteschlange aufgelistet, die sich im Auftragsstatus SUBMITTED befinden.

Befehl:

aws batch list-jobs --job-queue HighPriority --job-status SUBMITTED

Ausgabe:

{ "jobSummaryList": [ { "jobName": "example", "jobId": "68f0c163-fbd4-44e6-9fd1-25b14a434786" } ] }
  • API-Details finden Sie unter ListJobs in der AWS CLI-Befehlsreferenz.

Das folgende Codebeispiel zeigt, wie register-job-definition verwendet wird.

AWS CLI

So registrieren Sie eine Auftragsdefinition

In diesem Beispiel wird eine Auftragsdefinition für einen einfachen Container-Auftrag registriert.

Befehl:

aws batch register-job-definition --job-definition-name sleep30 --type container --container-properties '{ "image": "busybox", "vcpus": 1, "memory": 128, "command": [ "sleep", "30"]}'

Ausgabe:

{ "jobDefinitionArn": "arn:aws:batch:us-east-1:012345678910:job-definition/sleep30:1", "jobDefinitionName": "sleep30", "revision": 1 }

Das folgende Codebeispiel zeigt, wie submit-job verwendet wird.

AWS CLI

So senden Sie einen Auftrag

In diesem Beispiel wird ein einfacher Container-Auftrag mit dem Namen „example“ an die HighPriority-Auftragswarteschlange gesendet.

Befehl:

aws batch submit-job --job-name example --job-queue HighPriority --job-definition sleep60

Ausgabe:

{ "jobName": "example", "jobId": "876da822-4198-45f2-a252-6cea32512ea8" }
  • API-Details finden Sie unter SubmitJob in der AWS CLI-Befehlsreferenz.

Das folgende Codebeispiel zeigt, wie terminate-job verwendet wird.

AWS CLI

So beenden Sie einen Auftrag

In diesem Beispiel wird ein Auftrag mit der angegebenen Auftrags-ID beendet.

Befehl:

aws batch terminate-job --job-id 61e743ed-35e4-48da-b2de-5c8333821c84 --reason "Terminating job."
  • API-Details finden Sie unter TerminateJob in der AWS CLI-Befehlsreferenz.

Das folgende Codebeispiel zeigt, wie update-compute-environment verwendet wird.

AWS CLI

So aktualisieren Sie eine Datenverarbeitungsumgebung

In diesem Beispiel wird die P2OnDemand-Datenverarbeitungsumgebung deaktiviert, sodass sie gelöscht werden kann.

Befehl:

aws batch update-compute-environment --compute-environment P2OnDemand --state DISABLED

Ausgabe:

{ "computeEnvironmentName": "P2OnDemand", "computeEnvironmentArn": "arn:aws:batch:us-east-1:012345678910:compute-environment/P2OnDemand" }

Das folgende Codebeispiel zeigt, wie update-job-queue verwendet wird.

AWS CLI

So aktualisieren Sie eine Auftragswarteschlange

In diesem Beispiel wird eine Auftragswarteschlange deaktiviert, sodass sie gelöscht werden kann.

Befehl:

aws batch update-job-queue --job-queue GPGPU --state DISABLED

Ausgabe:

{ "jobQueueArn": "arn:aws:batch:us-east-1:012345678910:job-queue/GPGPU", "jobQueueName": "GPGPU" }
  • API-Details finden Sie unter UpdateJobQueue in der AWS CLI-Befehlsreferenz.