Parâmetros de definição de trabalho para ContainerProperties - AWS Batch

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Parâmetros de definição de trabalho para ContainerProperties

As definições de trabalho que eu uso ContainerPropertiessão divididas em várias partes:

  • o nome da definição do trabalho

  • o tipo de definição do trabalho

  • os padrões do espaço reservado para substituição de parâmetros

  • o contêiner para as propriedades do trabalho

  • as propriedades do Amazon EKS para a definição do trabalho que são necessárias para trabalhos executados em recursos do Amazon EKS

  • as propriedades do nó que são necessárias para um trabalho paralelo de vários nós

  • as funcionalidades da plataforma necessárias para trabalhos executados em recursos do Fargate

  • os detalhes padrão de propagação de tag da definição do trabalho

  • a estratégia de repetição padrão para a definição do trabalho

  • a prioridade de agendamento padrão para a definição do trabalho

  • as tags padrão para a definição do trabalho

  • o tempo limite padrão para a definição do trabalho

Nome da definição do trabalho

jobDefinitionName

Ao registrar uma definição de trabalho, você especifica um nome. Os nomes podem ter até 128 caracteres. Pode conter letras minúsculas, maiúsculas, números, hifens e (-) e sublinhados (_). A primeira definição de trabalho que está registrada com esse nome recebe uma revisão de 1. Todas as definições de trabalho subsequentes registrados com esse nome recebem um número de revisão incremental.

Tipo: Sequência

Obrigatório: Sim

Tipo

type

Ao registrar uma definição de trabalho, você especifica o tipo de trabalho. Se o trabalho for executado em recursos do Fargate, então multinode não será compatível. Para obter mais informações sobre trabalho em paralelo com vários nós, consulte Criar uma definição de tarefa em paralelo de vários nós.

Tipo: Sequência

Valores válidos: container | multinode

Obrigatório: Sim

Parâmetros

parameters

Quando você envia um trabalho, pode especificar os parâmetros que devem substituir os marcadores ou os parâmetros de definição de trabalho padrão. Os parâmetros nas solicitações de envio de trabalho têm precedência sobre os padrões em uma definição de trabalho. Isso significa que você pode usar a mesma definição de trabalho para vários outros que usam o mesmo formato. Você também pode alterar programaticamente os valores no comando no momento do envio.

Tipo: Mapa de string para string

Obrigatório: Não

Ao registrar uma definição de trabaho, você pode usar espaços reservados para substituição de parâmetros no campo command de propriedades de contêiner de um trabalho. A sintaxe é a seguinte.

"command": [ "ffmpeg", "-i", "Ref::inputfile", "-c", "Ref::codec", "-o", "Ref::outputfile" ]

No exemplo acima, há os espaços reservados de substituição de parâmetro Ref::inputfile, Ref::codec e Ref::outputfile no comando. Você pode usar o objeto parameters na definição do trabalho para configurar valores padrão para esses espaços reservados. Por exemplo, para definir um padrão para o espaço reservado Ref::codec, você especificará o seguinte na definição do trabalho:

"parameters" : {"codec" : "mp4"}

Quando essa definição de trabalho for enviada para execução, o argumento Ref::codec no comando para o contêiner será substituído pelo valor padrão, mp4.

Propriedades do contêiner

Ao registrar uma definição de trabalho você deve especificar uma lista de propriedades de contêiner que são passadas para o daemon do Docker em uma instância de contêiner quando o trabalho é feito. As seguintes propriedades de contêiner são permitidas em uma definição de trabalho. Para trabalhos de nó único, essas propriedades de contêiner são configuradas no nível de definição do trabalho. Para trabalhos em paralelo de vários nós, as propriedades de contêiner são definidas no nível de Propriedades de nó para cada grupo de nós.

command

O comando que é passado para o contêiner. Esse parâmetro é mapeado para Cmd na seção Criar um contêiner da Docker Remote API e o parâmetro COMMAND de docker run. Para obter mais informações sobre o parâmetro CMD da Docker, consulte https://docs.docker.com/engine/reference/builder/#cmd.

"command": ["string", ...]

Tipo: Matriz de strings

Obrigatório: Não

environment

As variáveis de ambiente a serem passadas para um contêiner. Esse parâmetro é mapeado para Env na seção Criar um contêiner da Docker Remote API e a opção --env para docker run.

Importante

Não recomendamos que você use variáveis de ambiente de texto simples para informações confidenciais, como dados de credenciais.

nota

Variáveis de ambiente não podem começar com AWS_BATCH. Essa convenção de nomenclatura é reservada para variáveis definidas pelo AWS Batch serviço.

Tipo: Matriz de pares de valores-chave

Obrigatório: Não

name

O nome da variável de ambiente.

Tipo: Sequência

Obrigatório: Sim, quando environment for usado.

value

O valor da variável de ambiente.

Tipo: Sequência

Obrigatório: Sim, quando environment for usado.

"environment" : [ { "name" : "envName1", "value" : "envValue1" }, { "name" : "envName2", "value" : "envValue2" } ]
executionRoleArn

Ao registrar uma definição de trabalho, você pode especificar um perfil do IAM. O perfil fornece ao agente de contêiner do Amazon ECS permissões para chamar as ações da API especificadas nas políticas colaboradoras em seu nome. Para trabalhos executados em recursos do Fargate, você deve fornecer um perfil de execução. Para ter mais informações, consulte AWS Batch função de execução do IAM.

Tipo: Sequência

Obrigatório: Não

fargatePlatformConfiguration

A configuração da plataforma para trabalhos que são executados nos recursos do Fargate. Os trabalhos que são executados nos recursos do EC2 não devem especificar esse parâmetro.

Tipo: Objeto FargatePlatformde configuração

Obrigatório: não

platformVersion

Use a versão da plataforma AWS Fargate para os trabalhos ou LATEST para usar uma versão recente e aprovada da plataforma Fargate AWS .

Tipo: sequência

Padrão: LATEST

Obrigatório: Não

image

A imagem usada para iniciar um trabalho. Esta string é passada diretamente para o daemon do Docker. As imagens no registro do Docker Hub estão disponíveis por padrão. Você também pode especificar outros repositórios com repository-url/image:tag. São permitidos até 255 letras (caixa alta e baixa), números, hifens, sublinhados, dois pontos, ponto, barras e sinais numéricos. Esse parâmetro é mapeado para Image na seção Criar um contêiner da Docker Remote API e o parâmetro IMAGE de docker run.

nota

A arquitetura da imagem do Docker deve corresponder à arquitetura do processador dos recursos de computação nos quais eles foram programados. Por exemplo, imagens Arm baseadas em Docker só podem ser executadas em recursos de computação baseados em Arm.

  • As imagens em repositórios públicos do Amazon ECR usam as convenções de nomenclatura completaregistry/repository[:tag] ou registry/repository[@digest] (por exemplo, public.ecr.aws/registry_alias/my-web-app:latest).

  • As imagens nos repositórios do Amazon ECR usam a convenção de registry/repository:[tag] nomenclatura completa. Por exemplo, aws_account_id.dkr.ecr.region.amazonaws.com/my-web-app:latest.

  • As imagens em repositórios oficiais no Docker Hub usam um único nome (por exemplo, ubuntu ou mongo).

  • As imagens em outros repositórios no Docker Hub são qualificadas com um nome de organização (por exemplo, amazon/amazon-ecs-agent).

  • Imagens em outros repositórios online também são qualificadas por um nome de domínio (por exemplo, quay.io/assemblyline/ubuntu).

Tipo: Sequência

Obrigatório: Sim

instanceType

O tipo de instância a ser usado para trabalhos paralelos de vários nós. Atualmente, todos os grupos de nós em um trabalho em paralelo de vários nós devem usar o mesmo tipo de instância. Esse parâmetro não é válido para trabalhos de contêiner de nó único ou para trabalhos que são executados em recursos Fargate.

Tipo: Sequência

Obrigatório: Não

jobRoleArn

Ao registrar uma definição de trabalho, você pode especificar um perfil do IAM. A função fornece ao contêiner de trabalho permissões para chamar as ações da API especificadas em suas políticas colaboradoras em seu nome. Para obter mais informações, consulte Perfis do IAM para tarefas no Guia do desenvolvedor do Amazon Elastic Container Service.

Tipo: Sequência

Obrigatório: Não

linuxParameters

Modificações específicas do Linux que são aplicadas ao contêiner, como detalhes para mapeamentos do dispositivo.

"linuxParameters": { "devices": [ { "hostPath": "string", "containerPath": "string", "permissions": [ "READ", "WRITE", "MKNOD" ] } ], "initProcessEnabled": true|false, "sharedMemorySize": 0, "tmpfs": [ { "containerPath": "string", "size": integer, "mountOptions": [ "string" ] } ], "maxSwap": integer, "swappiness": integer }

Tipo: objeto LinuxParameters

Obrigatório: não

devices

Lista de dispositivos mapeados para o contêiner. Esse parâmetro é mapeado para Devices na seção Criar um contêiner da Docker Remote API e na opção --device de execução do docker.

nota

Este parâmetro não é aplicável a trabalhos executados em recursos do Fargate.

Tipo: Matriz de objetos Device

Obrigatório: Não

hostPath

Caminho onde está o dispositivo disponível na instância de contêiner host.

Tipo: Sequência

Obrigatório: Sim

containerPath

Caminho em que o dispositivo é exposto no contêiner. Se isso não for especificado, o dispositivo será exposto ao mesmo caminho do host.

Tipo: Sequência

Obrigatório: Não

permissions

Permissões para o dispositivo no contêiner. Se não for especificado, as permissões serão definidas como READ, WRITE e MKNOD.

Tipo: Matriz de strings

Obrigatório: Não

Valores válidos: READ | WRITE | MKNOD

initProcessEnabled

Se verdadeiro, execute um processo init dentro do contêiner que encaminha sinais e colhe processos. Esse parâmetro mapeia para a opção --init para execução do docker. Este parâmetro requer a versão 1.25 ou posterior da Docker Remote API ou posterior em sua instância de contêiner. Para verificar a versão da Docker Remote API na instância de contêiner, faça login na instância de contêiner e execute o seguinte comando: sudo docker version | grep "Server API version"

Tipo: Booliano

Obrigatório: Não

maxSwap

Especifica a quantidade total de memória de troca (em MiB) que um trabalho pode usar. Esse parâmetro será convertido na opção --memory-swap para execução do docker em que o valor é a soma da memória do contêiner mais o valor de maxSwap. Para obter mais informações, consulte Detalhes do --memory-swap na documentação do Docker.

Se um valor maxSwap de 0 for especificado, o contêiner não usará a troca. Os valores aceitos são 0 ou qualquer número inteiro positivo. Se o parâmetro maxSwap for omitido, o contêiner usará a configuração de troca para a instância de contêiner na qual ele está sendo executado. Um valor maxSwap deve ser definido para que o parâmetro swappiness seja usado.

nota

Este parâmetro não é aplicável a trabalhos executados em recursos do Fargate.

Tipo: Inteiro

Obrigatório: Não

sharedMemorySize

O valor do tamanho (em MiB) do volume /dev/shm. Esse parâmetro mapeia para a opção --shm-size para execução do docker.

nota

Este parâmetro não é aplicável a trabalhos executados em recursos do Fargate.

Tipo: Inteiro

Obrigatório: Não

swappiness

É possível usar isso para ajustar o comportamento de troca de memória de um contêiner. Um valor swappiness de 0 fará com que a troca não ocorra, a menos que seja absolutamente necessário. Um valor swappiness de 100 fará com que as páginas sejam trocadas de forma agressiva. Os valores aceitos são números inteiros entre 0 e 100. Se o parâmetro swappiness não for especificado, será usado um valor padrão de 60. Se nenhum valor for especificado para maxSwap, esse parâmetro será ignorado. Se maxSwap estiver definido como 0, o contêiner não usará troca. Esse parâmetro mapeia para a opção --memory-swappiness para execução do docker.

Considere o seguinte ao usar uma configuração de troca de contêiner.

  • O espaço de troca deve ser habilitado e alocado na instância de contêiner para os contêineres usarem.

    nota

    As AMIs otimizadas do Amazon ECS não têm a troca habilitada por padrão. É necessário habilitar a troca na instância para usar esse recurso. Para obter mais informações, consulte Volumes de troca de armazenamento de instâncias no Guia do usuário do Amazon EC2 ou Como faço para alocar memória para funcionar como espaço de troca em uma instância do Amazon EC2 usando um arquivo de troca? .

  • Os parâmetros de espaço de troca só são suportados para definições de trabalho usando recursos do EC2.

  • Se os parâmetros maxSwap e swappiness forem omitidos de uma definição de trabalho, cada contêiner terá um valor de swappiness padrão de 60. Além disso, o uso total de troca tem um limite de duas vezes a reserva de memória do contêiner.

nota

Este parâmetro não é aplicável a trabalhos executados em recursos do Fargate.

Tipo: Inteiro

Obrigatório: Não

tmpfs

O caminho do contêiner, as opções de montagem e o tamanho da montagem do tmpfs.

Tipo: Matriz de objetos Tmpfs

nota

Este parâmetro não é aplicável a trabalhos executados em recursos do Fargate.

Obrigatório: Não

containerPath

O caminho absoluto do arquivo no contêiner onde o volume tmpfs é montado.

Tipo: Sequência

Obrigatório: Sim

mountOptions

A lista de opções de montagem do volume tmpfs.

Valores válidos: "defaults" | "ro" | "rw" | "suid" | "nosuid" | "dev" | "nodev" | "exec" | "noexec" | "sync" | "async" | "dirsync" | "remount" | "mand" | "nomand" | "atime" | "noatime" | "diratime" | "nodiratime" | "bind" | "rbind" | "unbindable" | "runbindable" | "private" | "rprivate" | "shared" | "rshared" | "slave" | "rslave" | "relatime" | "norelatime" | "strictatime" | "nostrictatime" | "mode" | "uid" | "gid" | "nr_inodes" | "nr_blocks" | "mpol"

Tipo: Matriz de strings

Obrigatório: Não

size

O tamanho (em MiB) do volume tmpfs.

Tipo: Inteiro

Obrigatório: Sim

logConfiguration

A especificação de configuração do log para o contêiner.

Esse parâmetro é mapeado LogConfig na seção Criar um contêiner da Docker Remote API e na opção --log-driver de execução do docker. Por padrão, os contêineres usam o mesmo driver de registro que o daemon do Docker usa. No entanto, o contêiner pode usar um driver de registro diferente do daemon do Docker especificando um driver de log com esse parâmetro na definição de contêiner. Para usar um driver de registro diferente para um contêiner, o sistema de registro deve ser configurado na instância de contêiner ou em outro servidor de registro para fornecer opções de registro remoto. Para obter mais informações sobre as opções para drivers de log compatíveis diferentes, consulte Configure logging drivers na documentação do Docker.

nota

AWS Batch atualmente oferece suporte a um subconjunto dos drivers de registro disponíveis para o daemon do Docker (mostrado no tipo de dados). LogConfiguration

Este parâmetro requer a versão 1.18 da Docker Remote API ou posterior em sua instância de contêiner. Para verificar a versão da Docker Remote API na instância de contêiner, faça login na instância de contêiner e execute o seguinte comando: sudo docker version | grep "Server API version"

"logConfiguration": { "devices": [ { "logDriver": "string", "options": { "optionName1" : "optionValue1", "optionName2" : "optionValue2" } "secretOptions": [ { "name" : "secretOptionName1", "valueFrom" : "secretOptionArn1" }, { "name" : "secretOptionName2", "valueFrom" : "secretOptionArn2" } ] } ] }

Tipo: objeto LogConfiguration

Obrigatório: não

logDriver

O driver de log a ser usado para o contêiner. Por padrão, AWS Batch ativa o driver de awslogs log. Os valores válidos listados para esse parâmetro são drivers de log com os quais o agente de contêiner do Amazon ECS pode se comunicar por padrão.

Esse parâmetro é mapeado LogConfig na seção Criar um contêiner da Docker Remote API e na opção --log-driver de execução do docker. Por padrão, os trabalhos usam o mesmo driver de registro que o daemon do Docker usa. No entanto, o trabalho pode usar um driver de registro diferente do daemon do Docker especificando um driver de log com esse parâmetro na definição do trabalho. Se você quiser especificar outro driver de registro em log para um trabalho, o sistema de log deve ser configurado na instância de contêiner no ambiente de computação. Ou, como alternativa, configure-o em outro servidor de log para fornecer opções de registro remoto. Para obter mais informações sobre as opções para drivers de log compatíveis diferentes, consulte Configure logging drivers na documentação do Docker.

nota

AWS Batch atualmente oferece suporte a um subconjunto dos drivers de registro que estão disponíveis para o daemon do Docker. Os drivers de log adicionais podem estar disponíveis em versões futuras do agente de contêiner do Amazon ECS.

Os drivers de log compatíveis são awslogs, fluentd, gelf, json-file, journald, logentries, syslog e splunk.

nota

Os trabalhos em execução nos recursos do Fargate são restritos aos drivers de log awslogs e splunk.

Este parâmetro requer a versão 1.18 da Docker Remote API ou posterior em sua instância de contêiner. Para verificar a versão da Docker Remote API na instância de contêiner, faça login na instância de contêiner e execute o seguinte comando: sudo docker version | grep "Server API version"

nota

O agente de contêiner do Amazon ECS que é executado em uma instância de contêiner deve registrar os drivers de registro que estão disponíveis nessa instância com o variável de ambiente ECS_AVAILABLE_LOGGING_DRIVERS. Caso contrário, os contêineres colocados nessa instância não poderão usar essas opções de configuração de log. Para obter mais informações, consulte Configuração do Agente de Contêineres do Amazon ECS no Guia do desenvolvedor do Amazon Elastic Container Service.

awslogs

Especifica o driver de registro do Amazon CloudWatch Logs. Para obter mais informações, consulte Usar o driver de log awslogs o driver de registro do Amazon CloudWatch Logs na documentação do Docker.

fluentd

Especifica o driver de registro do Fluentd. Para obter mais informações, incluindo uso e opções, consulte Driver de registro Fluentd na documentação do Docker.

gelf

Especifica o driver de registro Graylog Extended Format (GELF). Para obter mais informações, incluindo uso e opções, consulte Driver de registro Graylog Extended Format na documentação do Docker.

journald

Especifica o driver de registro journald. Para obter mais informações, incluindo uso e opções, consulte Driver de registro Journald na documentação do Docker.

json-file

Especifica o driver de registro de arquivos JSON. Para obter mais informações, incluindo uso e opções, consulte driver de registro de arquivo JSON na documentação do Docker.

splunk

Especifica o driver de registro do Splunk. Para obter mais informações, incluindo uso e opções, consulte driver de registro do Splunk na documentação do Docker.

syslog

Especifica o driver de registro em log do syslog. Para obter mais informações, incluindo uso e opções, consulte driver de registro de log do Syslog na documentação do Docker.

Tipo: Sequência

Obrigatório: Sim

Valores válidos: awslogs | fluentd | gelf | journald | json-file | splunk | syslog

nota

Se você tem um driver personalizado que não está listado anteriormente e gostaria de trabalhar com o agente de contêiner do Amazon ECS, você pode bifurcar o projeto do agente de contêiner do Amazon ECS que está disponível GitHub e personalizá-lo para funcionar com esse driver. Incentivamos você a enviar solicitações pull para alterações que você gostaria de ter incluído. No entanto, o Amazon Web Services atualmente não oferece suporte para solicitações a execução de cópias modificadas desse software.

options

Opções de configuração de log para enviar para um driver de log personalizado para o contêiner.

Este parâmetro requer a versão 1.19 da Docker Remote API ou posterior em sua instância de contêiner.

Tipo: Mapa de string para string

Obrigatório: Não

secretOptions

Um objeto que representa o segredo a ser passado para a configuração de log. Para ter mais informações, consulte Especificando dados sigilosos.

Tipo: Matriz de objeto

Obrigatório: Não

name

O nome da opção do driver de log a ser definida no trabalho.

Tipo: Sequência

Obrigatório: Sim

valueFrom

O nome do recurso da Amazon (ARN) do segredo a ser exposto à configuração de log do contêiner. Os valores compatíveis são o ARN completo do segredo do Secrets Manager ou o ARN completo do parâmetro na SSM Parameter Store.

nota

Se o parâmetro SSM Parameter Store existir na Região da AWS mesma tarefa que você está iniciando, você poderá usar o ARN completo ou o nome do parâmetro. Se o parâmetro existir em uma Região diferente, o ARN completo deverá ser especificado.

Tipo: Sequência

Obrigatório: Sim

memory

Este parâmetro está obsoleto, use resourceRequirements alternativamente.

O número de MiB de memória a ser reservado para o contêiner.

Como exemplo de como usar resourceRequirements, se sua definição de trabalho contiver uma sintaxe semelhante à seguinte.

"containerProperties": { "memory": 512 }

A sintaxe equivalente usando resourceRequirements é a seguinte.

"containerProperties": { "resourceRequirements": [ { "type": "MEMORY", "value": "512" } ] }

Tipo: Inteiro

Obrigatório: Sim

mountPoints

Os pontos de montagem para volumes de dados no contêiner. Esse parâmetro é mapeado para Volumes na seção Criar um contêiner da Docker Remote API e a opção --volume para docker run.

"mountPoints": [ { "sourceVolume": "string", "containerPath": "string", "readOnly": true|false } ]

Tipo: Matriz de objeto

Obrigatório: Não

sourceVolume

O nome do volume a ser montado.

Tipo: Sequência

Obrigatório: Sim, quando mountPoints for usado.

containerPath

O caminho no contêiner no qual montar o volume de host.

Tipo: Sequência

Obrigatório: Sim, quando mountPoints for usado.

readOnly

Caso o valor seja true, o contêiner tem acesso somente leitura ao volume. Caso esse valor seja false, o contêiner pode gravar no volume.

Tipo: Booliano

Obrigatório: não

Padrão: Falso

networkConfiguration

A configuração de rede para trabalhos que estão em execução nos recursos do Fargate. Os trabalhos que são executados nos recursos do EC2 não devem especificar esse parâmetro.

"networkConfiguration": { "assignPublicIp": "string" }

Tipo: Matriz de objeto

Obrigatório: Não

assignPublicIp

Indica se o trabalho tem um endereço IP público. Isso é necessário se o trabalho precisar de acesso externo à rede.

Tipo: Sequência

Valores válidos: ENABLED | DISABLED

Obrigatório: não

Padrão: DISABLED

privileged

Quando esse parâmetro é verdadeiro, o contêiner recebe permissões elevadas na instância de contêiner host (semelhante ao usuário root). Esse parâmetro é mapeado para Privileged na seção Criar um contêiner da Docker Remote API e a opção --privileged para docker run. Este parâmetro não é aplicável a trabalhos executados em recursos do Fargate. Não o forneça nem o especifique como falso.

"privileged": true|false

Tipo: Booliano

Obrigatório: Não

readonlyRootFilesystem

Quando esse parâmetro é verdadeiro, o contêiner recebe acesso somente leitura ao sistema de arquivos raiz. Esse parâmetro é mapeado para ReadonlyRootfs na seção Criar um contêiner da Docker Remote API e a opção --read-only para docker run.

"readonlyRootFilesystem": true|false

Tipo: Booliano

Obrigatório: Não

resourceRequirements

O tipo e a quantidade de um recurso a serem atribuídos a um contêiner. Os recursos suportados incluem GPU, MEMORY e VCPU.

"resourceRequirements" : [ { "type": "GPU", "value": "number" } ]

Tipo: Matriz de objeto

Obrigatório: Não

type

O tipo de recurso a ser atribuído a um contêiner. Os recursos suportados incluem GPU, MEMORY e VCPU.

Tipo: Sequência

Obrigatório: Sim, quando resourceRequirements for usado.

value

A quantidade do recurso especificado a ser reservado para o contêiner. Os valores variam de acordo com o type especificado.

Tipo=“GPU”

O número de GPUs físicas a serem reservadas para o contêiner. O número de GPUs reservadas para todos os contêineres em um trabalho não deve exceder o número de GPUs disponíveis no recurso de computação no qual o trabalho é executado.

Tipo=“MEMORY”

O limite rígido (em MiB) de memória a ser apresentado ao contêiner. Caso tente exceder a memória especificada aqui, o contêiner será excluído. Esse parâmetro é mapeado Memory na seção Criar um contêiner da Docker Remote API e na opção --memory de execução do docker. Você deve especificar pelo menos 4 MiB de memória para uma tarefa. Isso é necessário, mas pode ser especificado em vários lugares para trabalhos paralelos de vários nós (MNP). Ele deve ser especificado para cada nó pelo menos uma vez. Esse parâmetro é mapeado Memory na seção Criar um contêiner da Docker Remote API e na opção --memory de execução do docker.

nota

Se você deseja maximizar a utilização de recursos fornecendo aos trabalhos o máximo de memória possível para um determinado tipo de instância, consulte Recurso de Computação Gerenciamento de Memória.

Para trabalhos executados em recursos do Fargate, value deve corresponder a um dos valores compatíveis. Além disso, os valores VCPU devem ser um dos valores compatíveis com esse valor de memória.

VCPU MEMORY

0.25 vCPU

512, 1024 e 2048 MiB

0.5 vCPU

1024-4096 MiB em incrementos de 1024 MiB

1 vCPU

2048-8192 MiB em incrementos de 1024 MiB

2 vCPU

4096-16384 MiB em incrementos de 1024 MiB

4 vCPU

8192-30720 MiB em incrementos de 1024 MiB

8 vCPU

16384-61440 MiB em incrementos de 4096 MiB

16 vCPU

32768-122880 MiB em incrementos de 8192 MiB

type=“VCPU”

O número de vCPUs reservado para o trabalho. Esse parâmetro é mapeado para CpuShares na seção Criar um contêiner da Docker Remote API e a opção --cpu-shares para execução do docker. Cada vCPU equivale a 1.024 compartilhamentos de CPU. Para recursos do EC2, você deve especificar pelo menos uma vCPU. Isso é necessário, mas pode ser especificado em vários lugares. Ele deve ser especificado para cada nó pelo menos uma vez.

Para trabalhos que são executados em recursos do Fargate, value deve corresponder a um dos valores compatíveis, e os valores MEMORY devem ser um dos valores compatíveis para esse valor de VCPU. Os valores compatíveis são 0,25, 0,5, 1, 2, 4, 8 e 16.

O padrão para a cota de contagem de recursos de vCPU sob demanda do Fargate é 6 vCPUs. Para obter mais informações sobre cotas de serviço, consulte AWS quotas na Referência geral da Amazon Web Services.

Tipo: Sequência

Obrigatório: Sim, quando resourceRequirements for usado.

secrets

Os segredos do trabalho que são expostos como variáveis de ambiente. Para ter mais informações, consulte Especificando dados sigilosos.

"secrets": [ { "name": "secretName1", "valueFrom": "secretArn1" }, { "name": "secretName2", "valueFrom": "secretArn2" } ... ]

Tipo: Matriz de objeto

Obrigatório: Não

name

O nome da variável de ambiente que contém o segredo.

Tipo: Sequência

Obrigatório: Sim, quando secrets for usado.

valueFrom

O segredo a ser exposto ao contêiner. Os valores com suporte são o nome do recurso da Amazon (ARN) completo do segredo do Secrets Manager ou o ARN completo do parâmetro no SSM Parameter Store.

nota

Se o parâmetro SSM Parameter Store existir no Região da AWS mesmo trabalho que você está iniciando, você poderá usar o ARN completo ou o nome do parâmetro. Se o parâmetro existir em uma Região diferente, o ARN completo deverá ser especificado.

Tipo: Sequência

Obrigatório: Sim, quando secrets for usado.

ulimits

Uma lista de valores ulimits a ser definida no contêiner. Esse parâmetro é mapeado para Ulimits na seção Criar um contêiner da Docker Remote API e a opção --ulimit para docker run.

"ulimits": [ { "name": string, "softLimit": integer, "hardLimit": integer } ... ]

Tipo: Matriz de objeto

Obrigatório: Não

name

O type do ulimit.

Tipo: Sequência

Obrigatório: Sim, quando ulimits for usado.

hardLimit

O limite rígido do tipo ulimit.

Tipo: Inteiro

Obrigatório: Sim, quando ulimits for usado.

softLimit

O limite flexível do tipo ulimit.

Tipo: Inteiro

Obrigatório: Sim, quando ulimits for usado.

user

O nome de usuário a ser usado dentro do contêiner. Esse parâmetro é mapeado para User na seção Criar um contêiner da Docker Remote API e a opção --user para docker run.

"user": "string"

Tipo: Sequência

Obrigatório: Não

vcpus

Este parâmetro está obsoleto, use resourceRequirements alternativamente.

O número de vCPUs reservado para o contêiner.

Como exemplo de como usar resourceRequirements, se sua definição de trabalho contiver linhas semelhantes a esta:

"containerProperties": { "vcpus": 2 }

As linhas equivalentes usadas resourceRequirements são as seguintes.

"containerProperties": { "resourceRequirements": [ { "type": "VCPU", "value": "2" } ] }

Tipo: Inteiro

Obrigatório: Sim

volumes

Ao registrar uma definição de trabalho, você pode especificar uma lista de volumes que são passados para o daemon do Docker em uma instância de contêiner. Os parâmetros a seguir são permitidos na propriedades de contêiner:

"volumes": [ { "name": "string", "host": { "sourcePath": "string" }, "efsVolumeConfiguration": { "authorizationConfig": { "accessPointId": "string", "iam": "string" }, "fileSystemId": "string", "rootDirectory": "string", "transitEncryption": "string", "transitEncryptionPort": number } } ]
name

O nome do volume. São permitidos até 255 letras (caixa alta e baixa), números, hífens e sublinhados. Este nome é referenciado no parâmetro sourceVolume da definição de contêiner mountPoints.

Tipo: Sequência

Obrigatório: Não

host

O conteúdo do parâmetro host determina se o seu volume de dados persiste na instância de contêiner host e onde ele é armazenado. Se o parâmetro host estiver vazio, o daemon do Docker atribuirá um caminho de host para o volume de dados. No entanto, não há garantia de que os dados persistirão após os contêineres associados a eles deixarem de ser executados.

nota

Este parâmetro não é aplicável a trabalhos executados em recursos do Fargate.

Tipo: Objeto

Obrigatório: Não

sourcePath

O caminho na instância de contêiner host apresentada ao contêiner. Caso esse parâmetro esteja vazio, o daemon do Docker atribui um caminho host para você.

Caso o parâmetro host contenha um local de arquivo sourcePath, o volume de dados persiste no local especificado na instância de contêiner host até você excluí-lo manualmente. Caso o valor sourcePath não exista na instância de contêiner do host, o daemon do Docker o criará. Caso o local exista, o conteúdo da pasta do caminho de origem é exportado.

Tipo: Sequência

Obrigatório: Não

efsVolumeConfiguration

Esse parâmetro é especificado quando você estiver usando um sistema de arquivos do Amazon Elastic File System para o armazenamento de tarefas. Para ter mais informações, consulte Volumes Amazon EFS.

Tipo: Objeto

Obrigatório: Não

authorizationConfig

Detalhes de configuração de autorização do sistema de arquivamento Amazon EFS.

Tipo: Sequência

Obrigatório: Não

accessPointId

O ID do ponto de acesso do Amazon EFS a ser usado. Se um ponto de acesso for especificado, o valor do diretório raiz especificado no EFSVolumeConfiguration deve ser omitido ou definido como. / Isso impõe o caminho definido no ponto de acesso EFS. Se um ponto de acesso for usado, a criptografia em trânsito deverá ser habilitada em EFSVolumeConfiguration. Para mais informações, consulte Trabalhando com Pontos de Acesso Amazon EFS no Guia de Usuário Amazon Elastic File System.

Tipo: Sequência

Obrigatório: não

iam

Determina se deve ser usada a função do IAM de AWS Batch trabalho definida em uma definição de tarefa ao montar o sistema de arquivos Amazon EFS. Em caso positivo, a criptografia de trânsito deve estar habilitada em EFSVolumeConfiguration. Se o parâmetro for omitido, o valor padrão DISABLED será usado. Para ter mais informações, consulte Usando pontos de acesso Amazon EFS.

Tipo: Sequência

Valores válidos: ENABLED | DISABLED

Obrigatório: não

fileSystemId

A ID do sistema de arquivamento Amazon EFS a ser usada.

Tipo: string

Obrigatório: Não

rootDirectory

O diretório dentro do sistema de arquivamento Amazon EFS a ser montado como diretório raiz dentro do host. Caso esse parâmetro seja omitido, a raiz do volume Amazon EFS será usada. Especificar / tem o mesmo efeito que omitir esse parâmetro. O tamanho máximo é de 4.096 caracteres.

Importante

Se um ponto de acesso EFS for especificado em authorizationConfig, o parâmetro do diretório raiz deverá ser omitido ou definido para /. Isso impõe o caminho definido no ponto de acesso do Amazon EFS.

Tipo: Sequência

Obrigatório: Não

transitEncryption

Determina se a criptografia deve ou não ser habilitada para dados do Amazon EFS em trânsito entre o host do Amazon ECS e o servidor do Amazon EFS. A criptografia de trânsito deverá ser habilitada caso a autorização IAM Amazon EFS for usada. Se o parâmetro for omitido, o valor padrão DISABLED será usado. Para mais informações, consulte Criptografando Dados em Trânsito no Guia de Usuário Amazon Elastic File System.

Tipo: Sequência

Valores válidos: ENABLED | DISABLED

Obrigatório: não

transitEncryptionPort

A porta a ser usada ao enviar dados criptografados entre o host do Amazon ECS e o servidor do Amazon EFS. Caso não especifique uma porta de criptografia em trânsito, a estratégia de seleção de porta usada pelo assistente de montagem Amazon EFS será utilizada. O valor precisar estar compreendido entre 0 e 65.535. Para mais informações, consulte Auxiliar de Montagem EFS no Guia de Usuário Amazon Elastic File System.

Tipo: Inteiro

Obrigatório: Não

Amazon EKS properties

Um objeto com diversas propriedades específicas de trabalhos baseados no Amazon EKS. Isso não pode ser especificado para definições de trabalho baseados no Amazon ECS.

podProperties

As propriedades dos recursos do pod Kubernetes de um trabalho.

Tipo: objeto de EksPodpropriedades

Obrigatório: não

containers

As propriedades do contêiner que é usado no pod do Amazon EKS.

Tipo: objeto EksContainer

Obrigatório: não

args

Uma matriz de argumentos para o ponto de entrada. Se isso não for especificado, o CMD da imagem do contêiner será usado. Isso corresponde ao membro args na parte do Entrypoint do Pod em Kubernetes. As referências de variáveis de ambiente são expandidas usando o ambiente do contêiner.

Se a variável de ambiente referenciada não existir, a referência no comando não será alterada. Por exemplo, se a referência for a "$(NAME1)" e a variável de ambiente NAME1 não existir, a string de comando continuará a ser "$(NAME1)". $$ será substituído por $ e a string resultante não será expandida. Por exemplo, $$(VAR_NAME) é passado como $(VAR_NAME), independentemente da variável de ambiente VAR_NAME existir ou não. Para obter mais informações, consulte CMD na referência do Dockerfile e Definir um comando e argumentos para um pod na Kubernetes documentação.

Tipo: Matriz de strings

Obrigatório: Não

command

O ponto de entrada para o contêiner. Isso não é executado dentro de uma shell. Se isso não for especificado, o ENTRYPOINT da imagem do contêiner será usado. As referências de variáveis de ambiente são expandidas usando o ambiente do contêiner.

Se a variável de ambiente referenciada não existir, a referência no comando não será alterada. Por exemplo, se a referência for a "$(NAME1)" e a variável de ambiente NAME1 não existir, a string de comando continuará a ser "$(NAME1)". $$ será substituído por $ e a string resultante não será expandida. Por exemplo, $$(VAR_NAME) será passado como $(VAR_NAME) independentemente da variável de ambiente VAR_NAME existir ou não. O ponto de entrada não pode ser atualizado. Para obter mais informações, consulte ENTRYPOINT na referência do Dockerfile e Definir um comando e argumentos para um contêiner e Entrypoint na Kubernetes documentação.

Tipo: Matriz de strings

Obrigatório: Não

env

As variáveis de ambiente a serem passadas para um contêiner.

nota

Variáveis de ambiente não podem começar com "AWS_BATCH". Essa convenção de nomenclatura é reservada para variáveis que AWS Batch definem.

Tipo: matriz de objetos EksContainerEnvironmentVariable

Obrigatório: não

name

O nome da variável de ambiente.

Tipo: Sequência

Obrigatório: Sim

value

O valor da variável de ambiente.

Tipo: Sequência

Obrigatório: Não

image

A imagem do Docker usada para iniciar um contêiner.

Tipo: Sequência

Obrigatório: Sim

imagePullPolicy

A política de extração de imagens para o contêiner. Os valores compatíveis são Always, IfNotPresent e Never. Por padrão, esse parâmetro é IfNotPresent. No entanto, se a tag :latest for especificada, o padrão será Always. Para obter mais informações, consulte Atualizando imagens na Kubernetes documentação.

Tipo: Sequência

Obrigatório: Não

name

O nome do contêiner. Se o nome não for especificado, o nome padrão "Default" será usado. Cada contêiner em um pod deve ter um nome exclusivo.

Tipo: Sequência

Obrigatório: Não

resources

O tipo e a quantidade de um recurso a serem atribuídos a um contêiner. Os recursos suportados incluem memory, cpu e nvidia.com/gpu. Para obter mais informações, consulte Resource de recursos para pods e contêineres na Kubernetes documentação.

Tipo: objeto EksContainerResourceRequirements

Obrigatório: não

limits

O tipo e a quantidade dos recursos a reservar para o contêiner. Os valores variam de acordo com o name especificado. Os recursos podem ser solicitados usando o limits ou os objetos do requests.

memory

O limite rígido de memória (em MiB) para o contêiner, usando inteiros, com um sufixo "Mi". Caso o container tente exceder a memória especificada, o contêiner será encerrado. Você deve especificar pelo menos 4 MiB de memória para um trabalho. memorypode ser especificada em limits, requests ou em ambos. Se memory for especificado nos dois lugares, o valor especificado em limits deverá ser igual ao valor especificado em requests.

nota

Para maximizar a utilização de recursos, forneça aos trabalhos o máximo de memória possível para o tipo de instância específico que você está usando. Para saber como, consulte Recurso de Computação Gerenciamento de Memória.

cpu

O número de CPUs reservado para o contêiner. Os valores devem ser um múltiplo par de 0.25. cpu pode ser especificado em limits, requests ou em ambos. Se cpu for especificada em ambos, o valor especificado em limits deverá ser no mínimo igual ao valor especificado em requests.

nvidia.com/gpu

O número de GPUs reservado para o contêiner. Os valores devem ser um inteiro par. memory pode ser especificado em limits, requests ou em ambos. Se memory for especificado nos dois lugares, o valor especificado em limits deverá ser igual ao valor especificado em requests.

Tipo: Mapa de string para string

Restrições de tamanho do valor: tamanho mínimo 1. O tamanho máximo é 256.

Obrigatório: Não

requests

O tipo e a quantidade dos recursos a solicitar para o contêiner. Os valores variam de acordo com o name especificado. Os recursos podem ser solicitados usando o limits ou os objetos do requests.

memory

O limite rígido de memória (em MiB) para o contêiner, usando inteiros, com um sufixo "Mi". Caso o container tente exceder a memória especificada, o contêiner será encerrado. Você deve especificar pelo menos 4 MiB de memória para um trabalho. memorypode ser especificada em limits, requests ou em ambos. Se memory for especificado em ambos, o valor especificado em limits deverá ser igual ao valor especificado em requests.

nota

Se você deseja maximizar a utilização de recursos fornecendo aos trabalhos o máximo de memória possível para um determinado tipo de instância, consulte Recurso de Computação Gerenciamento de Memória.

cpu

O número de CPUs reservado para o contêiner. Os valores devem ser um múltiplo par de 0.25. cpu pode ser especificado em limits, requests ou em ambos. Se cpu for especificada em ambos, o valor especificado em limits deverá ser no mínimo igual ao valor especificado em requests.

nvidia.com/gpu

O número de GPUs reservado para o contêiner. Os valores devem ser um inteiro par. nvidia.com/gpu pode ser especificado em limits, requests ou em ambos. Se nvidia.com/gpu for especificado em ambos, o valor especificado em limits deverá ser igual ao valor especificado em requests.

Tipo: Mapa de string para string

Restrições de tamanho do valor: tamanho mínimo 1. O tamanho máximo é 256.

Obrigatório: Não

securityContext

O contexto de segurança de um trabalho. Para obter mais informações, consulte Configure um contexto de segurança para um pod ou contêiner na Kubernetes documentação.

Tipo: objeto EksContainerSecurityContext

Obrigatório: não

privileged

Quando esse parâmetro é true, o contêiner recebe permissões elevadas na instância de contêiner host. O nível das permissões é semelhante às permissões do usuário root. O valor padrão é false. Esse parâmetro é mapeado para a privileged política nas políticas de segurança do pod Privileged na Kubernetes documentação.

Tipo: Booliano

Obrigatório: Não

readOnlyRootFilesystem

Quando esse parâmetro é true, o contêiner recebe acesso somente para leitura ao sistema de arquivos raiz. O valor padrão é false. Esse parâmetro é mapeado para a ReadOnlyRootFilesystem política nas políticas de segurança do pod de sistemas de arquivos e volumes na documentação Kubernetes.

Tipo: Booliano

Obrigatório: Não

runAsGroup

Quando esse parâmetro é especificado, o contêiner é executado como o ID de grupo especificado (gid). Se esse parâmetro não for especificado, o padrão será o grupo que for especificado nos metadados da imagem. Esse parâmetro mapeia para RunAsGroup e MustRunAs política nas políticas de segurança do pod de grupos e usuários na Kubernetes documentação.

Tipo: Long

Obrigatório: Não

runAsNonRoot

Quando esse parâmetro é especificado, o contêiner é executado como um usuário com um valor de uid diferente de 0. Se esse parâmetro não for especificado, essa regra será imposta. Esse parâmetro mapeia para RunAsUser e MustRunAsNonRoot política nas políticas de segurança do pod de grupos e usuários na Kubernetes documentação.

Tipo: Long

Obrigatório: Não

runAsUser

Quando esse parâmetro é especificado, o contêiner é executado como o ID de usuário especificado (uid). Se esse parâmetro não for especificado, o padrão será o usuário que for especificado nos metadados da imagem. Esse parâmetro mapeia para RunAsUser e MustRanAs política nas políticas de segurança do pod de grupos e usuários na Kubernetes documentação.

Tipo: Long

Obrigatório: Não

volumeMounts

O volume é montado para um contêiner para um trabalho do Amazon EKS. Para obter mais informações sobre volumes e montagens de volumes em Kubernetes, consulte Volumes na Kubernetes documentação.

Tipo: matriz de objetos EksContainerVolumeMount

Obrigatório: não

mountPath

O caminho no contêiner em que o volume está montado.

Tipo: Sequência

Obrigatório: Não

name

O nome do volume a ser montado. Isso deve corresponder ao nome de um dos volumes no pod.

Tipo: Sequência

Obrigatório: Não

readOnly

Caso o valor seja true, o contêiner tem acesso somente leitura ao volume. Caso contrário, o contêiner pode gravar no volume. O valor padrão é false.

Tipo: booliano

Obrigatório: Não

dnsPolicy

A política de DNS para o pod. O valor padrão é ClusterFirst. Se o parâmetro hostNetwork não for especificado, o padrão será ClusterFirstWithHostNet. ClusterFirst indica que qualquer consulta ao DNS que não corresponda ao sufixo de domínio de cluster configurado será encaminhada para o servidor de nomes upstream herdado do nó. Se nenhum valor foi especificado dnsPolicy na operação da API de RegisterJobdefinição, nenhum valor será retornado dnsPolicy pelas DescribeJobdefinições ou pelas operações da DescribeJobsAPI. A configuração de especificação do pod conterá ClusterFirst ou ClusterFirstWithHostNet, dependendo do valor do parâmetro hostNetwork. Para obter mais informações, consulte política Pod's DNS na Kubernetes documentação.

Valores válidos: Default | ClusterFirst | ClusterFirstWithHostNet

Tipo: Sequência

Obrigatório: Não

hostNetwork

Indica se o pod usa o endereço IP da rede dos hosts. O valor padrão é true. Definir essa opção como false ativa o modelo de rede de pods Kubernetes. A maioria das AWS Batch cargas de trabalho é somente de saída e não exige a sobrecarga da alocação de IP para cada pod para conexões de entrada. Para obter mais informações, consulte Espaços de nomes de Host e rede de Pods na Kubernetes documentação.

Tipo: Booliano

Obrigatório: Não

serviceAccountName

O nome da conta de serviço que é usada para executar o pod. Para obter mais informações, consulte Kubernetes contas de serviço e Configure uma conta de serviço Kubernetes para assumir um perfil do IAM no Amazon EKS User Guide e Configure contas de serviço para pods na Kubernetes documentação.

Tipo: Sequência

Obrigatório: Não

volumes

Especifica os volumes para uma definição de trabalho que usa recursos do Amazon EKS.

Tipo: matriz de objetos EksVolume

Obrigatório: não

emptyDir

Especifica a configuração de um volume Kubernetes emptyDir. Um volume emptyDir é criado pela primeira vez quando um pod é atribuído a um nó. Ele existirá enquanto o pod estiver sendo executado nesse nó. O volume emptyDir está inicialmente vazio. Todos os contêineres no pod podem ler e gravar os arquivos no volume emptyDir. No entanto, o volume emptyDir pode ser montado no mesmo caminho ou em caminhos diferentes em cada contêiner. Quando um pod é removido de um nó por qualquer motivo, os dados no emptyDir são excluídos permanentemente. Para obter mais informações, consulte emptyDir na Kubernetes documentação.

Tipo: objeto EksEmptyDir

Obrigatório: não

medium

A mídia para armazenar o volume. O valor padrão é uma string vazia, que usa o armazenamento do nó.

""

(Padrão) Usar o armazenamento em disco do nó.

"Memory" (Memória)

Usar o volume tmpfs que tem o suporte da RAM do nó. O conteúdo do volume é perdido quando o nó é reinicializado e qualquer armazenamento no volume é contabilizado no limite de memória do contêiner.

Tipo: Sequência

Obrigatório: Não

sizeLimit

O tamanho máximo do volume. Por padrão, não há tamanho máximo definido.

Tipo: Sequência

Restrições de Tamanho: Tamanho Mínimo 1. Tamanho máximo de 256.

Obrigatório: Não

hostPath

Especifica a configuração de um volume Kubernetes hostPath. Um volume hostPath monta um arquivo ou diretório existente do sistema de arquivos do nó host no pod. Para obter mais informações, consulte hostPath na Kubernetes documentação.

Tipo: objeto de EksHostcaminho

Obrigatório: não

path

O caminho do arquivo ou diretório no host a ser montado em contêineres no pod.

Tipo: Sequência

Obrigatório: Não

name

O nome do volume. O nome deve ser permitido como um nome de subdomínio do DNS. Para obter mais informações, consulte Nomes de subdomínios DNS na Kubernetes documentação.

Tipo: Sequência

Obrigatório: Sim

secret

Especifica a configuração de um volume Kubernetes secret. Para obter mais informações, consulte secret na Kubernetes documentação.

Tipo: objeto EksSecret

Obrigatório: não

optional

Especifica se o segredo ou as chaves do segredo devem ser definidas.

Tipo: Booliano

Obrigatório: Não

secretName

O nome do segredo. O nome deve ser permitido como um nome de subdomínio do DNS. Para obter mais informações, consulte Nomes de subdomínios DNS na Kubernetes documentação.

Tipo: Sequência

Obrigatório: Sim

Funcionalidades da plataforma

platformCapabilities

As funcionalidades da plataforma necessárias pela definição do cargo. Se nenhum valor for especificado, o padrão será EC2. Para trabalhos executados em recursos do Fargate, FARGATE é especificado.

nota

Se o trabalho for executado em recursos do Amazon EKS, você não deve especificarplatformCapabilities.

Tipo: Sequência

Valores válidos: EC2 | FARGATE

Obrigatório: não

Propagar tags

propagateTags

Especifica se as tags devem ser propagadas a partir do trabalho ou da definição de trabalho para a tarefa correspondente do Amazon ECS. Se nenhum valor for especificado, as tags não serão propagadas. As tags só podem ser propagadas para as tarefas quando as tarefas são criadas. Para tags com o mesmo nome, as tags de trabalho têm prioridade sobre as tags de definições de trabalho. Se o número total de tags combinadas do trabalho e da definição do trabalho for superior a 50, o trabalho será movido para o estado FAILED.

nota

Se o trabalho for executado em recursos do Amazon EKS, você não deve especificarpropagateTags.

Tipo: Booliano

Obrigatório: Não

Propriedades de nó

nodeProperties

Ao registrar uma definição de trabalho paralela de vários nós, você deve especificar uma lista de propriedades de nós. Essas propriedades do nó definem o número de nós a serem usados em seu trabalho, o índice do nó principal e os diferentes intervalos de nós a serem usados. Se o trabalho for executado em recursos do Fargate, não especifique nodeProperties. Em seu lugar, use containerProperties. As seguintes propriedades de nó são permitidas em uma definição de trabalho. Para ter mais informações, consulte Trabalhos em paralelo de vários nós.

nota

Se o trabalho for executado em recursos do Amazon EKS, você não deve especificarnodeProperties.

Tipo: objeto NodeProperties

Obrigatório: não

mainNode

Especifica o índice de nó para o nó principal de um trabalho em paralelo de vários nós. Esse valor de índice do nó deve ser menor que o número de nós.

Tipo: Inteiro

Obrigatório: Sim

numNodes

O número de nós que são associados a um trabalho em paralelo de vários nós.

Tipo: Inteiro

Obrigatório: Sim

nodeRangeProperties

Uma lista de intervalos de nós e suas propriedades que são associadas a uma trabalho em paralelo de vários nós.

nota

Um grupo de nós é um grupo idêntico de nós de trabalhos que compartilham as mesmas propriedades do contêiner. Você pode usar AWS Batch para especificar até cinco grupos de nós distintos para cada trabalho.

Tipo: Matriz de objetos de NodeRangepropriedade

Obrigatório: Sim

targetNodes

O intervalo de nós, usando valores de índice de nó. Um intervalo de 0:3 indica nós com valores de índice de 0 a 3. Se o valor do intervalo inicial for omitido (:n), então 0 será usado para iniciar o intervalo. Se o valor do intervalo final for omitido (n:), o índice de nó mais alto possível será usado para finalizar o intervalo. Seus intervalos de nós acumulativos devem considerar todos os nós (0:n). Você pode aninhar intervalos de nós (por exemplo, 0:10 e 4:5). Nesse caso, as propriedades do intervalo 4:5 substituem as propriedades de 0:10.

Tipo: Sequência

Obrigatório: Não

container

Os detalhes do contêiner para o intervalo de nós. Para ter mais informações, consulte Propriedades do contêiner.

Tipo: objeto ContainerProperties

Obrigatório: não

Estratégia de repetição

retryStrategy

Ao registrar uma definição de trabalho, você pode opcionalmente especificar uma estratégia de nova tentativa a ser usada para trabalhos com falha que são enviados com essa definição de trabalho. Qualquer estratégia de repetição especificada durante uma SubmitJoboperação substitui a estratégia de repetição definida aqui. Por padrão, cada trabalho é tentado uma vez. Se você especificar mais de uma tentativa, o trabalho será repetido se falhar. Exemplos de uma tentativa de falha incluem o trabalho retornar um código de saída diferente de zero ou a instância de contêiner ser encerrada. Para ter mais informações, consulte Repetições de trabalho automatizadas.

Tipo: objeto RetryStrategy

Obrigatório: não

attempts

O número de vezes para mover um trabalho para o status RUNNABLE. Você pode especificar entre 1 e 10 tentativas. Se attempts for maior que um, o trabalho será repetido essa quantidade de vezes se falhar, até ser movido para RUNNABLE.

"attempts": integer

Tipo: inteiro

Obrigatório: Não

evaluateOnExit

Matriz de até 5 objetos que especificam condições sob as quais o trabalho deve ser repetido ou considerado com falha. Se esse parâmetro for especificado, o parâmetro attempts também deverá ser especificado. Se evaluateOnExit for especificado, mas nenhuma das entradas corresponder, o trabalho será repetido.

"evaluateOnExit": [ { "action": "string", "onExitCode": "string", "onReason": "string", "onStatusReason": "string" } ]

Tipo: Matriz de objetos de EvaluateOnsaída

Obrigatório: não

action

Especifica a ação a ser executada se todas as condições especificadas (onStatusReason, onReason, e onExitCode) forem atendidas. Os valores não diferenciam maiúsculas e minúsculas

Tipo: Sequência

Obrigatório: Sim

Valores válidos: RETRY | EXIT

onExitCode

Contém um padrão glob para corresponder à representação decimal do ExitCode retornado para um trabalho. O padrão pode ter até 512 caracteres de comprimento. Ele pode conter somente números. Ele não pode conter letras ou caracteres especiais. Ele pode, opcionalmente, terminar com um asterisco (*) para que apenas o início da string precise ser uma correspondência exata.

Tipo: Sequência

Obrigatório: Não

onReason

Contém um padrão glob para corresponder ao Reason retornado para um trabalho. O padrão pode ter até 512 caracteres de comprimento. Ele pode conter letras, números, pontos (.), dois pontos (:) e espaço em branco (incluindo espaços ou tabulações). Ele pode, opcionalmente, terminar com um asterisco (*) para que apenas o início da string precise ser uma correspondência exata.

Tipo: Sequência

Obrigatório: Não

onStatusReason

Contém um padrão glob para corresponder ao StatusReason retornado para um trabalho. O padrão pode ter até 512 caracteres de comprimento. Ele pode conter letras, números, pontos (.), dois pontos (:) e espaço em branco (incluindo espaços ou tabulações). Ele pode, opcionalmente, terminar com um asterisco (*) para que apenas o início da string precise ser uma correspondência exata.

Tipo: Sequência

Obrigatório: Não

Prioridade de agendamento

schedulingPriority

A prioridade de agendamento para trabalhos enviados com essa definição de trabalho. Isso afeta apenas os trabalhos nas filas de trabalhos com uma política de compartilhamento justo. Trabalhos com prioridade de agendamento mais alta são agendados antes de trabalhos com prioridade de agendamento mais baixa.

O valor mínimo compatível é 0 e o valor máximo compatível é 9999.

Tipo: Inteiro

Obrigatório: Não

Tags

tags

Etiquetas de pares de valores-chave a serem associadas à definição do trabalho. Para ter mais informações, consulte Marcando seus Recursos AWS Batch.

Tipo: Mapa de string para string

Obrigatório: Não

Timeout (Tempo limite)

timeout

Você pode configurar uma duração de tempo limite para seus trabalhos para que, se um trabalho for executado por mais tempo do que isso, AWS Batch encerre o trabalho. Para ter mais informações, consulte Tempos limite de trabalho. Se um trabalho for encerrado devido a um tempo limite, ele não será tentado novamente. Qualquer configuração de tempo limite especificada durante uma SubmitJoboperação substitui a configuração de tempo limite definida aqui. Para ter mais informações, consulte Tempos limite de trabalho.

Tipo: objeto JobTimeout

Obrigatório: não

attemptDurationSeconds

O tempo de duração em segundos (medido a partir do registro de data e hora startedAt da tentativa de trabalho) após o encerramento de trabalhos inacabados AWS Batch . O valor mínimo do tempo limite é 60 segundos.

Em trabalhos de matriz, o tempo limite se aplica aos trabalhos secundários, não ao trabalho de matriz principal.

Para trabalhos paralelos de vários nós (MNP), o tempo limite se aplica ao trabalho inteiro, não aos nós individuais.

Tipo: Inteiro

Obrigatório: Não