Esempi di AWS Batch con la AWS CLI - AWS Command Line Interface

Esempi di AWS Batch con la AWS CLI

Gli esempi di codice seguenti mostrano come eseguire azioni e implementare scenari comuni utilizzando la AWS Command Line Interface con AWS Batch.

Le operazioni sono estratti di codice da programmi più grandi e devono essere eseguite nel contesto. Sebbene le operazioni mostrino come richiamare le singole funzioni del servizio, è possibile visualizzarle contestualizzate negli scenari correlati.

Ogni esempio include un link al codice sorgente completo, dove è possibile trovare le istruzioni su come configurare ed eseguire il codice nel contesto.

Argomenti

Operazioni

L’esempio di codice seguente mostra come utilizzare cancel-job.

AWS CLI

Come annullare un processo

Questo esempio annulla un processo con l’ID del processo specificato.

Comando:

aws batch cancel-job --job-id bcf0b186-a532-4122-842e-2ccab8d54efb --reason "Cancelling job."
  • Per informazioni dettagliate sull’API, consulta CancelJob in AWS CLI Command Reference.

L’esempio di codice seguente mostra come utilizzare create-compute-environment.

AWS CLI

Come creare un ambiente di calcolo gestito con istanze on demand

Questo esempio crea un ambiente di calcolo gestito con istanze di tipo C4 specifiche che vengono avviate on demand. L’ambiente di calcolo è denominato C4OnDemand.

Comando:

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

Formato del file JSON:

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

Output:

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

Come creare un ambiente di calcolo gestito con istanze spot

Questo esempio crea un ambiente di calcolo gestito con l’istanza di tipo M4 che viene avviata quando il prezzo dell’offerta spot è pari o inferiore al 20% del prezzo on demand per il tipo di istanza. L’ambiente di calcolo è denominato M4Spot.

Comando:

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

Formato del file JSON:

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

Output:

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

L’esempio di codice seguente mostra come utilizzare create-job-queue.

AWS CLI

Come creare una coda di processi a bassa priorità con un unico ambiente di calcolo

Questo esempio crea una coda di processi denominata LowPriority che utilizza l’ambiente di calcolo M4Spot.

Comando:

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

Formato del file JSON:

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

Output:

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

Come creare una coda di processi ad alta priorità con due ambienti di calcolo

Questo esempio crea una coda di processi denominata HighPriority che utilizza l’ambiente di calcolo C4OnDemand con ordine pari a 1 e l’ambiente di calcolo M4Spot con ordine pari a 2. Il pianificatore tenterà innanzitutto di inserire i processi nell’ambiente di calcolo C4OnDemand.

Comando:

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

Formato del file JSON:

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

Output:

{ "jobQueueArn": "arn:aws:batch:us-east-1:012345678910:job-queue/HighPriority", "jobQueueName": "HighPriority" }
  • Per informazioni dettagliate sull’API, consulta CreateJobQueue in AWS CLI Command Reference.

L’esempio di codice seguente mostra come utilizzare delete-compute-environment.

AWS CLI

Come eliminare un ambiente di calcolo.

Questo esempio elimina l’ambiente di calcolo P2OnDemand.

Comando:

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

L’esempio di codice seguente mostra come utilizzare delete-job-queue.

AWS CLI

Come eliminare una coda di processi

Questo esempio elimina la coda dei processi GPGPU.

Comando:

aws batch delete-job-queue --job-queue GPGPU
  • Per informazioni dettagliate sull’API, consulta DeleteJobQueue in AWS CLI Command Reference.

L’esempio di codice seguente mostra come utilizzare deregister-job-definition.

AWS CLI

Come annullare la registrazione di una definizione di processo

Questo esempio annulla la registrazione di una definizione di processo denominata sleep10.

Comando:

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

L’esempio di codice seguente mostra come utilizzare describe-compute-environments.

AWS CLI

Come descrivere un ambiente di calcolo

Questo esempio descrive l’ambiente di calcolo P2OnDemand.

Comando:

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

Output:

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

L’esempio di codice seguente mostra come utilizzare describe-job-definitions.

AWS CLI

Come descrivere le definizioni dei processi attivi

In questo esempio vengono descritte le definizioni di tutti i processi attivi.

Comando:

aws batch describe-job-definitions --status ACTIVE

Output:

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

L’esempio di codice seguente mostra come utilizzare describe-job-queues.

AWS CLI

Come descrivere una coda di processi

Questo esempio descrive la coda dei processi HighPriority.

Comando:

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

Output:

{ "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" } ] }
  • Per informazioni dettagliate sull’API, consulta DescribeJobQueues in AWS CLI Command Reference.

L’esempio di codice seguente mostra come utilizzare describe-jobs.

AWS CLI

Come descrivere un processo

Nell’esempio seguente describe-jobs descrive un processo con l’ID processo specificato.

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

Output:

{ "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 } ] }
  • Per informazioni dettagliate sull’API, consulta DescribeJobs in AWS CLI Command Reference.

L’esempio di codice seguente mostra come utilizzare list-jobs.

AWS CLI

Come elencare i processi in esecuzione

Questo esempio elenca i processi in esecuzione nella coda dei processi HighPriority.

Comando:

aws batch list-jobs --job-queue HighPriority

Output:

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

Come elencare i processi inviati

Questo esempio elenca i processi in coda dei processi HighPriority con lo stato di processo INVIATO.

Comando:

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

Output:

{ "jobSummaryList": [ { "jobName": "example", "jobId": "68f0c163-fbd4-44e6-9fd1-25b14a434786" } ] }
  • Per informazioni dettagliate sull’API, consulta ListJobs in AWS CLI Command Reference.

L’esempio di codice seguente mostra come utilizzare register-job-definition.

AWS CLI

Come registrare una definizione di processo

Questo esempio registra una definizione di processo per un processo container semplice.

Comando:

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

Output:

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

L’esempio di codice seguente mostra come utilizzare submit-job.

AWS CLI

Per inviare un processo

Questo esempio invia un processo container semplice denominato example alla coda di processi HighPriority.

Comando:

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

Output:

{ "jobName": "example", "jobId": "876da822-4198-45f2-a252-6cea32512ea8" }
  • Per informazioni dettagliate sull’API, consulta SubmitJob in AWS CLI Command Reference.

L’esempio di codice seguente mostra come utilizzare terminate-job.

AWS CLI

Come terminare un processo

Questo esempio termina un processo con l’ID del processo specificato.

Comando:

aws batch terminate-job --job-id 61e743ed-35e4-48da-b2de-5c8333821c84 --reason "Terminating job."
  • Per informazioni dettagliate sull’API, consulta TerminateJob in AWS CLI Command Reference.

L’esempio di codice seguente mostra come utilizzare update-compute-environment.

AWS CLI

Come aggiornare un ambiente di calcolo.

Questo esempio disabilita l’ambiente di calcolo P2OnDemand in modo che possa essere eliminato.

Comando:

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

Output:

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

L’esempio di codice seguente mostra come utilizzare update-job-queue.

AWS CLI

Come aggiornare una coda di processi

Questo esempio disabilita una coda di processi in modo che possa essere eliminata.

Comando:

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

Output:

{ "jobQueueArn": "arn:aws:batch:us-east-1:012345678910:job-queue/GPGPU", "jobQueueName": "GPGPU" }
  • Per informazioni dettagliate sull’API, consulta UpdateJobQueue in AWS CLI Command Reference.