

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Creación de una definición de trabajo de un solo nodo
<a name="create-job-definition"></a>

Antes de poder ejecutar trabajos AWS Batch, debe crear una definición de trabajo. Este proceso varía ligeramente para los trabajos paralelos entre un solo nodo y de varios nodos. Este tema trata específicamente sobre cómo crear una definición de trabajo para un AWS Batch trabajo que no es un trabajo paralelo de varios nodos (también conocido como *programación de bandas*).

Puede crear una definición de trabajo paralelo de varios nodos en los recursos de Amazon Elastic Container Service. Para obtener más información, consulte [Creación de una definición de trabajo paralelo de varios nodos](create-multi-node-job-def.md). 

**Topics**
+ [Creación de una definición de trabajo de un solo nodo en los recursos de Amazon EC2](create-job-definition-EC2.md)
+ [Creación de una definición de trabajo de un solo nodo en los recursos de Fargate](create-job-definition-Fargate.md)
+ [Creación de una definición de trabajo de un solo nodo en los recursos de Amazon EKS](create-job-definition-eks.md)
+ [Creación de una definición de trabajo de un solo nodo con varios contenedores en los recursos de Amazon EC2](create-job-definition-single-node-multi-container.md)

# Creación de una definición de trabajo de un solo nodo en los recursos de Amazon EC2
<a name="create-job-definition-EC2"></a>

Siga estos pasos para crear una definición de trabajo de un solo nodo en recursos de Amazon Elastic Compute Cloud (Amazon EC2).

**Para crear una nueva definición de trabajo en los recursos de Amazon EC2:**

1. Abra la AWS Batch consola en. [https://console.aws.amazon.com/batch/](https://console.aws.amazon.com/batch/)

1. En la barra de navegación, elija la Región de AWS que desee utilizar.

1. En el panel de navegación izquierdo, seleccione **Definiciones de trabajos**.

1. Seleccione **Creación de**.

1. Para el **Tipo de orquestación,** seleccione **Amazon Elastic Compute Cloud (Amazon EC2).**

1. Para la **Configuración de la plataforma EC2**, desactive **Habilitar el procesamiento paralelo de varios nodos**.

1. En **Nombre**, escriba un nombre único para la definición de trabajo. 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 (\$1).

1. (Opcional) En **Tiempo de espera de ejecución**, introduzca el valor del tiempo de espera (en segundos). El tiempo de espera de ejecución es el tiempo que transcurre antes de que finalice un trabajo pendiente. Si un intento supera la duración del tiempo de espera, el intento se detiene y pasa a un estado `FAILED`. Para obtener más información, consulte [Tiempos de espera de trabajo](job_timeouts.md). El valor mínimo es de 60 segundos.

1. (Opcional) Activa la **Prioridad de programación**. Introduzca un valor de prioridad de programación entre 0 y 100. Los valores más altos tienen mayor prioridad.

1. (Opcional) En **Intentos de trabajo**, introduzca el número de veces que AWS Batch intenta mover el trabajo al estado `RUNNABLE`. Ingrese un número entero entre 1 y 10.

1. (Opcional) Para las **Condiciones de la estrategia de reintento**, seleccione **Agregar evaluación al salir**. Introduzca al menos un valor de parámetro y, a continuación, elija una **Acción**. Para cada conjunto de condiciones, la **Acción** debe estar configurada como **Reintentar** o **Salir**. Estas acciones significan lo siguiente:
   + **Reintentar**: AWS Batch se vuelve a intentar hasta alcanzar el número de intentos de trabajo que especificó.
   + **Salir**: AWS Batch deja de volver a intentar el trabajo.
**importante**  
Si elige **Agregar evaluar al salir**, debe configurar al menos un parámetro y elegir una **Acción** o **Eliminar evaluar al salir**.

1. (Opcional) Amplíe **Etiquetas** y, a continuación, elija **Agregar etiqueta** para agregar etiquetas al recurso. Elija **Agregar nueva etiqueta** e introduzca la clave y el valor opcional.

1. (Opcional) Active **Propagar etiquetas** para propagar etiquetas desde el trabajo y la definición del trabajo a la tarea de Amazon ECS.

1. Seleccione **Página siguiente**.

1. En la sección **Configuración del contenedor**:

   1. En **Imagen**, elija la imagen Docker que desea utilizar para su trabajo. De manera predeterminada, las imágenes del registro de Docker Hub están disponibles. También es posible especificar otros repositorios con `repository-url/image:tag`. El nombre puede tener una longitud máxima de 225 caracteres. Puede contener letras mayúsculas y minúsculas, números, guiones medios (-), guiones bajos (\$1), dos puntos (:), barras inclinadas (/) y signos numéricos (\$1). Este parámetro se asigna a `Image` en la sección [Creación de un contenedor](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) de la [API remota de Docker](https://docs.docker.com/engine/api/v1.38/) y el parámetro `IMAGE` de [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/).
**nota**  
La arquitectura de la imagen de Docker debe coincidir con la arquitectura del procesador de los recursos informáticos en las que estén programadas. Por ejemplo, las imágenes de Docker basadas en ARM solo se pueden ejecutar en recursos informáticos 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 clasifican 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`).

   1. En **Comando**, ingrese los comandos en el campo como su equivalente de matriz de cadenas **JSON**.

      Este parámetro se asigna a `Cmd` en la sección [Creación de un contenedor](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) de la [API remota de Docker](https://docs.docker.com/engine/api/v1.38/) y el parámetro `COMMAND` se corresponde con [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/). [Para obtener más información sobre el Docker`CMD` parámetro, consulta https://docs.docker.com/engine/ reference/builder/ \$1cmd.](https://docs.docker.com/engine/reference/builder/#cmd)
**nota**  
También puede usar valores predeterminados para la sustitución de parámetros y marcadores de posición en el comando. Para obtener más información, consulte [Parameters](job_definition_parameters.md#parameters).

   1. (Opcional) En **la función de ejecución**, especifique una función de IAM que conceda permiso a los agentes de contenedores de Amazon ECS para realizar llamadas a la AWS API en su nombre. Esta característica utiliza roles de IAM de Amazon ECS para las tareas. Para obtener más información, consulte [Roles de IAM de ejecución de tareas de Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_execution_IAM_role.html) en la *Guía para desarrolladores de Amazon Elastic Container Service*. 

   1. Para **configurar el rol de trabajo**, elija un rol de IAM que tenga permisos para. AWS APIs Esta característica utiliza roles de IAM de Amazon ECS para las tareas. Para obtener más información, consulte [Roles de IAM para tareas](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) en la *Guía para desarrolladores de Amazon Elastic Container Service*.
**nota**  
Aquí solo se muestran roles con la relación de confianza del **Rol de tarea de servicio de Amazon Elastic Container**. Para obtener más información sobre cómo crear un rol de IAM para sus AWS Batch trabajos, consulte [Creación de un rol y una política de IAM para sus tareas en la Guía para](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html#create_task_iam_policy_and_role) *desarrolladores de Amazon Elastic Container Service*.

1. En **Parámetros**, elija **Agregar parámetros** para añadir marcadores de sustitución de parámetros como pares **Clave** y **Valores** opcionales.

1. En la sección de **Configuración del entorno**:

   1. Para **v CPUs**, introduzca el número de v CPUs que desea reservar para el contenedor. Este parámetro se corresponde con `CpuShares` en la sección [Creación de un contenedor](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) de la [API remota de Docker](https://docs.docker.com/engine/api/v1.38/) y con la opción `--cpu-shares` de [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/). Cada vCPU es equivalente a 1 024 cuotas de CPU. Debe especificar al menos una vCPU.

   1. En **Memoria**, introduzca el límite de memoria disponible para el contenedor. Si su contenedor intenta superar la cantidad de memoria que ha especificado aquí, se detiene el contenedor. Este parámetro se corresponde con `Memory` en la sección [Creación de un contenedor](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) de la [API remota de Docker](https://docs.docker.com/engine/api/v1.38/) y con la opción `--memory` de [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/). Debe especificar al menos 4 MiB de memoria para un trabajo.
**nota**  
Para maximizar el uso de los recursos, priorice la memoria para los trabajos de un tipo de instancia específico. Para obtener más información, consulte [Administración de la memoria de recurso de computación](memory-management.md).

   1. En **Número de GPUs**, elija el número de GPUs que desea reservar para el contenedor.

   1. (Opcional) En el caso de **Variables de entorno**, seleccione **Agregar variable de entorno** para añadir variables de entorno como pares de nombre-valor. Estas variables se transfieren al contenedor.

   1. (Opcional) En **Secretos**, seleccione **Agregar secreto** para añadir los secretos como pares de nombre-valor. Estos secretos están expuestos en el contenedor. [Para obtener más información, consulte: LogConfiguration Opciones secretas.](https://docs.aws.amazon.com/batch/latest/APIReference/API_LogConfiguration.html#Batch-Type-LogConfiguration-secretOptions)

1. Seleccione **Página siguiente**.

1. En la sección de **Configuración de Linux**:

   1. En **Usuario**, introduzca el nombre de usuario a utilizar dentro del contenedor. Este parámetro se corresponde con `User` en la sección [Creación de un contenedor](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) de la [API remota de Docker](https://docs.docker.com/engine/api/v1.38/) y con la opción `--user` de [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/).

   1. (Opcional) Para otorgar al contenedor de su trabajo permisos elevados en la instancia host (similares a los del usuario de `root`), arrastre el control deslizante **Privilegiado** hacia la derecha. Este parámetro se corresponde con `Privileged` en la sección [Creación de un contenedor](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) de la [API remota de Docker](https://docs.docker.com/engine/api/v1.38/) y con la opción `--privileged` de [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/).

   1. (Opcional) Active la opción **Habilitar el proceso init** para ejecutar un proceso `init` dentro del contenedor. Este proceso reenvía señales y recoge procesos.

1. (Opcional) En la sección de **Configuración de Filesystem**:

   1. Active la opción **Habilitar el sistema de archivos de solo lectura** para eliminar el acceso de escritura al volumen.

   1. En **Tamaño de memoria compartida**, introduzca el tamaño (en MiB) del `/dev/shm` volumen de .

   1. En **Tamaño de intercambio máximo**, introduzca la cantidad total de memoria de intercambio (en MiB) que puede utilizar el contenedor.

   1. En **Intercambio**, introduzca un valor entre 0 y 100 para indicar el comportamiento de intercambio del contenedor. Si no especifica un valor y el intercambio está activado, el valor predeterminado es 60. [Para obtener más información, consulte:swappiness. LinuxParameters](https://docs.aws.amazon.com/batch/latest/APIReference/API_LinuxParameters.html#Batch-Type-LinuxParameters-swappiness)

   1. (Opcional) Expandir **Configuración adicional**.

   1. (Opcional) En el caso de **Tmpfs**, seleccione **Agregar tmpfs** para añadir una montura `tmpfs`.

   1. (Opcional) En el caso de los **Dispositivos**, seleccione **Agregar dispositivo** para añadir un dispositivo:

      1. En **Container path (Ruta del contenedor)**, especifique la ruta de la instancia del contenedor que va a exponer el dispositivo asignado a la instancia del host. Si lo deja en blanco, se utiliza la ruta del host en el contenedor.

      1. En **Host path (Ruta de host)**, especifique la ruta de un dispositivo de la instancia del host.

      1. En la página **Permisos**, haga clic en uno o varios permisos para aplicarlos al dispositivo. Los permisos disponibles son **READ**, **WRITE** y **MKNOD**.

   1. (Opcional) En **Configuración de volúmenes**, seleccione **Agregar volumen** para crear una lista de volúmenes que se transferirán al contenedor. Introduzca el **Nombre** y la **Ruta de origen** del volumen y, a continuación, seleccione **Agregar volumen**. También puede optar por activar **Habilitar EFS**.

   1. (Opcional) En **Puntos de montaje**, elija la configuración **Agregar puntos de montaje** para agregar puntos de montaje a los volúmenes de datos. Debe especificar el volumen de origen y la ruta del contenedor. Estos puntos de montaje se transfieren al Docker daemon de una instancia de contenedor. También puede elegir que el volumen sea de **Solo lectura**.

   1. (Opcional) En **Configuración de Ulimits**, seleccione **Agregar ulimit** para agregar un `ulimits` valor al contenedor. Introduzca los valores de **Nombre**, **Límite flexible** y **Límite invariable** y, a continuación, elija **Agregar límite máximo**.

1. En la sección de **Propiedades de tareas**:

   1. En **Función de ejecución (condicional)**, elija una función que permita a los agentes de Amazon ECS realizar llamadas a la AWS API en su nombre. Para obtener más información sobre la creación de un **Rol de ejecución**, cosulte [Tutorial: creación del rol de ejecución de IAM](create-execution-role.md).

   1. Elija **Habilitar el comando de ejecución ECS** para permitir el acceso directo al shell del contenedor de Amazon ECS y omitir el sistema operativo del host. Debe elegir un **Rol de tarea**.
**importante**  
El comando **Ejecución de ECS** requiere que el sistema de archivos sea modificable. 

   1. Para el **rol de tarea**, elija un rol de Amazon ECS Identity and Access Management (IAM) para permitir que el contenedor realice llamadas a la AWS API en su nombre. Para obtener más información, consulte [Rol de IAM de las tareas de Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) en la *Guía para desarrolladores de Amazon Elastic Container Service*.

1. (Opcional) En la sección de **Configuración de registro**:

   1. En el **Controlador de registro**, elija el controlador de registro que desee utilizar. [Para obtener más información sobre los controladores de registro disponibles, consulteLogConfiguration: LogDriver.](https://docs.aws.amazon.com/batch/latest/APIReference/API_LogConfiguration.html#Batch-Type-LogConfiguration-logDriver)
**nota**  
Se utiliza el controlador de registro `awslogs` de forma predeterminada.

   1. En **Opciones**, elija **Agregar opción** para agregar una opción. Introduzca un par nombre-valor y, a continuación, elija **Agregar opción**.

   1. En **Secretos**, seleccione **Agregar secreto**. Introduzca un par nombre-valor y, a continuación, seleccione **Agregar secreto** para añadir un secreto.
**sugerencia**  
[Para obtener más información, consulte: Opciones secretas. LogConfiguration](https://docs.aws.amazon.com/batch/latest/APIReference/API_LogConfiguration.html#Batch-Type-LogConfiguration-secretOptions)

1. Seleccione **Página siguiente**.

1. Para la **Revisión de definición de trabajo**, revise los pasos de configuración. Si necesita realizar cambios, elija **Editar**. Cuando haya terminado, seleccione **Creación de definición de trabajo**.

# Creación de una definición de trabajo de un solo nodo en los recursos de Fargate
<a name="create-job-definition-Fargate"></a>

Complete los siguientes pasos para crear una definición de trabajo de un solo nodo en los recursos. AWS Fargate 

**Para crear una nueva definición de trabajo en los recursos de Fargate:**

1. Abra la AWS Batch consola en. [https://console.aws.amazon.com/batch/](https://console.aws.amazon.com/batch/)

1. En la barra de navegación superior, selecciona la Región de AWS que deseas usar.

1. En el panel de navegación izquierdo, seleccione **Definiciones de trabajos**.

1. Seleccione **Creación de**.

1. En **Tipo de orquestación**, elija **Fargate**. Para obtener más información, consulte [Entornos de computación en Fargate](fargate.md).

1. En **Nombre**, escriba un nombre único para la definición de trabajo. 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 (\$1).

1. (Opcional) En **Tiempo de espera de ejecución**, introduzca el valor del tiempo de espera (en segundos). El tiempo de espera de ejecución es el tiempo que transcurre antes de que finalice un trabajo pendiente. Si un intento supera la duración del tiempo de espera, el intento se detiene y pasa a un estado `FAILED`. Para obtener más información, consulte [Tiempos de espera de trabajo](job_timeouts.md). El valor mínimo es de 60 segundos.

1. (Opcional) Activa la **Prioridad de programación**. Introduzca un valor de prioridad de programación entre 0 y 100. Los valores más altos tienen mayor prioridad respecto a los valores más bajos.

1. (Opcional) Amplíe **Etiquetas** y, a continuación, elija **Agregar etiqueta** para agregar etiquetas al recurso. Active **Propagar etiquetas** para propagar etiquetas desde el trabajo y la definición del trabajo.

1. En la sección de **Configuración de la plataforma Fargate**:

   1. Para la **Plataforma de tiempo de ejecución**, elija la arquitectura del entorno de computación.

   1. En **Familia de sistemas operativos**, seleccione el sistema operativo para el entorno de computación.

   1. En **Arquitectura CPU**, elija la arquitectura vCPU.

   1. Para la **versión de la plataforma Fargate**, introduzca `LATEST` o una versión específica del entorno del tiempo de ejecución.

   1. (Opcional) Active **Asignar IP pública** para asignar una dirección IP a una interfaz de redes de trabajo Fargate. Para que un trabajo que se ejecuta en una subred privada envíe tráfico saliente a Internet, la subred privada requiere que se conecte una puerta de enlace NAT para enrutar las solicitudes a Internet. Es posible que desee hacer esto para poder extraer imágenes de contenedores. Para obtener más información, consulte [Amazon ECS task networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) (Integración en red de las tareas de Amazon ECS) en la *Guía para desarrolladores de Amazon Elastic Container Service*.

   1. (Opcional) En **Almacenamiento efímero**, introduzca la cantidad de almacenamiento efímero que se va a asignar a la tarea. La cantidad de almacenamiento efímero debe estar entre 21 GiB y 200 GiB. De forma predeterminada, se asignan 20 GiB de almacenamiento efímero si no ingresa un valor.
**nota**  
El almacenamiento efímero requiere la versión de la plataforma 1.4 Fargate o una posterior.

   1. En **la función de ejecución**, especifique una función de IAM que conceda permiso al contenedor de Amazon ECS y a los agentes de Fargate para AWS realizar llamadas a la API en su nombre. Esta característica utiliza roles de IAM de Amazon ECS para otorgarle funcionalidad a la tarea. Para obtener más información, incluidos los requisitos previos de configuración, consulte [Roles de IAM para tareas de ejecución de Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_execution_IAM_role.html) en la *Guía para desarrolladores de Amazon Elastic Container Service*. 

   1. Para los **Intentos de trabajo**, introduzca el número de veces que AWS Batch intenta mover el trabajo al estado `RUNNABLE`. Ingrese un número entero entre 1 y 10.

   1. (Opcional) Para las **Condiciones de la estrategia de reintento**, seleccione **Agregar evaluación al salir**. Introduzca al menos un valor de parámetro y, a continuación, elija una **Acción**. Para cada conjunto de condiciones, la **Acción** debe estar configurada como **Reintentar** o **Salir**. Estas acciones significan lo siguiente:
      + **Reintentar**: AWS Batch vuelve a intentarlo hasta alcanzar el número de intentos de trabajo que especificó.
      + **Salir**: AWS Batch deja de volver a intentar el trabajo.
**importante**  
Si elige **Agregar evaluar al salir**, debe configurar al menos un parámetro y elegir una **Acción** o **Eliminar evaluar al salir**.

1. Seleccione **Página siguiente**.

1. En la sección **Configuración del contenedor**:

   1. En **Imagen**, elija la imagen de Docker que desea utilizar para su trabajo. Por defecto, las imágenes del registro de Docker Hub están disponibles. También es posible especificar otros repositorios con `repository-url/image:tag`. El nombre puede tener una longitud máxima de 225 caracteres. Puede contener letras mayúsculas y minúsculas, números, guiones medios (-), guiones bajos (\$1), dos puntos (:), puntos (.), barras inclinadas (/) y signos numéricos (\$1). Este parámetro se asigna a `Image` en la sección [Creación de un contenedor](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) de la [API remota de Docker](https://docs.docker.com/engine/api/v1.38/) y el parámetro `IMAGE` de [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/).
**nota**  
La arquitectura de la imagen de Docker debe coincidir con la arquitectura del procesador de los recursos informáticos en las que estén programadas. Por ejemplo, las imágenes de Docker basadas en ARM solo se pueden ejecutar en recursos informáticos 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 clasifican 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`).

   1. En **Comando**, ingrese los comandos en el campo como su equivalente de matriz de cadenas JSON.

      Este parámetro se asigna a `Cmd` en la sección [Creación de un contenedor](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) de la [API remota de Docker](https://docs.docker.com/engine/api/v1.38/) y el parámetro `COMMAND` se corresponde con [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/). [Para obtener más información sobre el Docker`CMD` parámetro, consulta https://docs.docker.com/engine/ reference/builder/ \$1cmd.](https://docs.docker.com/engine/reference/builder/#cmd)
**nota**  
También puede usar valores predeterminados para la sustitución de parámetros y marcadores de posición en el comando. Para obtener más información, consulte [Parameters](job_definition_parameters.md#parameters).

   1. (Opcional) Añada parámetros a la definición del trabajo como asignaciones de nombre-valor para anular los valores predeterminados de la definición del trabajo. Para añadir un parámetro:

      1. En **Parámetros**, elija **Agregar parámetros**, introduzca un par de nombre-valor y, a continuación, elija **Agregar parámetro**.
**importante**  
Si elige **Agregar parámetro**, debe configurar al menos un parámetro o elegir **Eliminar parámetro**

   1. En la sección de **Configuración del entorno**:

      

      1. Para **configurar el rol de Job**, elija un rol de IAM que tenga permisos para. AWS APIs Esta característica utiliza roles de IAM de Amazon ECS para otorgarle funcionalidad a la tarea. Para obtener más información, consulte [Roles de IAM para tareas](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) en la *Guía para desarrolladores de Amazon Elastic Container Service*.
**nota**  
Aquí solo se muestran roles con la relación de confianza del **Rol de tarea de servicio de Amazon Elastic Container**. Para obtener más información sobre cómo crear un rol de IAM para sus AWS Batch trabajos, consulte [Creación de un rol y una política de IAM para sus tareas en la Guía para](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html#create_task_iam_policy_and_role) *desarrolladores de Amazon Elastic Container Service*.

      1. Para **v CPUs**, introduzca el número de v CPUs que desea reservar para el contenedor. Este parámetro se corresponde con `CpuShares` en la sección [Creación de un contenedor](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) de la [API remota de Docker](https://docs.docker.com/engine/api/v1.38/) y con la opción `--cpu-shares` de [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/). Cada vCPU es equivalente a 1 024 cuotas de CPU. Debe especificar al menos una vCPU.

      1. En **Memoria**, introduzca el límite de memoria disponible para el contenedor. Si su contenedor intenta superar la memoria especificada aquí, el contenedor se detiene. Este parámetro se corresponde con `Memory` en la sección [Creación de un contenedor](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) de la [API remota de Docker](https://docs.docker.com/engine/api/v1.38/) y con la opción `--memory` de [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/). Debe especificar al menos 4 MiB de memoria para un trabajo.

         Si utiliza GuardDuty Runtime Monitoring, existe una ligera sobrecarga de memoria para el agente GuardDuty de seguridad. Por lo tanto, el límite de memoria debe incluir el tamaño del agente de GuardDuty seguridad. Para obtener información sobre los límites de memoria del agente de GuardDuty seguridad, consulte los [límites de CPU y memoria](https://docs.aws.amazon.com/guardduty/latest/ug/prereq-runtime-monitoring-ecs-support.html#ecs-runtime-agent-cpu-memory-limits) en la *Guía del GuardDuty usuario*. Para obtener información sobre las prácticas recomendadas, consulte [Cómo solucionar los errores de falta de memoria en mis tareas de Fargate después de activar Runtime Monitoring](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-guard-duty-troubleshooting.html#memory-error) en la *Guía para desarrolladores de Amazon ECS*.
**nota**  
Para maximizar el uso de los recursos, priorice la memoria para los trabajos de un tipo de instancia específico. Para obtener más información, consulte [Administración de la memoria de recurso de computación](memory-management.md).

   1. (Opcional) En el caso de **Variables de entorno**, seleccione **Agregar variable de entorno** para añadir variables de entorno como pares de nombre-valor. Estas variables se transfieren al contenedor.

   1. (Opcional) En **Secretos**, seleccione **Agregar secreto** para añadir los secretos como pares de nombre-valor. Estos secretos están expuestos en el contenedor. [Para obtener más información, consulte: LogConfiguration Opciones secretas.](https://docs.aws.amazon.com/batch/latest/APIReference/API_LogConfiguration.html#Batch-Type-LogConfiguration-secretOptions)

   1. Seleccione **Página siguiente**.

1. (Opcional) En la sección de **Configuración de Linux**:

   1. En **Usuario**, introduzca el nombre de usuario a utilizar dentro del contenedor.

   1. Active la opción **Habilitar el proceso** para ejecutar un proceso dentro del contenedor. Este proceso reenvía señales y recoge procesos.

   1. Active la opción **Habilitar el sistema de archivos de solo lectura** para eliminar el acceso de escritura al volumen.

   1. (Opcional) Expandir **Configuración adicional**.

   1. Para la **Configuración de puntos de montaje**, elija la configuración **Agregar puntos de montaje** para agregar puntos de montaje a los volúmenes de datos. Debe especificar el volumen de origen y la ruta del contenedor. Estos puntos de montaje se transfieren al Docker daemon de una instancia de contenedor.

   1. Para la **Configuración de volúmenes**, seleccione **Agregar volumen** para crear una lista de volúmenes que se transferirán al contenedor. Introduzca el **nombre** y la **ruta de origen** del volumen y, a continuación, seleccione **Agregar volumen**. 

   1. En la sección de **Propiedades de tareas**:

      1. En **Función de ejecución (condicional)**, elija una función que permita a los agentes de Amazon ECS realizar llamadas a la AWS API en su nombre. Para obtener más información sobre la creación de un **Rol de ejecución**, cosulte [Tutorial: creación del rol de ejecución de IAM](create-execution-role.md).

      1. Elija **Habilitar el comando de ejecución ECS** para permitir el acceso directo al shell del contenedor de Amazon ECS y omitir el sistema operativo del host. Debe elegir un **Rol de tarea**.
**importante**  
El comando **Ejecución de ECS** requiere que el sistema de archivos sea modificable. 

      1. Para el **rol de tarea**, elija un rol de Amazon ECS Identity and Access Management (IAM) para permitir que el contenedor realice llamadas a la AWS API en su nombre. Para obtener más información, consulte [Rol de IAM de las tareas de Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) en la *Guía para desarrolladores de Amazon Elastic Container Service*.

   1. En la sección de **Configuración de registro**:

      1. (Opcional) En el **Controlador de registro**, elija el controlador de registro que desee utilizar. [Para obtener más información sobre los controladores de registro disponibles, consulteLogConfiguration: LogDriver.](https://docs.aws.amazon.com/batch/latest/APIReference/API_LogConfiguration.html#Batch-Type-LogConfiguration-logDriver)
**nota**  
Se utiliza el controlador de registro `awslogs` de forma predeterminada.

      1. (Opcional) En **Opciones**, elija **Agregar opción** para agregar una opción. Introduzca un par nombre-valor y, a continuación, elija **Agregar opción**.

      1. (Opcional) En **Secretos**, seleccione **Agregar secreto** para añadir un secreto. A continuación, introduzca un par nombre-valor y seleccione **Agregar secreto**.
**sugerencia**  
[Para obtener más información, consulte: Opciones secretas. LogConfiguration](https://docs.aws.amazon.com/batch/latest/APIReference/API_LogConfiguration.html#Batch-Type-LogConfiguration-secretOptions)

1. Seleccione **Página siguiente**.

1. Para la **Revisión de definición de trabajo**, revise los pasos de configuración. Si necesita realizar cambios, elija **Editar**. Cuando haya terminado, seleccione **Creación de definición de trabajo**.

# Creación de una definición de trabajo de un solo nodo en los recursos de Amazon EKS
<a name="create-job-definition-eks"></a>

Siga estos pasos para crear una definición de trabajo de un solo nodo en recursos de Amazon Elastic Kubernetes Service (Amazon EKS).

**Para crear una nueva definición de trabajo en los recursos de Amazon EKS:**

1. Abra la AWS Batch consola en. [https://console.aws.amazon.com/batch/](https://console.aws.amazon.com/batch/)

1. En la barra de navegación superior, selecciona la Región de AWS que deseas usar.

1. En el panel de navegación izquierdo, seleccione **Definiciones de trabajos**.

1. Seleccione **Creación de**.

1. Para el **tipo de orquestación**, elija **Elastic Kubernetes Service (EKS)**.

1. En **Nombre**, escriba un nombre único para la definición de trabajo. 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 (\$1).

1. (Opcional) En **Tiempo de espera de ejecución**, introduzca el valor del tiempo de espera (en segundos). El tiempo de espera de ejecución es el tiempo que transcurre antes de que finalice un trabajo pendiente. Si un intento supera la duración del tiempo de espera, el intento se detiene y pasa a un estado `FAILED`. Para obtener más información, consulte [Tiempos de espera de trabajo](job_timeouts.md). El valor mínimo es de 60 segundos.

1. (Opcional) Activa la **Prioridad de programación**. Introduzca un valor de prioridad de programación entre 0 y 100. Los valores más altos tienen mayor prioridad respecto a los valores más bajos.

1. (Opcional) Amplíe **Etiquetas** y, a continuación, elija **Agregar etiqueta** para agregar etiquetas al recurso.

1. Seleccione **Página siguiente**.

1. En la sección de **propiedades de pod EKS**:

   1. En **Nombre de cuenta de servicio**, introduzca una cuenta que proporcione una identidad para los procesos que se ejecutan en un pod.

   1. Active la **Red de host** para usar el modelo de red Kubernetes pod y abra un puerto de escucha para las conexiones entrantes. Desactive esta configuración solo para las comunicaciones salientes.

   1. Para la **política DNS**, elija una de las siguientes opciones:
      + **Sin valor (nulo)**: pod ignora la configuración de DNS del entorno Kubernetes.
      + **Predeterminado**: pod hereda la configuración de resolución de nombres del nodo en el que se ejecuta.
**nota**  
Si no se especifica una política de DNS, la política de DNS **Valor predeterminado** no es la política de DNS predeterminada. En su lugar, **ClusterFirst**se usa.
      + **ClusterFirst**— Cualquier consulta de DNS que no coincida con el sufijo del dominio del clúster configurado se reenvía al servidor de nombres ascendente que se hereda del nodo. 
      + **ClusterFirstWithHostNet**— Úselo si la **red host está activada**.

   1. (Opcional) En **Volúmenes**, seleccione **Agregar volumen** y, a continuación:

      1. Agregue un **Nombre** para su volumen.

      1. (Opcional) Agregue la **Ruta del host** al directorio del host. 

      1. (Opcional) Agregue un límite **Medio** y de **Tamaño** para configurar un [emptyDir de Kubernetes](https://kubernetes.io/docs/concepts/storage/volumes/#emptydir).

      1. (Opcional) Proporcione un **Nombre del secreto** para el pod e indique si el secreto es **Opcional**.

      1. (Opcional) Defina un **Nombre de recuperación** para adjuntar una [Recuperación de volumen persistente](https://kubernetes.io/docs/concepts/storage/persistent-volumes/) de Kubernetes al pod e indique si es de **Solo lectura**.

   1. (Opcional) En **Etiquetas de los pods**, seleccione **Agregar etiquetas de pod** y, a continuación, introduzca un par de nombre-valor. 
**importante**  
El prefijo de una etiqueta de pod no puede contener `kubernetes.io/`, `k8s.io/` o `batch.amazonaws.com/`.

   1. (Opcional) Para las **Anotaciones del pod**, seleccione **Agregar anotaciones** y, a continuación, ingrese un par nombre-valor. 
**importante**  
El prefijo de una anotación de pod no puede contener `kubernetes.io/`, `k8s.io/` o `batch.amazonaws.com/`.

   1. Seleccione **Página siguiente**.

   1. En la sección **Configuración del contenedor**:

      1. Para el **Nombre**, escriba un nombre único para el contenedor. El nombre debe empezar por una letra o un número y puede tener un máximo de 63 caracteres. Puede contener letras mayúsculas y minúsculas, números y guiones (-).

      1. En **Imagen**, elija la imagen Docker que desea utilizar para su trabajo. Por defecto, las imágenes del registro de Docker Hub están disponibles. También es posible especificar otros repositorios con `repository-url/image:tag`. El nombre puede tener una longitud máxima de 225 caracteres. Puede contener letras mayúsculas y minúsculas, números, guiones medios (-), guiones bajos (\$1), dos puntos (:), puntos (.), barras inclinadas (/) y signos numéricos (\$1). Este parámetro se asigna a `Image` en la sección [Creación de un contenedor](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) de la [API remota de Docker](https://docs.docker.com/engine/api/v1.38/) y el parámetro `IMAGE` de [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/)
**nota**  
La arquitectura de la imagen de Docker debe coincidir con la arquitectura del procesador de los recursos informáticos en las que estén programadas. Por ejemplo, las imágenes de Docker basadas en ARM solo se pueden ejecutar en recursos informáticos 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 clasifican 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`).

      1. (Opcional) En **Política de extracción de imágenes**, elija cuándo se extraerán las imágenes.

      1. (Opcional) En **Comando**, ingrese un comando JSON para pasarlo al contenedor.

      1. (Opcional) En **Argumentos**, introduzca los argumentos para pasar al contenedor. Si no se proporciona un argumento, se utiliza el comando contenedor de imágenes.

   1. (Opcional) Puede añadir parámetros a la definición del trabajo como asignaciones de nombre-valor para anular los valores predeterminados de la definición del trabajo. Para añadir un parámetro:

      1. En **Parámetros**, introduzca un par de nombre-valor y, a continuación, elija **Agregar parámetro**.
**importante**  
Si elige **Agregar parámetro**, debe configurar al menos un parámetro o elegir **Eliminar parámetro**

   1. En la sección de **Configuración del entorno**:

      1. Para **v CPUs**, introduce el número de v que deseas reservar CPUs para el contenedor. Este parámetro se corresponde con `CpuShares` en la sección [Creación de un contenedor](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) de la [API remota de Docker](https://docs.docker.com/engine/api/v1.38/) y con la opción `--cpu-shares` de [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/). Cada vCPU es equivalente a 1 024 cuotas de CPU. Debe especificar al menos una vCPU.

      1. En **Memoria**, introduzca el límite de memoria disponible para el contenedor. Si su contenedor intenta superar la memoria especificada aquí, el contenedor se detiene. Este parámetro se corresponde con `Memory` en la sección [Creación de un contenedor](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) de la [API remota de Docker](https://docs.docker.com/engine/api/v1.38/) y con la opción `--memory` de [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/). Debe especificar al menos 4 MiB de memoria para un trabajo.
**nota**  
Para maximizar el uso de los recursos, priorice la memoria para los trabajos de un tipo de instancia específico. Para obtener más información, consulte [Administración de la memoria de recurso de computación](memory-management.md).

   1. (Opcional) En el caso de **Variables de entorno**, seleccione **Agregar variable de entorno** para añadir variables de entorno como pares de nombre-valor. Estas variables se transfieren al contenedor.

   1. (Opcional) En **Montaje del volumen**:

      1. Seleccione **Agregar montaje del volumen**.

      1. Introduzca un **Nombre** y, a continuación, introduzca una **Ruta de montaje** en el contenedor donde está montado el volumen. Introduzca **SubPath**a para especificar una subruta dentro del volumen al que se hace referencia en lugar de su raíz. 

      1. Seleccione **Solo lectura** para eliminar los permisos de escritura del volumen.

      1. Seleccione **Agregar montaje del volumen**.

   1. (Opcional) En **Ejecutar como usuario**, introduzca un ID de usuario para ejecutar el proceso del contenedor.
**nota**  
El ID de usuario debe existir en la imagen para que se ejecute el contenedor.

   1. (Opcional) En **Ejecutar como grupo**, introduzca un ID de grupo para ejecutar el proceso del contenedor en tiempo de ejecución.
**nota**  
El ID de grupo debe existir en la imagen para que se ejecute el contenedor.

   1. (Opcional) Para otorgar al contenedor de su trabajo permisos elevados en la instancia host (similares a los del usuario de `root`), arrastre el control deslizante **Privilegiado** hacia la derecha. Este parámetro se corresponde con `Privileged` en la sección [Creación de un contenedor](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) de la [API remota de Docker](https://docs.docker.com/engine/api/v1.38/) y con la opción `--privileged` de [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/).

   1. (Opcional) Active el sistema de **Archivos raíz de solo lectura** para eliminar el acceso de escritura al sistema de archivos raíz.

   1. (Opcional) Active la opción **Ejecutar como usuario no raíz** para ejecutar los contenedores en el pod como usuario no raíz.
**nota**  
Si la opción **Ejecutar como no raíz** está activada, kubelet valida la imagen en tiempo de ejecución para comprobar que la imagen no se ejecuta como UID 0. 

   1. Seleccione **Página siguiente**.

1. Para la **Revisión de definición de trabajo**, revise los pasos de configuración. Si necesita realizar cambios, elija **Editar**. Cuando haya terminado, seleccione **Creación de definición de trabajo**.

# Creación de una definición de trabajo de un solo nodo con varios contenedores en los recursos de Amazon EC2
<a name="create-job-definition-single-node-multi-container"></a>

Siga estos pasos para crear una definición de trabajo de un solo nodo con varios contenedores en los recursos de Amazon Elastic Compute Cloud (Amazon EC2).

**Para crear una nueva definición de trabajo en los recursos de Amazon EC2:**

1. Abra la AWS Batch consola en. [https://console.aws.amazon.com/batch/](https://console.aws.amazon.com/batch/)

1. En la barra de navegación, elija la Región de AWS que desee utilizar.

1. En el panel de navegación izquierdo, seleccione **Definiciones de trabajos**.

1. Seleccione **Creación de**.

1. Para el **Tipo de orquestación**, seleccione **Amazon Elastic Compute Cloud (Amazon EC2)**.

1. En **Estructura de definición de trabajos**, desactive **Uso del procesamiento de estructura de containerProperties heredado**.

1. Para la **Configuración de la plataforma EC2**, desactive **Habilitar el procesamiento paralelo de varios nodos**.

1. Elija **Siguiente**.

1. En la sección **Configuración general**, ingrese lo siguiente:

   1. En **Nombre**, escriba un nombre único para la definición de trabajo. 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 (\$1).

   1. En **Tiempo de espera de ejecución: *opcional***, ingrese el valor del tiempo de espera (en segundos). El tiempo de espera de ejecución es el tiempo que transcurre antes de que finalice un trabajo pendiente. Si un intento supera la duración del tiempo de espera, el intento se detiene y pasa a un estado `FAILED`. Para obtener más información, consulte [Tiempos de espera de trabajo](job_timeouts.md). El valor mínimo es de 60 segundos.

   1. Activa la **Prioridad de programación: *opcional***. Introduzca un valor de prioridad de programación entre 0 y 100. Los valores más altos tienen mayor prioridad.

   1. Amplíe **Etiquetas: *opcional*** y, a continuación, elija **Agregar etiqueta** para agregar etiquetas al recurso. Elija **Agregar nueva etiqueta** e introduzca la clave y el valor opcional.

   1. Active **Propagar etiquetas** para propagar etiquetas desde el trabajo y la definición del trabajo a la tarea de Amazon ECS.

1. En la sección **Estrategia de reintento: *opcional***, ingrese lo siguiente:

   1. En **Intentos de trabajo**, ingrese el número de veces que AWS Batch intenta mover el trabajo al estado `RUNNABLE`. Ingrese un número entero entre 1 y 10.

   1. En **Condiciones de la estrategia de reintento**, seleccione **Agregar evaluación al salir**. Introduzca al menos un valor de parámetro y, a continuación, elija una **Acción**. Para cada conjunto de condiciones, la **Acción** debe estar configurada como **Reintentar** o **Salir**. Estas acciones significan lo siguiente:
      + **Reintentar**: AWS Batch se vuelve a intentar hasta alcanzar el número de intentos de trabajo que especificó.
      + **Salir**: AWS Batch deja de volver a intentar el trabajo.
**importante**  
Si elige **Agregar evaluar al salir**, debe configurar al menos un parámetro y elegir una **Acción** o **Eliminar evaluar al salir**.

1. En la sección **Propiedades de la tarea**, ingrese lo siguiente:

   1. En **Función de ejecución (*condicional*)**, elija una función que permita a los agentes de Amazon ECS realizar llamadas a la AWS API en su nombre. Para obtener más información sobre la creación de un **Rol de ejecución**, cosulte [Tutorial: creación del rol de ejecución de IAM](create-execution-role.md).

   1. Elija **Habilitar el comando de ejecución ECS** para permitir el acceso directo al shell del contenedor de Amazon ECS y omitir el sistema operativo del host. Debe elegir un **Rol de tarea**.
**importante**  
El comando **Ejecución de ECS** requiere que el sistema de archivos sea modificable. 

   1. Para el **rol de tarea**, elija un rol de Amazon ECS Identity and Access Management (IAM) para permitir que el contenedor realice llamadas a la AWS API en su nombre. Para obtener más información, consulte [Rol de IAM de las tareas de Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) en la *Guía para desarrolladores de Amazon Elastic Container Service*.

   1. En **Modo IPC**, seleccione `host`, `task` o `none`. Si se especifica `host`, todos los contenedores que están dentro de las tareas que tienen especificado el modo de IPC del host en la misma instancia de contenedor comparten los mismos recursos de IPC con la instancia Amazon EC2 del host. Si se especifica la tarea, todos los contenedores que están dentro de la tarea especificada comparten los mismos recursos de IPC. Si no se especifica nada, los recursos de IPC dentro de los contenedores de una tarea son privados y no se comparten con otros contenedores en una tarea o en la instancia de contenedor. Si no se especifica ningún valor, el uso compartido del espacio de nombre de recursos de IPC depende de la configuración del daemon de Docker en la instancia de contenedor.

   1. En **Modo PID**, elija `host` o `task`. Por ejemplo, la supervisión de los archivos sidecar puede necesitar `pidMode` para acceder a información sobre otros contenedores que se ejecutan en la misma tarea. Si se especifica `host`, todos los contenedores dentro de las tareas que tienen especificado el modo de PID del host en la misma instancia de contenedor comparten el mismo espacio de nombres del proceso con la instancia Amazon EC2 del host. Si se especifica `task`, todos los contenedores dentro de la tarea especificada comparten el mismo espacio de nombres del proceso. Si no se especifica ningún valor, el valor predeterminado es un espacio de nombre privado para cada contenedor. 

1. En la sección **Recursos consumibles**, ingrese lo siguiente:

   1. Ingrese un **Nombre** único y el **Valor solicitado**.

   1. Puede agregar más recursos consumibles seleccionando **Agregar recurso consumible**.

1. En la sección **Almacenamiento**, ingrese lo siguiente:

   1. Ingrese el **Nombre** y la **Ruta de origen** del volumen y, a continuación, seleccione **Agregar volumen**. También puede optar por activar Habilitar EFS.

   1. Puede agregar más volúmenes seleccionando **Agregar volumen**.

1. En **Parámetros**, elija **Agregar parámetros** para añadir marcadores de sustitución de parámetros como pares **Clave** y **Valores** opcionales.

1. Seleccione **Página siguiente**.

1. En la sección **Configuración del contenedor**:

   1. En **Name** (Nombre), escriba un nombre para el contenedor.

   1. En **Contenedor esencial**, actívelo si el contenedor es esencial.

   1. En **Imagen**, elija la imagen Docker que desea utilizar para su trabajo. De manera predeterminada, las imágenes del registro de Docker Hub están disponibles. También es posible especificar otros repositorios con `repository-url/image:tag`. El nombre puede tener una longitud máxima de 225 caracteres. Puede contener letras mayúsculas y minúsculas, números, guiones medios (-), guiones bajos (\$1), dos puntos (:), barras inclinadas (/) y signos numéricos (\$1). Este parámetro se asigna a `Image` en la sección [Creación de un contenedor](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) de la [API remota de Docker](https://docs.docker.com/engine/api/v1.38/) y el parámetro `IMAGE` de [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/).
**nota**  
La arquitectura de la imagen de Docker debe coincidir con la arquitectura del procesador de los recursos informáticos en las que estén programadas. Por ejemplo, las imágenes de Docker basadas en ARM solo se pueden ejecutar en recursos informáticos 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 clasifican 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`).

   1. En **Requisitos de recursos**, configure cada una de las siguientes opciones:

      1. Para **v CPUs**, elige el número de CPUs para el contenedor.

      1. En **Memoria**, elija la cantidad de memoria para el contenedor.

      1. Para **GPU *(opcional)***, elige el número de GPUs para el contenedor.

   1. En **Usuario**, introduzca el nombre de usuario a utilizar dentro del contenedor.

   1. Active la opción **Habilitar el sistema de archivos de solo lectura** para eliminar el acceso de escritura al volumen.

   1. Active **Privilegiado** para otorgar al contenedor de su trabajo permisos elevados en la instancia host, similares a los del usuario raíz. 

   1. En **Comando**, ingrese los comandos en el campo como su equivalente de matriz de cadenas **JSON**.

      Este parámetro se asigna a `Cmd` en la sección [Creación de un contenedor](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) de la [API remota de Docker](https://docs.docker.com/engine/api/v1.38/) y el parámetro `COMMAND` se corresponde con [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/). Para obtener más información sobre el Docker `CMD` parámetro, consulta [https://docs.docker.com/engine/reference/builder/](https://docs.docker.com/engine/reference/builder/#cmd) \$1cmd.
**nota**  
También puede usar valores predeterminados para la sustitución de parámetros y marcadores de posición en el comando. Para obtener más información, consulte [Parameters](job_definition_parameters.md#parameters).

   1. En **Credenciales del repositorio: *opcional***, ingrese el ARN del secreto que contiene sus credenciales.

   1. En **Variables de entorno: *opcional***, seleccione **Agregar variables de entorno** para agregar variables de entorno y pasarlas al contenedor.

   1. En la sección **Parámetros de Linux: *opcional***:

      1. Active la opción **Habilitar el proceso** para ejecutar un proceso dentro del contenedor. 

      1. En **Tamaño de memoria compartida**, ingrese el tamaño (en MiB) del volumen de /dev/shm.

      1. En **Tamaño de intercambio máximo**, introduzca la cantidad total de memoria de intercambio (en MiB) que puede utilizar el contenedor.

      1. En **Intercambio**, introduzca un valor entre 0 y 100 para indicar el comportamiento de intercambio del contenedor. Si no especifica un valor y el intercambio está activado, el valor predeterminado es 60. 

      1. En el caso de los **Dispositivos**, seleccione **Agregar dispositivo** para añadir un dispositivo:

         1. En **Container path (Ruta del contenedor)**, especifique la ruta de la instancia del contenedor que va a exponer el dispositivo asignado a la instancia del host. Si lo deja en blanco, se utiliza la ruta del host en el contenedor.

         1. En **Host path (Ruta de host)**, especifique la ruta de un dispositivo de la instancia del host.

         1. En la página **Permisos**, haga clic en uno o varios permisos para aplicarlos al dispositivo. Los permisos disponibles son **READ**, **WRITE** y **MKNOD**.

      1. En el caso de **Tmpfs**, seleccione **Agregar tmpfs** para añadir una montura `tmpfs`.

   1. 
**nota**  
El registro de Firelens debe realizarse en un contenedor dedicado. Cómo configurar el registro de FireLens:  
En todos los contenedores, excepto en el contenedor dedicado a Firelens, configure el **Controlador de registro** en `awsfirelens`.
En el contenedor de Firelens, configure la **Configuración de Firelens: opcional** y la **Configuración de registro: *opcional*** para el destino del registro.

      En la sección **Configuración de Firelens: opcional**:
**importante**  
AWS Batch aplica el modo de `host` red en trabajos Amazon ECS que no son de MNP ni de Fargate. El [Usuario raíz es obligatorio](https://github.com/aws/aws-for-fluent-bit/blob/mainline/troubleshooting/debugging.md#amazon-ecs-firelens-root-is-required) para Amazon ECS Firelens. Para [mayor seguridad](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#network_mode), cuando ejecute tareas utilizando el modo de red `host`, Amazon ECS recomienda no ejecutar contenedores con el usuario raíz (UID 0). Por lo tanto, todos los trabajos de ECS que no sean de MNP ni de Fargate y que registren Firelens no cumplirán con las prácticas recomendadas de seguridad.

      1. En **Tipo**, elija `fluentd` o `fluentbit`. 

      1. En **Opciones**, introduzca el par de opciones. name/value Puede agregar más **Opciones** mediante la **Opción agregada**.

   1.  En la sección de **Configuración de registro: *opcional***:

      1. En el **Controlador de registro**, elija el controlador de registro que desee utilizar. [Para obtener más información sobre los controladores de registro disponibles, consulte: LogConfiguration LogDriver.](https://docs.aws.amazon.com/batch/latest/APIReference/API_LogConfiguration.html#Batch-Type-LogConfiguration-logDriver)
**nota**  
Se utiliza el controlador de registro `awslogs` de forma predeterminada.

      1. En **Opciones**, elija **Agregar opción** para agregar una opción. Introduzca un par nombre-valor y, a continuación, elija **Agregar opción**.

      1. En **Secretos**, seleccione **Agregar secreto**. Introduzca un par nombre-valor y, a continuación, seleccione **Agregar secreto** para añadir un secreto.
**sugerencia**  
[Para obtener más información, consulte: Opciones secretas. LogConfiguration](https://docs.aws.amazon.com/batch/latest/APIReference/API_LogConfiguration.html#Batch-Type-LogConfiguration-secretOptions)

   1. En **Puntos de montaje: *opcional***, elija la configuración **Agregar puntos de montaje** para agregar puntos de montaje a los volúmenes de datos. Debe especificar el volumen de origen y la ruta del contenedor. 

   1. En **Secretos: *opcional***, seleccione **Agregar secreto** para añadir un secreto. A continuación, introduzca un par nombre-valor y seleccione **Agregar secreto**.
**sugerencia**  
[Para obtener más información, consulte: Opciones secretas. LogConfiguration](https://docs.aws.amazon.com/batch/latest/APIReference/API_LogConfiguration.html#Batch-Type-LogConfiguration-secretOptions)

   1. En **Unlimits: *opcional***, seleccione **Agregar ulimit** para agregar un valor de `ulimits` al contenedor. Introduzca los valores de **Nombre**, **Límite flexible** y **Límite invariable** y, a continuación, elija **Agregar límite máximo**.

   1. En **Dependencias: *opcional***, elija **Agregar dependencias de contenedor**. Elija el nombre del contenedor y su estado para determinar cuándo comienza.

1. Si solo tiene un contenedor configurado, debe elegir **Agregar contenedor** y completar la configuración del nuevo contenedor. De lo contrario, elija **Siguiente** para revisarla. 