Exemplos do AWS Batch usando oAWS CLI - AWS Command Line Interface

Esta documentação é somente para a versão 1 da AWS CLI. Para obter a documentação relacionada à AWS CLI versão 2, consulte o Guia do usuário da versão 2.

Exemplos do AWS Batch usando oAWS CLI

Os exemplos de código a seguir mostram como realizar ações e implementar cenários comuns usando o AWS Command Line Interface com o AWS Batch.

Ações são trechos de código de programas maiores e devem ser executadas em contexto. Embora as ações mostrem como chamar perfis de serviço individuais, você pode ver as ações no contexto em seus cenários relacionados.

Cada exemplo inclui um link para o código-fonte completo, em que você pode encontrar instruções sobre como configurar e executar o código.

Tópicos

Ações

O código de exemplo a seguir mostra como usar cancel-job.

AWS CLI

Para cancelar um trabalho

Este exemplo cancela um trabalho com o ID de trabalho especificado.

Comando:

aws batch cancel-job --job-id bcf0b186-a532-4122-842e-2ccab8d54efb --reason "Cancelling job."
  • Para ver detalhes da API, consulte CancelJob na Referência de comandos da AWS CLI.

O código de exemplo a seguir mostra como usar create-compute-environment.

AWS CLI

Para criar um ambiente computacional gerenciado com instâncias sob demanda

Este exemplo cria um ambiente computacional gerenciado com tipos específicos de instância C4 que são executados sob demanda. O ambiente computacional é chamado de C4OnDemand.

Comando:

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

Formato de arquivo 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" }

Saída:

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

Para criar um ambiente de computação gerenciado com instâncias spot

Este exemplo cria um ambiente de computação gerenciado com o tipo de instância M4 que é executado quando a sugestão de preço do Spot é igual ou inferior a 20% do preço sob demanda do tipo de instância. O ambiente computacional é chamado de M4Spot.

Comando:

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

Formato de arquivo 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" }

Saída:

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

O código de exemplo a seguir mostra como usar create-job-queue.

AWS CLI

Para criar uma fila de trabalhos de baixa prioridade com um único ambiente computacional

Este exemplo cria uma fila de trabalhos chamada LowPriority que usa o ambiente de computação M4Spot.

Comando:

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

Formato de arquivo JSON:

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

Saída:

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

Para criar uma fila de trabalhos de alta prioridade com dois ambientes computacionais

Este exemplo cria uma fila de trabalhos chamada HighPriority que usa o ambiente de computação C4OnDemand com uma ordem de 1 e o ambiente de computação M4Spot com uma ordem de 2. O programador tentará primeiro colocar trabalhos no ambiente computacional C4OnDemand.

Comando:

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

Formato de arquivo JSON:

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

Saída:

{ "jobQueueArn": "arn:aws:batch:us-east-1:012345678910:job-queue/HighPriority", "jobQueueName": "HighPriority" }
  • Para ver detalhes da API, consulte CreateJobQueue na Referência de comandos da AWS CLI.

O código de exemplo a seguir mostra como usar delete-compute-environment.

AWS CLI

Para excluir um ambiente de computação

Este exemplo exclui o ambiente de computação P2OnDemand.

Comando:

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

O código de exemplo a seguir mostra como usar delete-job-queue.

AWS CLI

Para excluir uma fila de trabalhos

Este exemplo exclui a fila de trabalho GPGPU.

Comando:

aws batch delete-job-queue --job-queue GPGPU
  • Para ver detalhes da API, consulte DeleteJobQueue na Referência de comandos da AWS CLI.

O código de exemplo a seguir mostra como usar deregister-job-definition.

AWS CLI

Como cancelar o registro de uma definição de trabalho

Este exemplo cancela o registro de uma definição de trabalho chamada sleep10.

Comando:

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

O código de exemplo a seguir mostra como usar describe-compute-environments.

AWS CLI

Como descrever um ambiente de computação

Este exemplo descreve o ambiente de computação P2OnDemand.

Comando:

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

Saída:

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

O código de exemplo a seguir mostra como usar describe-job-definitions.

AWS CLI

Para descrever as definições de trabalhos ativos

Este exemplo descreve todas as suas definições de trabalho ativas.

Comando:

aws batch describe-job-definitions --status ACTIVE

Saída:

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

O código de exemplo a seguir mostra como usar describe-job-queues.

AWS CLI

Para descrever uma fila de trabalhos

Este exemplo descreve a fila de trabalhos HighPriority.

Comando:

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

Saída:

{ "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" } ] }
  • Para ver detalhes da API, consulte DescribeJobQueues na Referência de comandos da AWS CLI.

O código de exemplo a seguir mostra como usar describe-jobs.

AWS CLI

Para descrever um trabalho

O exemplo describe-jobs a seguir descreve um trabalho com o ID de trabalho especificado.

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

Saída:

{ "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 } ] }
  • Para ver detalhes da API, consulte DescribeJobs na Referência de comandos da AWS CLI.

O código de exemplo a seguir mostra como usar list-jobs.

AWS CLI

Para listar trabalhos em execução

Este exemplo lista os trabalhos em execução na fila de trabalhos HighPriority.

Comando:

aws batch list-jobs --job-queue HighPriority

Saída:

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

Para listar trabalhos enviados

Este exemplo lista trabalhos na fila de trabalhos HighPriority que estão no status de trabalho ENVIADO.

Comando:

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

Saída:

{ "jobSummaryList": [ { "jobName": "example", "jobId": "68f0c163-fbd4-44e6-9fd1-25b14a434786" } ] }
  • Para obter detalhes da API, consulte ListJobs na Referência de comandos da AWS CLI.

O código de exemplo a seguir mostra como usar register-job-definition.

AWS CLI

Para registrar uma definição de trabalho

Este exemplo registra uma definição de trabalho para um trabalho de contêiner simples.

Comando:

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

Saída:

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

O código de exemplo a seguir mostra como usar submit-job.

AWS CLI

Como enviar um trabalho

Este exemplo envia um trabalho de contêiner simples chamado example para a fila de trabalhos HighPriority.

Comando:

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

Saída:

{ "jobName": "example", "jobId": "876da822-4198-45f2-a252-6cea32512ea8" }
  • Para ver detalhes da API, consulte SubmitJob na Referência de comandos da AWS CLI.

O código de exemplo a seguir mostra como usar terminate-job.

AWS CLI

Como encerrar um trabalho

Este exemplo encerra um trabalho com o ID de trabalho especificado.

Comando:

aws batch terminate-job --job-id 61e743ed-35e4-48da-b2de-5c8333821c84 --reason "Terminating job."
  • Para ver detalhes da API, consulte TerminateJob na Referência de comandos da AWS CLI.

O código de exemplo a seguir mostra como usar update-compute-environment.

AWS CLI

Para atualizar um ambiente de computação

Este exemplo desabilita o ambiente de computação P2OnDemand para que ele possa ser excluído.

Comando:

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

Saída:

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

O código de exemplo a seguir mostra como usar update-job-queue.

AWS CLI

Para atualizar uma fila de trabalhos

Este exemplo desabilita uma fila de trabalhos para que ela possa ser excluída.

Comando:

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

Saída:

{ "jobQueueArn": "arn:aws:batch:us-east-1:012345678910:job-queue/GPGPU", "jobQueueName": "GPGPU" }
  • Para ver detalhes da API, consulte UpdateJobQueue na Referência de comandos da AWS CLI.