Referencia: parámetros de definición de trabajo para ContainerProperties - AWS Batch

Referencia: parámetros de definición de trabajo para ContainerProperties

Las definiciones de trabajo que usan ContainerProperties se dividen en varias partes:

  • nombre de la definición de trabajo

  • el tipo de definición de trabajo

  • los valores predeterminados de marcador de sustitución de parámetros

  • el contenedor de propiedades del trabajo

  • las propiedades de Amazon EKS para la definición del trabajo que son necesarias para los trabajos que se ejecutan en los recursos de Amazon EKS

  • las propiedades de nodo necesarias para un trabajo paralelo de varios nodos

  • las capacidades de la plataforma que son necesarias para los trabajos que se ejecutan en los recursos de Fargate

  • los detalles de propagación de etiquetas predeterminados de la definición del trabajo

  • la estrategia de reintento predeterminada para la definición del trabajo

  • la prioridad de programación predeterminada para la definición del trabajo

  • las etiquetas predeterminadas para la definición del trabajo

  • el tiempo de espera predeterminado de la definición del trabajo

Nombre de la definición de trabajo

jobDefinitionName

Al registrar una definición de trabajo, es necesario especificar un nombre. El nombre puede tener una longitud máxima de 128 caracteres. Puede contener letras mayúsculas y minúsculas, números, guiones (-) y guiones bajos (_). A la primera definición de trabajo registrado con ese nombre se le da asigna la revisión 1. A las definiciones de trabajo posteriores registradas con el mismo nombre se les asignan números de revisión en orden ascendente.

Tipo: cadena

Obligatorio: sí

Tipo

type

Al registrar una definición de trabajo, es necesario especificar el tipo de trabajo. Si el trabajo se ejecuta en recursos de Fargate, entonces multinode no es compatible. Para obtener más información sobre los trabajos paralelos de varios nodos, consulte Crear una definición de trabajo paralelo de varios nodos.

Tipo: cadena

Valores válidos: container | multinode

Obligatorio: sí

Parámetros

parameters

Al enviar un trabajo, es posible especificar parámetros que sustituyan los marcadores de posición o ignoren los parámetros de definición de trabajo predeterminados. Los parámetros de las solicitudes de envío de trabajo prevalecen sobre los predeterminados de la definición de trabajo. Esto significa que puede usar la misma definición de trabajo para varios trabajos que usen el mismo formato. También puede cambiar mediante programación los valores del comando en el momento del envío.

Tipo: mapa de cadena a cadena

Obligatorio: no

Al registrar una definición de trabajo, es posible utilizar marcadores de posición de sustitución de parámetros en el campo command de las propiedades de un contenedor de trabajo. La sintaxis es la siguiente.

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

En el ejemplo anterior, hay marcadores de posición de sustitución de parámetros Ref::inputfile, Ref::codec y Ref::outputfile en el comando. Puede usar el objeto parameters de la definición de trabajo para establecer valores predeterminados para estos marcadores de posición. Por ejemplo, para definir un valor predeterminado para el marcador de posición Ref::codec, especifique lo siguiente en la definición del trabajo:

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

Cuando esta definición de trabajo se envíe para su ejecución, el argumento Ref::codec del comando para el contenedor se sustituirá por el valor predeterminado, mp4.

Propiedades de contenedor

Al registrar una definición de trabajo, especifique una lista de las propiedades de contenedor que se transmiten al daemon de Docker en una instancia de contenedor cuando se coloca el trabajo. Las siguientes propiedades de contenedor se permiten en una definición de trabajo. Para los trabajos de un solo nodo, estas propiedades de contenedor se establecen en el nivel de definición de trabajo. En los trabajos paralelos de varios nodos, las propiedades de contenedor se establecen en el nivel Propiedades del nodo para cada grupo de nodos.

command

El comando que se transfiere al contenedor. Este parámetro se asigna a Cmd en la sección Crear un contenedor de la API remota de Docker y el parámetro COMMAND se corresponde con docker run. Para obtener más información sobre el parámetro CMD de Docker, consulte https://docs.docker.com/engine/reference/builder/#cmd.

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

Tipo: matriz de cadenas

Requerido: no

environment

Las variables de entorno a transferir a un contenedor. Este parámetro se corresponde con Env en la sección Crear un contenedor de la API remota de Docker y con la opción --env de docker run.

importante

No es recomendable usar variables del entorno en texto sin formato para información confidencial, como los datos de la credencial.

nota

Las variables de entorno no pueden empezar por AWS_BATCH. Esta convención de nomenclatura está reservada para las variables que establece el servicio de AWS Batch.

Tipo: matriz de pares clave-valor

Obligatorio: no

name

El nombre de la variable de entorno.

Tipo: cadena

Obligatorio: sí, si se utiliza environment.

value

El valor de la variable de entorno.

Tipo: cadena

Obligatorio: sí, si se utiliza environment.

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

Al registrar una definición de trabajo, es posible especificar un rol de IAM. El rol le concede al agente de contenedor de Amazon ECS permisos para llamar a las acciones de la API que se especifican en sus políticas asociadas, en nombre de quien registra la definición de trabajo. Para los trabajos que se ejecutan en recursos de Fargate, debe proporcionar un rol de ejecución. Para obtener más información, consulte Rol de ejecución de IAM AWS Batch.

Tipo: string

Obligatorio: no

fargatePlatformConfiguration

La configuración de la plataforma para trabajos que se ejecutan en recursos de Fargate. Los trabajos que se ejecutan en los recursos de EC2 no deben especificar este parámetro.

Tipo: objeto FargatePlatformConfiguration

Obligatorio: no

platformVersion

La versión de la plataforma de AWS Fargate utilizada para los trabajos o LATEST para usar una versión reciente y aprobada de la plataforma de AWS Fargate.

Tipo: cadena

Valor predeterminado: LATEST

Obligatorio: no

image

La imagen que se utiliza para iniciar un trabajo. Esta cadena se transfiere directamente al daemon de Docker. Las imágenes del registro de Docker Hub están disponibles de forma predeterminada. También es posible especificar otros repositorios con repository-url/image:tag. Se permiten hasta 255 letras (mayúsculas y minúsculas), números, guiones, caracteres de subrayado, comas, puntos, barras diagonales y signos numéricos. Este parámetro se asigna a Image en la sección Crear un contenedor de la API remota de Docker y el parámetro IMAGE de docker run.

nota

La arquitectura de la imagen de Docker debe coincidir con la arquitectura del procesador de los recursos de computación en las que estén programadas. Por ejemplo, las imágenes de Docker basadas en Arm solo pueden ejecutarse en recursos de computación basados en Arm.

  • Las imágenes de los repositorios públicos de Amazon ECR utilizan las convenciones de nomenclatura completa registry/repository[:tag] o registry/repository[@digest] (por ejemplo, public.ecr.aws/registry_alias/my-web-app:latest).

  • Las imágenes de los repositorios de Amazon ECR utilizan la convención de nomenclatura completa registry/repository:[tag]. Por ejemplo, aws_account_id.dkr.ecr.region.amazonaws.com/my-web-app:latest.

  • Las imágenes de los repositorios oficiales de Docker Hub utilizan un solo nombre (por ejemplo, ubuntu o mongo).

  • Las imágenes de otros repositorios de Docker Hub se identifican con un nombre de organización (por ejemplo, amazon/amazon-ecs-agent).

  • Las imágenes de otros repositorios online se cualifican más con un nombre de dominio (por ejemplo, quay.io/assemblyline/ubuntu).

Tipo: cadena

Obligatorio: sí

instanceType

El tipo de instancia que se va a utilizar para un trabajo en paralelo de varios nodos. Todos los grupos de nodos de un trabajo paralelo de varios nodos deben utilizar el mismo tipo de instancia. Este parámetro no es aplicable a trabajos de contenedor de un solo nodo o para trabajos que se ejecutan en recursos de Fargate.

Tipo: cadena

Obligatorio: no

jobRoleArn

Al registrar una definición de trabajo, es posible especificar un rol de IAM. El rol le concede al contenedor de trabajo permisos para llamar a las acciones de la API que se especifican en sus políticas asociadas, en nombre de quien registra la definición de trabajo. Para obtener más información, consulte Roles de IAM para tareas en la Guía para desarrolladores de Amazon Elastic Container Service.

Tipo: cadena

Obligatorio: no

linuxParameters

Modificaciones específicas de Linux que se aplican al contenedor, como los detalles de asignación de dispositivos.

"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

Obligatorio: no

devices

Lista de dispositivos asignados en el contenedor. Este parámetro se corresponde con Devices en la sección Crear un contenedor de la API remota de Docker y la opción --device se corresponde con docker run.

nota

Este parámetro no es aplicable a trabajos que se ejecutan en recursos de Fargate.

Tipo: matriz de objetos Dispositivo

Obligatorio: no

hostPath

Ruta en la que se encuentra el dispositivo disponible en la instancia de contenedor del host.

Tipo: cadena

Obligatorio: sí

containerPath

Ruta en la que queda expuesto el dispositivo en el contenedor. Si no se especifica, el dispositivo se expone en la misma ruta que la ruta del host.

Tipo: cadena

Obligatorio: no

permissions

Permisos del dispositivo en el contenedor. Si no se especifica, los permisos se establecen en READ, WRITE y MKNOD.

Tipo: matriz de cadenas

Obligatorio: no

Valores válidos: READ | WRITE | MKNOD

initProcessEnabled

Si es “true” (verdadero), ejecute un proceso de init dentro del contenedor que reenvíe señales y aproveche procesos. Este parámetro se corresponde con la opción --init de docker run. Este parámetro requiere la versión 1.25 de la API remota de Docker o superior en su instancia de contenedor. Para comprobar la versión de la API remota de Docker en su instancia de contenedor, inicie sesión en su instancia de contenedor y ejecute el comando siguiente: sudo docker version | grep "Server API version"

Tipo: Booleano

Obligatorio: no

maxSwap

La cantidad total de memoria de intercambio (en MiB) que puede utilizar un trabajo. Este parámetro se traduce en la opción --memory-swap de docker run donde el valor es la suma de la memoria del contenedor más el valor de maxSwap. Para obtener más información, consulte Detalles de --memory-swap en la documentación de Docker.

Si se especifica un valor maxSwap para 0, el contenedor no utiliza el intercambio. Los valores aceptados son 0 o cualquier entero positivo. Si se omite el parámetro maxSwap, el contenedor utiliza la configuración de intercambio de la instancia de contenedor en la que se está ejecutando. Debe establecerse un valor de maxSwap para el parámetro swappiness.

nota

Este parámetro no es aplicable a trabajos que se ejecutan en recursos de Fargate.

Tipo: entero

Obligatorio: no

sharedMemorySize

El valor del tamaño (en MiB) del volumen /dev/shm. Este parámetro se corresponde con la opción --shm-size de docker run.

nota

Este parámetro no es aplicable a trabajos que se ejecutan en recursos de Fargate.

Tipo: entero

Obligatorio: no

swappiness

Puede utilizar esta opción para ajustar el comportamiento de intercambio de memoria de un contenedor. Un valor swappiness de 0 impide que ocurra el intercambio a menos que sea absolutamente necesario. Un valor swappiness de 100 aumenta al máximo el intercambio de páginas. Los valores aceptados son números enteros comprendidos entre 0 y 100. Si no se especifica el parámetro swappiness, se utiliza el valor predeterminado de 60. Si no se especifica ningún valor para maxSwap, este parámetro se omite. Si maxSwap se establece en 0, el contenedor no utiliza intercambio. Este parámetro se corresponde con la opción --memory-swappiness de docker run.

Tenga en cuenta lo siguiente cuando utilice una configuración de intercambio por contenedor.

  • El espacio de intercambio debe estar habilitado y asignado a la instancia de contenedor para que los contenedores lo utilicen.

    nota

    Las AMI optimizadas de Amazon ECS no tienen habilitado el intercambio de forma predeterminada. Debe habilitar el intercambio en la instancia para utilizar esta característica. Para obtener más información, consulte Volúmenes de intercambio de almacén de instancias en la Guía del usuario de Amazon EC2 o ¿Cómo asigno memoria para que funcione como espacio de intercambio en una instancia de Amazon EC2 mediante un archivo de intercambio?.

  • Los parámetros de espacio de intercambio solo se admiten para definiciones de trabajos que utilizan recursos de EC2.

  • Si en una definición de trabajo se omiten los parámetros maxSwap y swappiness, cada contenedor tendrá un valor swappiness predeterminado de 60. El uso total de intercambio se limita al doble de la reserva de memoria del contenedor.

nota

Este parámetro no es aplicable a trabajos que se ejecutan en recursos de Fargate.

Tipo: entero

Obligatorio: no

tmpfs

La ruta del contenedor, las opciones de montaje y el tamaño del montaje tmpfs.

Tipo: matriz de objetos Tmpfs

nota

Este parámetro no es aplicable a trabajos que se ejecutan en recursos de Fargate.

Obligatorio: no

containerPath

La ruta de archivo absoluta en el contenedor donde se monta el volumen tmpfs.

Tipo: cadena

Obligatorio: sí

mountOptions

La lista de opciones de montaje del volumen 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 cadenas

Obligatorio: no

size

El tamaño (en MiB) del volumen tmpfs.

Tipo: entero

Obligatorio: sí

logConfiguration

La especificación de configuración de registro para el trabajo.

Este parámetro se corresponde con LogConfig en la sección Crear un contenedor de la API remota de Docker y la opción --log-driver se corresponde con docker run. De forma predeterminada, los contenedores usan el mismo controlador de registro que el daemon de Docker. No obstante, el contenedor puede usar un controlador de registro distinto del daemon de Docker especificando un controlador de registro con este parámetro en la definición de contenedor. Para utilizar un controlador de registro distinto para un contenedor, el sistema de registro se debe configurar correctamente en la instancia de contenedor o en un servidor de registro distinto para opciones de registro remotas. Para obtener más información acerca de las opciones para los distintos controladores de registro admitidos, consulte Configurar controladores de registro en la documentación de Docker.

nota

AWS Batch admite actualmente un subconjunto de los controladores de registro disponibles para el daemon de Docker (se muestra en el tipo de datos LogConfiguration).

Este parámetro requiere la versión 1.18 de la API remota de Docker o superior en su instancia de contenedor. Para comprobar la versión de la API remota de Docker en su instancia de contenedor, inicie sesión en su instancia de contenedor y ejecute el comando siguiente: 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

Obligatorio: no

logDriver

El controlador de registro que utilizar para el trabajo. De forma predeterminada, AWS Batch habilita el controlador de registro awslogs. Los valores válidos que se enumeran para este parámetro son controladores de registro con los que el agente del contenedor de Amazon ECS se puede comunicar de forma predeterminada.

Este parámetro se corresponde con LogConfig en la sección Crear un contenedor de la API remota de Docker y la opción --log-driver se corresponde con docker run. De forma predeterminada, los trabajos usan el mismo controlador de registro que el daemon de Docker. No obstante, el trabajo puede usar un controlador de registro distinto del daemon de Docker especificando un controlador de registro con este parámetro en la definición de contenedor. Si desea especificar otro controlador de registro para un trabajo, el sistema de registro se debe configurar en la instancia de contenedor en el entorno de computación. O bien, configúrelo en otro servidor de registro para proporcionar opciones de registro remoto. Para obtener más información acerca de las opciones para los distintos controladores de registro admitidos, consulte Configurar controladores de registro en la documentación de Docker.

nota

AWS Batch actualmente admite un subconjunto de los controladores de registro disponibles para el daemon de Docker. Es posible que haya controladores de registro adicionales en versiones futuras del agente de contenedor de Amazon ECS.

Los controladores de registro admitidos son awslogs, fluentd, gelf, json-file, journald, logentries, syslog y splunk.

nota

Los trabajos que se ejecutan en recursos de Fargate están restringidos a los controladores de registro awslogs y splunk.

Este parámetro requiere la versión 1.18 de la API remota de Docker o superior en su instancia de contenedor. Para comprobar la versión de la API remota de Docker en su instancia de contenedor, inicie sesión en su instancia de contenedor y ejecute el comando siguiente: sudo docker version | grep "Server API version"

nota

El agente de contenedor de Amazon ECS que se ejecuta en una instancia de contenedor debe registrar los controladores de registro disponibles en dicha instancia con la variable de entorno ECS_AVAILABLE_LOGGING_DRIVERS. De lo contrario, los contenedores ubicados en esa instancia no pueden usar estas opciones de configuración de registro. Para obtener más información, consulte Configuración del agente de contenedor de Amazon ECS en la Guía para desarrolladores de Amazon Elastic Container Service.

awslogs

Especifica el controlador de registro de los Registros de Amazon CloudWatch. Para obtener más información, consulte Usar el controlador de registros awslogs y Uso del controlador de Registros de Amazon CloudWatch en la documentación de Docker.

fluentd

Especifica el controlador de registro Fluentd. Para obtener más información, incluidos el uso y las opciones, consulte Controlador de registro Fluentd en la documentación de Docker.

gelf

Especifica el controlador de registro Graylog Extended Format (GELF). Para obtener más información, incluidos el uso y las opciones, consulte Controlador de registro Graylog Extended Format en la documentación de Docker.

journald

Especifica el controlador de registro journald. Para obtener más información, incluidos el uso y las opciones, consulte Controlador de registro Journald en la documentación de Docker.

json-file

Especifica el controlador de registro de archivos JSON. Para obtener más información, incluidos el uso y las opciones, consulte Controlador de registro de archivos JSON en la documentación de Docker.

splunk

Especifica el controlador de registro Splunk. Para obtener más información, incluidos el uso y las opciones, consulte (Controlador de registro Splunk en la documentación de Docker.

syslog

Especifica el controlador de registro syslog. Para obtener más información, incluidos el uso y las opciones, consulte Controlador de registro Syslog en la documentación de Docker.

Tipo: cadena

Obligatorio: sí

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

nota

Si tiene un controlador personalizado que no se ha mostrado anteriormente y que desea utilizar con el agente de contenedor de Amazon ECS, puede bifurcar el proyecto del agente de contenedor de Amazon ECS disponible en GitHub y personalizarlo para que funcione con dicho controlador. Le recomendamos enviar solicitudes de inserción para los cambios que desea que incluyamos. No obstante, Amazon Web Services actualmente no permite solicitudes que ejecutan copias modificadas de este software.

options

Opciones de configuración de registro que enviar a un controlador de registro para el trabajo.

Este parámetro requiere la versión 1.19 de la API remota de Docker o superior en su instancia de contenedor.

Tipo: mapa de cadena a cadena

Requerido: no

secretOptions

Un objeto que representa el secreto que transferir a la configuración de registro. Para obtener más información, consulte Especificar información confidencial.

Tipo: matriz de objetos

Obligatorio: no

name

El nombre de la opción del controlador de registro que se va a configurar en el trabajo.

Tipo: cadena

Obligatorio: sí

valueFrom

El nombre de recurso de Amazon (ARN) del secreto que se va a exponer en la configuración de registro del contenedor. Los valores admitidos son el ARN completo del secreto del Secrets Manager o el ARN completo del parámetro en el almacén de parámetros SSM.

nota

Si el parámetro del almacén de parámetros SSM está en la misma Región de AWS que la tarea que se va a lanzar, se puede utilizar el ARN completo o el nombre del parámetro. Si el parámetro existe en una región distinta, el ARN completo debe especificarse.

Tipo: cadena

Obligatorio: sí

memory

Este parámetro ha quedado obsoleto, utilice resourceRequirements en su lugar.

El número de MiB de memoria que reservar para el trabajo.

Como ejemplo de cómo usar resourceRequirements, si la definición de su trabajo contiene una sintaxis similar a la siguiente.

"containerProperties": { "memory": 512 }

La sintaxis equivalente a través de resourceRequirements es de la siguiente manera.

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

Tipo: entero

Obligatorio: sí

mountPoints

Los puntos de montaje para los volúmenes de datos del contenedor. Este parámetro se corresponde con Volumes en la sección Crear un contenedor de la API remota de Docker y con la opción --volume de docker run.

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

Tipo: matriz de objetos

Requerido: no

sourceVolume

El nombre del volumen a montar.

Tipo: cadena

Obligatorio: sí, si se utiliza mountPoints.

containerPath

La ruta en el contenedor en la que montar el volumen de host.

Tipo: cadena

Obligatorio: sí, si se utiliza mountPoints.

readOnly

Si este valor es true, el acceso del contenedor al volumen es de solo lectura. Si este valor es false, el contenedor puede escribir en el volumen.

Tipo: Booleano

Obligatorio: no

Valor predeterminado: False

networkConfiguration

La configuración de red para los trabajos que se ejecutan en recursos de Fargate. Los trabajos que se ejecutan en los recursos de EC2 no deben especificar este parámetro.

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

Tipo: matriz de objetos

Requerido: no

assignPublicIp

Indica si el trabajo tiene una dirección IP pública. Esto es obligatorio si el trabajo requiere acceso a la red saliente.

Tipo: cadena

Valores válidos: ENABLED | DISABLED

Obligatorio: no

Valor predeterminado: DISABLED

privileged

Cuando este parámetro es verdadero, al contenedor se le conceden permisos elevados en la instancia de contenedor de host, similares a los de un usuario root. Este parámetro se corresponde con Privileged en la sección Crear un contenedor de la API remota de Docker y con la opción --privileged de docker run. Este parámetro no es aplicable a trabajos que se ejecutan en recursos de Fargate. No lo proporcione ni lo especifique como falso.

"privileged": true|false

Tipo: Booleano

Obligatorio: no

readonlyRootFilesystem

Cuando este parámetro es verdadero, al contenedor se le concede acceso de solo lectura a su sistema de archivos raíz. Este parámetro se corresponde con ReadonlyRootfs en la sección Crear un contenedor de la API remota de Docker y con la opción --read-only de docker run.

"readonlyRootFilesystem": true|false

Tipo: Booleano

Obligatorio: no

resourceRequirements

El tipo y la cantidad de un recurso para asignar a un contenedor. Los recursos admitidos incluyen GPU, MEMORY, y VCPU.

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

Tipo: matriz de objetos

Obligatorio: no

type

El tipo de recurso para asignar a un contenedor. Los recursos admitidos incluyen GPU, MEMORY, y VCPU.

Tipo: cadena

Obligatorio: sí, si se utiliza resourceRequirements.

value

La cantidad del recurso especificado que se va a reservar para el contenedor. Los valores varían en función del type especificado.

type=“GPU”

El número de unidades GPU físicas que reservar para el contenedor. El número de unidades GPU reservadas para todos los contenedores de una tarea no puede superar el número de GPU disponibles en el recurso de computación en el que se lanza la tarea.

type=“MEMORY”

El límite máximo (en MiB) de memoria a presentar al contenedor. Si su contenedor intenta superar la memoria especificada aquí, el contenedor se cancela. Este parámetro se corresponde con Memory en la sección Create a container (Crear un contenedor) de la API remota de Docker y la opción --memory se corresponde con docker run. Debe especificar al menos 4 MiB de memoria para un trabajo. Es obligatorio, pero se puede especificar en varios lugares para trabajos paralelos de varios nodos (MNP). Debe especificarse para cada nodo al menos una vez. Este parámetro se corresponde con Memory en la sección Create a container (Crear un contenedor) de la API remota de Docker y la opción --memory se corresponde con docker run.

nota

Si está intentando maximizar la utilización de los recursos proporcionando a las tareas la mayor cantidad de memoria posible para un tipo de instancia determinado, consulte Administración de la memoria de recurso de computación.

Para los trabajos que se ejecutan en recursos de Fargate, value debe coincidir con uno de los valores admitidos. Además, el valor de VCPU debe ser uno de los valores compatibles con el valor de memoria correspondiente.

VCPU MEMORY

0,25 vCPU

512, 1024 y 2048 MiB

0,5 vCPU

1024-4096 MiB en incrementos de 1024 MiB

1 vCPU

2048-8192 MiB en incrementos de 1024 MiB

2 vCPU

4096-16 384 MiB en incrementos de 1024 MiB

4 vCPU

8192-30 720 MiB en incrementos de 1024 MiB

8 vCPU

16 384-61 440 MiB en incrementos de 4096 MiB

16 vCPU

32 768-122 880 MiB en incrementos de 8192 MiB

type=“VCPU”

El número de vCPU reservado para el trabajo. Este parámetro se corresponde con CpuShares en la sección Create a container (Crear un contenedor) de la API remota de Docker y la opción --cpu-shares se corresponde con docker run. Cada vCPU es equivalente a 1 024 cuotas de CPU. Para los trabajos que se ejecutan en recursos EC2, debe especificar al menos una vCPU. Es obligatorio, pero se puede especificar en varias ubicaciones. Debe especificarse para cada nodo al menos una vez.

Para los trabajos que se ejecutan en recursos de Fargate, value debe coincidir con uno de los valores admitidos, y los valores de MEMORY deben ser uno de los valores admitidos para ese valor de vCPU. Los valores admitidos son 0.25, 0.5, 1, 2, 4, 8 y 16.

El valor predeterminado para la cuota de recuento de recursos de vCPU bajo demanda de Fargate es de 6 vCPU. Para más información sobre las cuotas de Fargate, consulte AWS Cuotas de Fargate en Referencia general de Amazon Web Services.

Tipo: cadena

Obligatorio: sí, si se utiliza resourceRequirements.

secrets

Los secretos del trabajo que se exponen como variables de entorno. Para obtener más información, consulte Especificar información confidencial.

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

Tipo: matriz de objetos

Requerido: no

name

El nombre de la variable de entorno que contiene el secreto.

Tipo: cadena

Obligatorio: sí, si se utiliza secrets.

valueFrom

El secreto para exponer en el contenedor. Los valores admitidos son el nombre de recurso de Amazon (ARN) completo del secreto del Secrets Manager o el ARN completo del parámetro en el almacén de parámetros SSM.

nota

Si el parámetro del almacén de parámetros SSM está en la misma Región de AWS que el trabajo que se va a lanzar, se puede utilizar el ARN completo o el nombre del parámetro. Si el parámetro existe en una región distinta, el ARN completo debe especificarse.

Tipo: cadena

Obligatorio: sí, si se utiliza secrets.

ulimits

Una lista de valores para ulimits a definir en el contenedor. Este parámetro se corresponde con Ulimits en la sección Crear un contenedor de la API remota de Docker y con la opción --ulimit de docker run.

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

Tipo: matriz de objetos

Obligatorio: no

name

El valor type de ulimit.

Tipo: cadena

Obligatorio: sí, si se utiliza ulimits.

hardLimit

El límite máximo para el tipo de ulimit.

Tipo: entero

Obligatorio: sí, si se utiliza ulimits.

softLimit

El límite flexible para el tipo de ulimit.

Tipo: entero

Obligatorio: sí, si se utiliza ulimits.

user

El nombre de usuario que utilizar dentro del contenedor. Este parámetro se corresponde con User en la sección Crear un contenedor de la API remota de Docker y con la opción --user de docker run.

"user": "string"

Tipo: cadena

Obligatorio: no

vcpus

Este parámetro ha quedado obsoleto, utilice resourceRequirements en su lugar.

El número de vCPU reservado para el contenedor.

Como ejemplo sobre el uso de resourceRequirements, si la definición de su trabajo contiene líneas similares a las siguientes:

"containerProperties": { "vcpus": 2 }

Las líneas equivalentes que utilizan resourceRequirements son las siguientes.

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

Tipo: entero

Obligatorio: sí

volumes

Al registrar una definición de trabajos, puede especificar una lista de los volúmenes que se pasan al daemon de Docker en una instancia de contenedor. Los siguientes parámetros están permitidos en las propiedades de contenedor:

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

El nombre del volumen. Se admiten hasta 255 letras (mayúsculas y minúsculas), números, guiones y caracteres de subrayado. Se hace referencia a este nombre en el parámetro sourceVolume de la definición de contenedor mountPoints.

Tipo: cadena

Obligatorio: no

host

El contenido del parámetro host determina si el volumen de datos persiste en la instancia de contenedor del host y dónde se almacena. Si el parámetro host está vacío, el daemon de Docker le asigna una ruta de host al volumen de datos. Sin embargo, no se garantiza que los datos persistan después de que el contenedor asociado deje de funcionar.

nota

Este parámetro no es aplicable a trabajos que se ejecutan en recursos de Fargate.

Tipo: objeto

Requerido: no

sourcePath

La ruta de la instancia de contenedor del host que se le presenta al contenedor. Si este parámetro está vacío, el daemon de Docker asigna una ruta de host.

Si el parámetro host contiene una ubicación de ubicación de archivos sourcePath, el volumen de datos persiste en la ubicación especificada en la instancia de contenedor del host hasta que la elimine manualmente. Si el valor sourcePath no existe en la instancia de contenedor del host, el daemon de Docker la crea. Si la ubicación existe, el contenido de la carpeta de la ruta de origen se exporta.

Tipo: cadena

Requerido: no

efsVolumeConfiguration

Este parámetro se especifica cuando se utiliza un sistema de archivos de Amazon Elastic File System para el almacenamiento de tareas. Para obtener más información, consulte Volúmenes de Amazon EFS.

Tipo: objeto

Requerido: no

authorizationConfig

Los detalles de configuración de autorización en el sistema de archivos de Amazon EFS.

Tipo: cadena

Requerido: no

accessPointId

El ID del punto de acceso de Amazon EFS que se va a utilizar. Si se especifica un punto de acceso, el valor del directorio raíz que se especifica en EFSVolumeConfiguration debe omitirse o establecerse en /. Esto impone la ruta establecida en el punto de acceso de EFS. Si se utiliza un punto de acceso, el cifrado de tránsito debe estar habilitado en el EFSVolumeConfiguration. Para obtener más información, consulte Trabajo con puntos de acceso de Amazon EFS en la Guía del usuario de Amazon Elastic File System.

Tipo: cadena

Requerido: no

iam

Determina si se utiliza o no el rol de IAM de trabajos de AWS Batch establecido en una definición de trabajo al montar el sistema de archivos de Amazon EFS. Si está habilitado, el cifrado de tránsito debe estar habilitado en el EFSVolumeConfiguration. Si se omite este parámetro, se usa el valor predeterminado de DISABLED. Para obtener más información, consulte Uso de puntos de acceso de Amazon EFS.

Tipo: cadena

Valores válidos: ENABLED | DISABLED

Obligatorio: no

fileSystemId

El ID del sistema de archivos de Amazon EFS que se va a usar.

Tipo: cadena

Obligatorio: no

rootDirectory

Directorio del sistema de archivos de Amazon EFS que se va a montar como directorio raíz dentro del host. Si se omite este parámetro, se utiliza la raíz del volumen de Amazon EFS. Si especifica /, se obtiene el mismo efecto que si se omite este parámetro. La longitud máxima es de 4096 caracteres.

importante

Si se especifica un punto de acceso de EFS en el authorizationConfig, se debe omitir el parámetro del directorio raíz o establecerlo en /. Esto impone la ruta establecida en el punto de acceso de Amazon EFS.

Tipo: cadena

Obligatorio: no

transitEncryption

Determina si se habilita el cifrado de los datos en tránsito de Amazon EFS entre el host de Amazon ECS y el servidor de Amazon EFS. El cifrado en tránsito debe estar habilitado si se utiliza la autorización de IAM en Amazon EFS. Si se omite este parámetro, se usa el valor predeterminado de DISABLED. Para obtener más información, consulte Cifrado de datos en tránsito en la Guía del usuario de Amazon Elastic File System.

Tipo: cadena

Valores válidos: ENABLED | DISABLED

Obligatorio: no

transitEncryptionPort

El puerto que se utilizará al enviar datos cifrados entre el host de Amazon ECS y el servidor de Amazon EFS. Si no se especifica un puerto de cifrado en tránsito, se emplea la estrategia de selección de puertos que utiliza el ayudante de montaje de Amazon EFS. Este valor debe estar entre 0 y 65 535. Para obtener más información, consulte Ayudante de montaje de EFS en la Guía del usuario de Amazon Elastic File System.

Tipo: entero

Requerido: no

Propiedades de Amazon EKS

Un objeto con diversas propiedades específicas para los trabajos basados en Amazon EKS. No se puede especificar para definiciones de trabajo basadas en Amazon ECS.

podProperties

Las propiedades de los recursos del pod de Kubernetes de un trabajo.

Tipo: objeto EksPodProperties

Obligatorio: no

containers

Las propiedades del contenedor que se utiliza en el pod de Amazon EKS.

Tipo: objeto EksContainer

Obligatorio: no

args

Una matriz de argumentos para el punto de entrada. Si no se especifica, se utiliza el CMD de la imagen de contenedor. Esto corresponde al miembro args en la parte Punto de entrada del Pod en Kubernetes. Las referencias de variables de entorno se expanden mediante el entorno del contenedor.

Si la variable de entorno a la que se hace referencia no existe, la referencia en el comando no cambia. Por ejemplo, si la referencia es “$(NAME1)” y la variable de entorno NAME1 no existe, la cadena de comando seguirá siendo “$(NAME1)”. $$ se reemplaza por $, y la cadena resultante no se expande. Por ejemplo, $$(VAR_NAME) se pasa como $(VAR_NAME), ya sea que existe o no la variable de entorno VAR_NAME. Para obtener más información, consulte CMD en la Referencia de Dockerfile y Definición de un comando y los argumentos para un pod en la documentación de Kubernetes.

Tipo: matriz de cadenas

Obligatorio: no

command

El punto de entrada para el contenedor. Esto no se ejecuta dentro de un intérprete de comandos. Si no se especifica, se utiliza el ENTRYPOINT de la imagen de contenedor. Las referencias de variables de entorno se expanden mediante el entorno del contenedor.

Si la variable de entorno a la que se hace referencia no existe, la referencia en el comando no cambia. Por ejemplo, si la referencia es “$(NAME1)” y la variable de entorno NAME1 no existe, la cadena de comando seguirá siendo “$(NAME1)”. $$ se reemplaza por $, y la cadena resultante no se expande. Por ejemplo, $$(VAR_NAME) se pasará como $(VAR_NAME), ya sea que existe o no la variable de entorno VAR_NAME. El punto de entrada no se puede actualizar. Para obtener más información, consulte PUNTO DE ENTRADA en la Referencia de Dockerfile y Definición de un comando y los argumentos para un contenedor y Punto de entrada en la documentación de Kubernetes.

Tipo: matriz de cadenas

Obligatorio: no

env

Las variables de entorno a transferir a un contenedor.

nota

Las variables de entorno no pueden empezar por “AWS_BATCH”. Esta convención de nomenclatura está reservada para las variables que establece AWS Batch.

Tipo: matriz de objetos EksContainerEnvironmentVariable

Obligatorio: no

name

El nombre de la variable de entorno.

Tipo: cadena

Obligatorio: sí

value

El valor de la variable de entorno.

Tipo: cadena

Obligatorio: no

image

La imagen de Docker que se utiliza para iniciar el contenedor.

Tipo: cadena

Obligatorio: sí

imagePullPolicy

La política de extracción de imágenes para el contenedor. Los valores admitidos son Always, IfNotPresent y Never. El valor predeterminado de este parámetro es IfNotPresent. Sin embargo, si se especifica la etiqueta :latest, el valor predeterminado es Always. Para obtener más información, consulte Actualización de imágenes en la documentación de Kubernetes.

Tipo: cadena

Obligatorio: no

name

El nombre del contenedor. Si no se especifica el nombre, el nombre predeterminado es “Default”. Cada contenedor de un pod debe tener un nombre único.

Tipo: cadena

Obligatorio: no

resources

El tipo y la cantidad de recursos para asignar a un contenedor. Los recursos admitidos incluyen memory, cpu, y nvidia.com/gpu. Para obtener más información, consulte Administración de recursos para pods y contenedores en la documentación de Kubernetes.

Tipo: objeto EksContainerResourceRequirements

Obligatorio: no

limits

El tipo y la cantidad de recursos que se reservan para el contenedor. Los valores varían en función del name que se especifica. Los recursos se pueden solicitar mediante los limits o los objetos requests.

memoria

El límite máximo de memoria (en MiB) para el contenedor, mediante números enteros, con un sufijo “Mi”. Si su contenedor intenta superar la memoria especificada aquí, se cancela el contenedor. Debe especificar al menos 4 MiB de memoria para un trabajo. memory se puede especificar en limits, requests o en ambos. Si memory se especifica en ambos lugares, el valor especificado en limits debe ser igual al valor especificado en requests.

nota

Para maximizar el uso de los recursos, proporcione a los trabajos la mayor cantidad de memoria posible para el tipo de instancia específico que se está utilizando. Para saber cómo hacerlo, consulte Administración de la memoria de recurso de computación.

cpu

La cantidad de CPU reservadas para el contenedor. Los valores deben ser múltiplos pares de 0.25. cpu se puede especificar en limits, requests o en ambos. Si cpu se especifica en ambos lugares, el valor especificado en limits debe ser tan grande como el valor especificado en requests.

nvidia.com/gpu

La cantidad de GPU reservadas para el contenedor. Los valores deben ser números enteros. memory se puede especificar en limits, requests o en ambos. Si memory se especifica en ambos lugares, el valor especificado en limits debe ser igual al valor especificado en requests.

Tipo: mapa de cadena a cadena

Limitaciones de longitud de los valores: longitud mínima de 1. La longitud máxima es de 256 caracteres.

Requerido: no

requests

El tipo y la cantidad de recursos que se solicitan para el contenedor. Los valores varían en función del name que se especifica. Los recursos se pueden solicitar mediante los limits o los objetos requests.

memoria

El límite máximo de memoria (en MiB) para el contenedor, mediante números enteros, con un sufijo “Mi”. Si su contenedor intenta superar la memoria especificada aquí, se cancela el contenedor. Debe especificar al menos 4 MiB de memoria para un trabajo. memory se puede especificar en limits, requests o en ambos. Si memory se especifica en ambos, el valor especificado en limits debe ser igual al valor especificado en requests.

nota

Si está intentando maximizar la utilización de los recursos proporcionando a las tareas la mayor cantidad de memoria posible para un tipo de instancia determinado, consulte Administración de la memoria de recurso de computación.

cpu

La cantidad de CPU reservadas para el contenedor. Los valores deben ser múltiplos pares de 0.25. cpu se puede especificar en limits, requests o en ambos. Si cpu se especifica en ambos, el valor especificado en limits debe ser tan grande como el valor especificado en requests.

nvidia.com/gpu

La cantidad de GPU reservadas para el contenedor. Los valores deben ser números enteros. nvidia.com/gpu se puede especificar en limits, requests o en ambos. Si nvidia.com/gpu se especifica en ambos, el valor especificado en limits debe ser igual al valor especificado en requests.

Tipo: mapa de cadena a cadena

Limitaciones de longitud de los valores: longitud mínima de 1. La longitud máxima es de 256 caracteres.

Requerido: no

securityContext

El contexto de seguridad para un trabajo. Para obtener más información, consulte Configuración de un contexto de seguridad para un pod o un contenedor en la documentación de Kubernetes.

Tipo: objeto EksContainerSecurityContext

Requerido: no

privileged

Cuando este parámetro es true, al contenedor se le conceden permisos elevados en la instancia de contenedor de host. El nivel de permisos es similar al de los permisos de usuario root. El valor predeterminado es false. Este parámetro se asigna a la política privileged de Políticas de seguridad de pod privilegiados en la documentación de Kubernetes.

Tipo: Booleano

Obligatorio: no

readOnlyRootFilesystem

Cuando este parámetro es true, al contenedor se le concede acceso de solo lectura al sistema de archivos raíz. El valor predeterminado es false. Este parámetro se asigna a la política ReadOnlyRootFilesystem de Políticas de seguridad de pods de sistemas de archivos y volúmenes en la documentación de Kubernetes.

Tipo: Booleano

Obligatorio: no

runAsGroup

Cuando se especifica este parámetro, el contenedor se ejecuta como el ID del grupo especificado (gid). Si no se especifica este parámetro, el valor predeterminado es el grupo que se especifica en los metadatos de la imagen. Este parámetro se asigna a las políticas RunAsGroup y MustRunAs de Políticas de seguridad de pods de grupos y usuarios en la documentación de Kubernetes.

Tipo: largo

Obligatorio: no

runAsNonRoot

Cuando se especifica este parámetro, el contenedor se ejecuta como un usuario con un uid distinto de 0. Si no se especifica este parámetro, se aplica la regla mencionada. Este parámetro se asigna a las políticas RunAsUser y MustRunAsNonRoot de Políticas de seguridad de pods de grupos y usuarios en la documentación de Kubernetes.

Tipo: largo

Obligatorio: no

runAsUser

Cuando se especifica este parámetro, el contenedor se ejecuta como el ID del usuario especificado (uid). Si no se especifica este parámetro, el valor predeterminado es el usuario que se especifica en los metadatos de la imagen. Este parámetro se asigna a las políticas RunAsUser y MustRanAs de Políticas de seguridad de pods de grupos y usuarios en la documentación de Kubernetes.

Tipo: largo

Obligatorio: no

volumeMounts

El volumen se monta para un contenedor para un trabajo de Amazon EKS. Para obtener más información sobre los volúmenes y los montajes de volúmenes en Kubernetes, consulte Volúmenes en la documentación de Kubernetes.

Tipo: matriz de objetos EksContainerVolumeMount

Obligatorio: no

mountPath

La ruta en el contenedor donde se monta el volumen.

Tipo: cadena

Obligatorio: no

name

El nombre del montaje de volumen. Debe coincidir con el nombre de uno de los volúmenes del pod.

Tipo: cadena

Obligatorio: no

readOnly

Si este valor es true, el acceso del contenedor al volumen es de solo lectura. De lo contrario, el contenedor puede escribir en el volumen. El valor predeterminado es false.

Tipo: Booleano

Obligatorio: no

dnsPolicy

La política de DNS del pod. El valor predeterminado es ClusterFirst. Si no se especifica el parámetro hostNetwork, el valor predeterminado es ClusterFirstWithHostNet. ClusterFirst indica que cualquier consulta de DNS que no coincida con el sufijo de dominio del clúster configurado se reenvía al servidor de nombres ascendente heredado del nodo. Si no se especificó ningún valor para dnsPolicy en la operación de API RegisterJobDefinition, las operaciones de API DescribeJobDefinitions o DescribeJobs no devuelven ningún valor para dnsPolicy. La configuración de las especificaciones del pod contendrá ClusterFirst o ClusterFirstWithHostNet, según el valor del parámetro hostNetwork. Para obtener más información, consulte Política de DNS del pod en la documentación de Kubernetes.

Valores válidos: Default | ClusterFirst | ClusterFirstWithHostNet

Tipo: cadena

Obligatorio: no

hostNetwork

Indica si el pod utiliza la dirección IP de red de los hosts. El valor predeterminado es true. Cuando se establece en false, se activa el modelo de red de pods de Kubernetes. La mayoría de las cargas de trabajo de AWS Batch son únicamente de salida y no requieren la sobrecarga de asignación de IP para cada pod para las conexiones entrantes. Para obtener más información, consulte Espacios de nombres de hosts y Redes de pods en la documentación de Kubernetes.

Tipo: Booleano

Obligatorio: no

serviceAccountName

El nombre de la cuenta de servicio que se utiliza para ejecutar el pod. Para obtener más información, consulte Cuentas de servicio de Kubernetes y Configuración de una cuenta de servicio de Kubernetes para asumir un rol de IAM en la Guía del usuario de Amazon EKS y Configuración de cuentas de servicio para pods en la documentación de Kubernetes.

Tipo: cadena

Obligatorio: no

volumes

Especifica los volúmenes para una definición de trabajo que utiliza recursos de Amazon EKS.

Tipo: matriz de objetos EksVolume

Obligatorio: no

emptyDir

Especifica la configuración de un volumen de Kubernetes emptyDir. Un volumen emptyDir se crea por primera vez cuando se asigna un pod a un nodo. Existe mientras ese pod se ejecuta en ese nodo. Al principio, el volumen emptyDir está vacío. Todos los contenedores del pod pueden leer y escribir los archivos del volumen emptyDir. Sin embargo, el volumen emptyDir se puede montar en la misma ruta o en rutas diferentes en cada contenedor. Cuando por algún motivo se elimina un pod de un nodo, los datos de emptyDir se eliminan de manera permanente. Para obtener más información, consulte emptyDir en la documentación de Kubernetes.

Tipo: objeto EksEmptyDir

Obligatorio: no

medium

El medio para almacenar el volumen. El valor predeterminado es una cadena vacía, que utiliza el almacenamiento del nodo.

""

(Predeterminado) Utilice el almacenamiento en disco del nodo.

“Memoria”

Utilice el volumen tmpfs respaldado por la RAM del nodo. El contenido del volumen se pierde cuando el nodo se reinicia, y cualquier almacenamiento en el volumen cuenta respecto del límite de memoria del contenedor.

Tipo: cadena

Obligatorio: no

sizeLimit

El tamaño máximo del volumen. De forma predeterminada, no hay un tamaño máximo definido.

Tipo: cadena

Limitaciones de longitud: longitud mínima de 1. La longitud máxima es de 256 caracteres.

Obligatorio: no

hostPath

Especifica la configuración de un volumen de Kubernetes hostPath. Un volumen hostPath monta un archivo o un directorio existente del sistema de archivos del nodo host en el pod. Para obtener más información, consulte hostPath en la documentación de Kubernetes.

Tipo: objeto EksHostPath

Obligatorio: no

path

La ruta del archivo o del directorio en el host para montar en contenedores en el pod.

Tipo: cadena

Obligatorio: no

name

El nombre del volumen. El nombre debe estar permitido como nombre de subdominio de DNS. Para obtener más información, consulte Nombres de subdominio de DNS en la documentación de Kubernetes.

Tipo: cadena

Obligatorio: sí

secreta

Especifica la configuración de un volumen de Kubernetes secret. Para obtener más información, consulte secreto en la documentación de Kubernetes.

Tipo: objeto EksSecret

Obligatorio: no

opcional

Especifica si se deben definir el secreto o las claves del secreto.

Tipo: Booleano

Obligatorio: no

secretName

El nombre del secreto. El nombre debe estar permitido como nombre de subdominio de DNS. Para obtener más información, consulte Nombres de subdominio de DNS en la documentación de Kubernetes.

Tipo: cadena

Obligatorio: sí

Capacidades de plataforma

platformCapabilities

Las capacidades de plataforma requeridas por la definición de trabajo. Si no se especifica ningún valor, el valor predeterminado es EC2. Para los trabajos que se ejecutan en recursos de Fargate, se especifica FARGATE.

nota

Si el trabajo se ejecuta en recursos de Amazon EKS, entonces no debe especificar platformCapabilities.

Tipo: cadena

Valores válidos: EC2 | FARGATE

Obligatorio: no

Propagar etiquetas

propagateTags

Especifica si se van a propagar las etiquetas desde el trabajo o la definición del trabajo a la tarea de Amazon ECS correspondiente. Si no se especifica ningún valor, las etiquetas no se propagan. Las etiquetas solo se pueden propagar a las tareas cuando se crea la tarea. En el caso de etiquetas con el mismo nombre, las etiquetas de trabajo tienen prioridad sobre las etiquetas de definiciones de trabajo. Si el número total de etiquetas combinadas del trabajo y la definición del trabajo es superior a 50, el trabajo se mueve al estado FAILED.

nota

Si el trabajo se ejecuta en recursos de Amazon EKS, entonces no debe especificar propagateTags.

Tipo: Booleano

Obligatorio: no

Propiedades del nodo

nodeProperties

Al registrar una definición de trabajo paralelo de varios nodos, debe especificar una lista de propiedades de nodos. Estas propiedades de los nodos definen el número de nodos que se van a utilizar en el trabajo, el índice de nodos principales y los diferentes rangos de nodos que se van a utilizar. Si el trabajo se ejecuta en recursos de Fargate, no puede especificar nodeProperties. En su lugar, utilice containerProperties. En una definición de trabajo, se permiten las siguientes propiedades de nodo. Para obtener más información, consulte Trabajos paralelos de varios nodos.

nota

Si el trabajo se ejecuta en recursos de Amazon EKS, entonces no debe especificar nodeProperties.

Tipo: objeto NodeProperties

Obligatorio: no

mainNode

Especifica el índice de nodo del nodo principal de un trabajo paralelo de varios nodos. Este valor de índice de nodo debe ser más pequeño que la cantidad de nodos.

Tipo: entero

Obligatorio: sí

numNodes

La cantidad de nodos que están asociados a un trabajo paralelo de varios nodos.

Tipo: entero

Obligatorio: sí

nodeRangeProperties

Una lista de rangos de nodos y sus propiedades que están asociados a un trabajo paralelo de varios nodos.

nota

Un grupo de nodos es un conjunto de nodos de trabajo idénticos que comparten las mismas propiedades de contenedor. Puede utilizar AWS Batch para especificar hasta cinco grupos de nodos distintos para cada trabajo.

Tipo: matriz de objetos NodeRangeProperty

Obligatorio: sí

targetNodes

El rango de nodos, utilizando valores de índice de nodo. Un rango de 0:3 indica nodos con valores de índice de 0 a 3. Si se omite el valor inicial del rango (:n), se utiliza 0 para iniciar el rango. Si se omite el valor final del rango (n:), se utiliza el índice de nodo más alto posible para finalizar el rango. Los rangos de nodos acumulativos deben tener en cuenta todos los nodos (0:n). Puede anidar rangos de nodos, por ejemplo, 0:10 y 4:5. Para este caso, las propiedades del rango 4:5 anulan las propiedades de 0:10.

Tipo: cadena

Obligatorio: no

container

Los detalles del contenedor del rango de nodos. Para obtener más información, consulte Propiedades de contenedor.

Tipo: objeto ContainerProperties

Obligatorio: no

Estrategia de reintento

retryStrategy

Al registrar una definición de trabajo, se puede especificar una estrategia de reintento para aplicarla a los trabajos fallidos que se envíen con esta definición de trabajo. Cualquier estrategia de reintento que se especifique durante una operación SubmitJob anula la estrategia de reintento definida aquí. De forma predeterminada, cada trabajo se intenta una vez. Si especifica más de un intento, el trabajo se vuelve a intentar si falla. Algunos ejemplos de intentos fallidos son que el trabajo devuelva un código de salida distinto de cero o que la instancia de contenedor se termine. Para obtener más información, consulte Reintentos automáticos de trabajo.

Tipo: objeto RetryStrategy

Obligatorio: no

attempts

La cantidad de veces que toma pasar un trabajo al estado RUNNABLE. Puede especificar entre 1 y 10 intentos. Si attempts es mayor que uno y el envío del trabajo falla, se reintenta tantas veces como se haya especificado hasta que pase a RUNNABLE.

"attempts": integer

Tipo: entero

Obligatorio: no

evaluateOnExit

Matriz de hasta 5 objetos que especifican las condiciones según las que el trabajo se vuelve a intentar o falla. Si se especifica este parámetro, entonces también debe especificarse el parámetro attempts. Si evaluateOnExit se especifica pero ninguna de las entradas coincide, se vuelve a intentar el trabajo.

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

Tipo: matriz de objetos EvaluateOnExit

Obligatorio: no

action

Especifica la acción que se debe realizar si se cumplen todas las condiciones especificadas (onStatusReason, onReason y onExitCode). Los valores no distinguen entre mayúsculas y minúsculas.

Tipo: cadena

Obligatorio: sí

Valores válidos: RETRY | EXIT

onExitCode

Contiene un patrón global para que coincida con la representación decimal del ExitCode devuelto para un trabajo. El patrón puede tener 512 caracteres como máximo. Solo puede contener números. No puede contener letras ni caracteres especiales. Opcionalmente, puede terminar con un asterisco (*) para que solo el inicio de la cadena tenga que ser una coincidencia exacta.

Tipo: cadena

Obligatorio: no

onReason

Contiene un patrón global para que coincida con el Reason devuelto para un trabajo. El patrón puede tener 512 caracteres como máximo. Puede tener letras, números, puntos (.), dos puntos (:) y espacios en blanco (espacios, pestañas). Opcionalmente, puede terminar con un asterisco (*) para que solo el inicio de la cadena tenga que ser una coincidencia exacta.

Tipo: cadena

Obligatorio: no

onStatusReason

Contiene un patrón global para que coincida con el StatusReason devuelto para un trabajo. El patrón puede tener 512 caracteres como máximo. Puede tener letras, números, puntos (.), dos puntos (:) y espacios en blanco (espacios, pestañas). Opcionalmente, puede terminar con un asterisco (*) para que solo el inicio de la cadena tenga que ser una coincidencia exacta.

Tipo: cadena

Obligatorio: no

Prioridad de programación

schedulingPriority

La prioridad de programación de los trabajos que se enviaron con esta definición de trabajo. Esto solo afecta a las colas de trabajo con una política de reparto justo. Los trabajos con una prioridad de programación más alta se programan antes que los trabajos con una prioridad de programación más baja.

El valor mínimo admitido es 0 y el valor máximo admitido es 9999.

Tipo: entero

Obligatorio: no

Etiquetas

tags

Etiquetas de pares clave-valor para asociarlas a la definición del trabajo. Para obtener más información, consulte Etiquetar los recursos de AWS Batch.

Tipo: mapa de cadena a cadena

Obligatorio: no

Tiempo de espera

timeout

Puede configurar una duración de tiempo de espera para sus trabajos de modo que si un trabajo se ejecuta durante más tiempo, AWS Batch lo finaliza. Para obtener más información, consulte Tiempos de espera de trabajo. Si un trabajo se termina debido a que se ha agotado el tiempo de espera, no se vuelve a intentar. Cualquier configuración de tiempo de espera que se especifique durante una operación SubmitJob sustituye la configuración de tiempo de espera definida aquí. Para obtener más información, consulte Tiempos de espera de trabajo.

Tipo: objeto JobTimeout

Obligatorio: no

attemptDurationSeconds

La duración en segundos (medida a partir de la marca de tiempo startedAt del intento de trabajo) después de la cual AWS Batch termina los trabajos pendientes. El valor mínimo del tiempo de espera es 60 segundos.

En el caso de los trabajos de matriz, el tiempo de espera se aplica a los trabajos secundarios, no al trabajo de matriz principal.

En el caso de los trabajos paralelos de varios nodos (MNP), el tiempo de espera se aplica a todo el trabajo, no a los nodos individuales.

Tipo: entero

Obligatorio: no