Parámetros de definición de tarea - Amazon Elastic Container Service

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.

Parámetros de definición de tarea

Las definiciones de tareas se dividen en partes independientes: la familia de tareas, el rol de tarea de IAM, el modo de red, las definiciones de contenedor, los volúmenes, las restricciones de ubicación de tareas y los tipos de lanzamiento. La familia y las definiciones de contenedor son obligatorias en una definición de tarea, mientras que el rol de tarea, el modo de red, los volúmenes, las restricciones de ubicación de tareas y el tipo de lanzamiento son opcionales.

A continuación, se muestran las descripciones de cada uno de los parámetros de definición de tareas.

Family

family

Tipo: string

Obligatorio: sí

Cuando se registra una definición de tarea, se le da una familia, que es similar a un nombre para varias versiones de la definición de tarea, especificado con un número de revisión. A la primera definición de tarea que se registra en una familia particular se le da una revisión de 1 y a cualquier definición de tarea registrada después se le da un número de revisión secuencial.

Rol de la tarea

taskRoleArn

Tipo: string

Requerido: no

Cuando se registra una definición de tarea, puede proporcionar un rol de tareas para un rol de IAM que permite a los contenedores en el permiso de tareas llamar a los API de AWS que se especifican en sus políticas asociadas en su nombre. Para obtener más información, consulte Roles de IAM para las tareas.

Los roles de IAM para las tareas en Windows requieren que la opción -EnableTaskIAMRole se haya establecido cuando se lance la Amazon ECS-optimized Windows Server AMI. Los contenedores deben ejecutar también código de configuración para aprovechar la característica. Para obtener más información, consulte Roles de IAM para tareas en Windows.

Rol de ejecución de tareas

executionRoleArn

Tipo: string

Requerido: no

El Amazon Resource Name (ARN) del rol de ejecución de tareas que concede al agente de contenedores Amazon ECS permiso para realizar llamadas a la API de AWS en su nombre. El rol de IAM de ejecución de tareas es necesario en función de los requisitos de la tarea. Para obtener más información, consulte Amazon ECS ejecución de tareas IAM función.

Modo de red

networkMode

Tipo: string

Requerido: no

El modo de red de Docker que utilizar para los contenedores en la tarea. Para las Amazon ECS tareas alojadas en Amazon EC2 instancias , los valores válidos son none, bridge awsvpc, y host. Si no se especifica ningún modo de red, el modo de red predeterminado es bridge.

Si el modo de red se establece en none, no puede especificar el mapeo de puertos en la definición del contenedor y los contenedores de tarea no tienen conectividad externa.

Si el modo de red es bridge, la tarea de Docker utiliza la red virtual integrada que se ejecuta dentro de cada instancia de contenedor.

Si el modo de red es host, la tarea omite la red virtual integrada de Docker y asigna los puertos de contenedor directamente a la interfaz de red de la Amazon EC2 instancia. En este modo, no puede ejecutar varias instancias de la misma tarea en una instancia de contenedor única cuando se utiliza el mapeo de puertos.

importante

Al utilizar el modo de host red , no debe ejecutar contenedores con el usuario raíz (UID 0). Se considera una práctica recomendada utilizar un usuario que no sea root.

Si el modo de red es awsvpc, a la tarea se le asigna una interfaz de red elástica y debe especificar NetworkConfiguration al crear un servicio o ejecutar una tarea con la definición de tarea. Para obtener más información, consulte Amazon ECS Integración en red de tareas de. Actualmente, solo Amazon ECS-optimized AMI, otras variantes de Amazon Linux con el paquete ecs-init o la infraestructura de AWS Fargate admiten el modo de red awsvpc.

Los modos de red host y awsvpc ofrecen el rendimiento de redes más alto para contenedores, dado que utilizan la pila de redes de Amazon EC2 en lugar de la pila de redes virtualizada que proporciona el modo bridge. Con los modos de red host y awsvpc, los puertos de contenedor expuestos se asignan directamente al puerto de host correspondiente (para el modo de red host) o al puerto de interfaz de red elástica asociado (para el modo de red awsvpc), por tanto no puede aprovechar los mapeos de puerto de host dinámico.

Docker para Windows utiliza un modo de red diferente (denominado NAT) que Docker para Linux. Cuando se registra una definición de tareas con contenedores de Windows, no debe especificar un modo de red. Si utiliza la Consola de administración de AWS para registrar una definición de tarea con contenedores de Windows, debe elegir el modo de red default.

Si se utiliza el tipo de lanzamiento Fargate, es necesario el modo de red awsvpc. Si se usa el tipo de lanzamiento EC2, el modo de red permitido depende del sistema operativo de la instancia EC2 subyacente. Si es Linux, se puede usar cualquier modo de red. Si es Windows, solo se permite el modo NAT, tal y como se ha explicado anteriormente.

Definiciones de contenedores

Al registrar una definición de tarea, debe especificar una lista de definiciones de contenedor que se transfieren al demonio de Docker en una instancia de contenedor. Los siguientes parámetros están permitidos en una definición de contenedor.

Parámetros de definición de contenedor estándar

Los siguientes parámetros de definición de tarea son obligatorios o utilizados en la mayoría de definiciones de contenedor.

Name

name

Tipo: string

Obligatorio: sí

El nombre de un contenedor. Se admiten hasta 255 letras (mayúsculas y minúsculas), números, guiones y caracteres de subrayado. Si está vinculando varios contenedores conjuntamente en una definición de tarea, el name de un contenedor se puede introducir en los links de otro contenedor para conectar los contenedores.

Image

image

Tipo: string

Obligatorio: sí

La imagen que se utiliza para iniciar un contenedor. Esta cadena se transfiere directamente al demonio de Docker. Las imágenes del registro de Docker Hub están disponibles de forma predeterminada. También puede especificar otros repositorios con repository-url/image:tag o repository-url/image@digest. 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 corresponde con Image en la Crear un contenedor sección de la Docker Remote API y con el IMAGE parámetro de docker run .

  • Cuando se inicia una tarea nueva, el agente de contenedor de Amazon ECS extrae la última versión de la imagen y la etiqueta especificadas para que las utilice el contenedor. Sin embargo, las actualizaciones realizadas posteriormente en un repositorio de imágenes no se propagan a la tareas en ejecución.

  • Se admiten las imágenes de registros privados. Para obtener más información, consulte Autenticación de registros privados para tareas de.

  • Para especificar imágenes de los repositorios de Amazon ECR puede utilizar la convención de nomenclatura completa registry/repository:tag o registry/repository@digest. Por ejemplo, aws_account_id.dkr.ecr.region.amazonaws.com/my-web-app:latest o aws_account_id.dkr.ecr.region.amazonaws.com/my-web-app@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE

  • 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).

Memory

memory

Tipo: número entero

Requerido: no

La cantidad (en MiB) de memoria que se presenta al contenedor. Si su contenedor intenta superar la memoria especificada aquí, se cancela el contenedor. La cantidad total de memoria reservada para todos los contenedores dentro de una tarea debe ser menor que el valor memory de la tarea, si se especifica. Este parámetro se corresponde con Memory en la Crear un contenedor sección de la Docker Remote API y con la --memory opción docker runde .

Si se utiliza el tipo de lanzamiento Fargate, este parámetro es opcional.

Si se utiliza el tipo de lanzamiento EC2, debe especificar un valor de memoria de nivel de tarea o un valor de memoria de nivel de contenedor. Si especifica un valor de memory y un valor de memoryReservation en el nivel de contenedor, memory debe ser mayor que memoryReservation. Si especifica memoryReservation, entonces el valor se resta de los recursos de memoria disponibles para la instancia de contenedor en la que se coloca el contenedor. De lo contrario, se utiliza el valor de memory.

El demonio de Docker reserva un mínimo de 4 MiB de memoria para un contenedor, por tanto no debería especificar menos de 4 MiB de memoria para sus contenedores.

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 en Instancia de contenedor.

memoryReservation

Tipo: número entero

Requerido: no

El límite flexible (en MiB) de memoria que reservar para el contenedor. Cuando la memoria del sistema está bajo contención, Docker intenta mantener la memoria del contenedor en este límite flexible; no obstante, el contenedor puede consumir más memoria cuando lo necesita, bien hasta el límite invariable especificado con el parámetro memory (si procede) o toda la memoria disponible en la instancia de contenedor, lo que ocurra primero. Este parámetro se corresponde con MemoryReservation en la Crear un contenedor sección de la Docker Remote API y con la --memory-reservation opción docker runde .

Si no se especifica un valor de memoria de nivel de tarea, debe especificar un entero distinto de cero para memory o memoryReservation o para ambos en una definición de contenedor. Si especifica ambos, memory debe ser mayor que memoryReservation. Si especifica memoryReservation, entonces el valor se resta de los recursos de memoria disponibles para la instancia de contenedor en la que se coloca el contenedor. De lo contrario, se utiliza el valor de memory.

Por ejemplo, si el contenedor utiliza normalmente 128 MiB de memoria, pero con ráfagas ocasionales de hasta 256 MiB durante períodos de tiempo breves, puede establecer un memoryReservation de 128 MiB y un límite máximo de memory de 300 MiB. Esta configuración permitiría al contenedor reservar solo 128 MiB de memoria de los recursos restantes en la instancia de contenedor, pero también permitiría al contenedor consumir más recursos de memoria en caso necesario.

El demonio de Docker reserva un mínimo de 4 MiB de memoria para un contenedor, por tanto no debería especificar menos de 4 MiB de memoria para sus contenedores.

Mapeos de puertos

portMappings

Tipo: matriz de objetos

Requerido: no

Los mapeos de puertos permiten a los contenedores acceder a puertos en las instancias de contenedor del host para enviar o recibir tráfico.

Para las definiciones de tareas que utilizan el modo de red awsvpc, solo debe especificar containerPort. hostPort puede dejarse en blanco o debe ser el mismo valor que containerPort.

Las asignaciones de puertos en Windows utilizan la dirección de puerto de enlace NetNAT en lugar de localhost. No hay bucle invertido para mapeo de puertos en Windows, por tanto no puede acceder a un puerto mapeado del contenedor desde el propio host.

Este parámetro se corresponde con PortBindings en la Crear un contenedor sección de la Docker Remote API y con la --publish opción docker runde . Si el modo de red de una definición de tarea se establece en host, entonces los puertos de host deben estar sin definir o deben corresponder al puerto de contenedor en el mapeo de puerto.

nota

Después de que una tarea alcanza el estado RUNNING, las asignaciones manuales y automáticas de puertos de contenedor y de host se pueden ver en las siguientes ubicaciones:

  • Consola: la sección Network Bindings (Conexiones de red) de la descripción de un contenedor para una tarea seleccionada.

  • AWS CLI: networkBindings la sección del resultado del describe-tasks comando.

  • API: la respuesta de DescribeTasks.

containerPort

Tipo: número entero

Obligatorio: sí, si se utilizan portMappings.

El número de puerto en el contenedor que está vinculado al puerto de host especificado por el usuario o asignado automáticamente.

En caso de que se utilicen los contenedores en una tarea con el tipo de lanzamiento Fargate, los puertos expuestos deben especificarse mediante containerPort.

En caso de que se utilicen los contenedores en una tarea con el tipo de lanzamiento EC2 y de que se especifique un puerto de contenedor y no un puerto de host, el contenedor recibe automáticamente un puerto de host en el rango de puertos efímeros. Para obtener más información, consulte hostPort. Los mapeos de puerto que se asignan automáticamente de esta manera no se contabilizan en el límite de 100 puertos reservados de una instancia de contenedor.

hostPort

Tipo: número entero

Requerido: no

El número de puerto en la instancia de contenedor que reservar para el contenedor.

En caso de que se utilicen los contenedores en una tarea con el tipo de lanzamiento Fargate, hostPort puede dejarse en blanco o tener el mismo valor que containerPort.

Si utiliza contenedores en una tarea con el tipo de EC2 lanzamiento , puede especificar un puerto de host no reservado para el mapeo de puertos de contenedor (esto se denomina mapeo de puertos de host estático) o puede omitir hostPort (o establecerlo en 0) mientras especifica un containerPort y el contenedor recibe automáticamente un puerto (esto se denomina mapeo de puertos de host dinámico) en el rango de puertos efímeros para el sistema operativo de la instancia de contenedor y Docker.

La versión 1.6.0 de Docker y posteriores para el rango de puertos efímeros predeterminado se puede ver en la instancia en /proc/sys/net/ipv4/ip_local_port_range. Si este parámetro de kernel no está disponible, se 49153–65535 utiliza el rango de puertos efímeros predeterminado de . No intente especificar un puerto de host en el rango de puertos efímeros, ya que estos están reservados para asignación automática. En general, los puertos por debajo de 32768 están fuera del rango de puertos efímeros.

Los puertos reservados predeterminados son 22 para SSH, los puertos de Docker 2375 y 2376 y el puerto de agente de contenedor de Amazon ECS 51678-51680. Cualquier puerto de host especificado por el usuario con anterioridad para una tarea en ejecución también se reserva mientras la tarea está en ejecución (después de detener una tarea, se libera el puerto del host). Los puertos reservados actuales se muestran en la salda remainingResources de describe-container-instances y una instancia de contenedor podría tener hasta 100 puertos reservados a la vez, incluidos los puertos reservados predeterminados. Los puertos asignados automáticamente no se contabilizan en el límite de 100 puertos reservados.

protocol

Tipo: string

Requerido: no

El protocolo utilizado para el mapeo de puertos. Los valores válidos son tcp y udp. El valor predeterminado es tcp.

importante

El soporte de UDP solo está disponible en las instancias de contenedor que se lanzaron con la versión 1.2.0 del agente de contenedor de Amazon ECS (como, por ejemplo, la AMI amzn-ami-2015.03.c-amazon-ecs-optimized) o posteriores, o con los agentes de contenedor que se han actualizado a la versión 1.3.0 o posterior. Para actualizar el agente de contenedor a la versión más reciente, consulte Actualización del agente de Amazon ECS contenedor de.

Use la siguiente sintaxis para especificar un puerto de host:

"portMappings": [ { "containerPort": integer, "hostPort": integer } ... ]

Use la siguiente sintaxis si desea asignar automáticamente un puerto de host:

"portMappings": [ { "containerPort": integer } ... ]

Parámetros de definición de contenedor avanzados

Los siguientes parámetros avanzados de definición de contenedor ofrecen capacidades ampliadas para el comando docker run que se utiliza para lanzar contenedores en las instancias de contenedor de Amazon ECS.

Comprobación de estado

healthCheck

El parámetro de comprobación de estado del contenedor y los parámetros de configuración asociados para el contenedor. Este parámetro se corresponde con HealthCheck en la sección Crear un contenedor de la Docker Remote API y con el parámetro HEALTHCHECK de docker run.

nota

El agente de contenedor de Amazon ECS solo monitoriza e informa sobre las comprobaciones de estado especificadas en la definición de la tarea. Amazon ECS no monitoriza las comprobaciones de estado de Docker integradas en una imagen de contenedor y no especificadas en la definición del contenedor. Los parámetros de comprobación de estado especificados en la definición de un contenedor prevalecen sobre las comprobaciones de estado de Docker que existan en la imagen del contenedor.

Puede ver el estado de mantenimiento de los contenedores individuales y de una tarea con la operación de la API DescribeTasks o al ver los detalles de la tarea en la consola.

A continuación se describen los valores de healthStatus posibles para un contenedor:

  • HEALTHY—La comprobación de estado del contenedor se ha superado correctamente.

  • UNHEALTHY—La comprobación de estado del contenedor ha fallado.

  • UNKNOWN—La comprobación de estado del contenedor se está evaluando o no hay ninguna comprobación de estado definida.

A continuación se describen los posibles valores healthStatus de una tarea. El estado de comprobación del estado del contenedor de los contenedores no esenciales no afecta al estado de mantenimiento de una tarea.

  • HEALTHY—Todos los contenedores esenciales dentro de la tarea han superado sus comprobaciones de estado.

  • UNHEALTHY—Uno o varios contenedores esenciales han fallado la comprobación de estado.

  • UNKNOWN—Los contenedores esenciales dentro de la tarea siguen evaluando sus comprobaciones de estado o no hay comprobaciones de estado de contenedor definidas.

Si una tarea se ejecuta manualmente y no como parte de un servicio, la tarea continuará su ciclo de vida independientemente de su estado de mantenimiento. En el caso de las tareas que forman parte de un servicio, si la tarea informa que no está en buen estado, la tarea se detendrá y el programador de servicios la reemplazará.

A continuación, se muestran algunas notas sobre la compatibilidad con las comprobaciones de estado de los contenedores:

  • Las comprobaciones de estado del contenedor requieren la versión 1.17.0 o posterior del agente de contenedor de Amazon ECS. Para obtener más información, consulte Actualización del agente de Amazon ECS contenedor de.

  • Las comprobaciones de estado de contenedor se admiten para tareas Fargate si está utilizando la versión de la plataforma 1.1.0 o una posterior. Para obtener más información, consulte AWS FargateVersiones de la plataforma .

  • Las comprobaciones de estado de contenedor no se admiten para las tareas que forman parte de un servicio configurado para usar un Classic Load Balancer.

command

Una matriz de cadenas que representa el comando que ejecuta el contenedor para determinar si está en buen estado. La matriz de cadenas puede comenzar por CMD para ejecutar los argumentos del comando directamente, o por CMD-SHELL para ejecutar el comando con el shell predeterminado del contenedor. Si no se especifica ninguno, se utilizará CMD de forma predeterminada.

Al registrar una definición de tarea en la Consola de administración de AWS, utilice una lista de comandos separados por comas, que se convertirá automáticamente en una cadena una vez que se cree la definición de tarea. Un ejemplo de entrada para una comprobación de estado podría ser:

CMD-SHELL, curl -f http://localhost/ || exit 1

Cuando registre una definición de tarea mediante el panel JSON de la Consola de administración de AWS, la AWS CLI o las API, debe incluir la lista de comandos entre corchetes. Un ejemplo de entrada para una comprobación de estado podría ser:

[ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ]

Un código de salida de 0 indica una ejecución correcta y cualquier código de salida distinto de cero indica un error. Para obtener más información, consulte HealthCheck en la Crear un contenedor sección de la Docker Remote API.

interval

El periodo de tiempo en segundos entre cada ejecución de comprobación de estado. Es posible especificar entre 5 y 300 segundos. El valor de predeterminado es de 30 segundos.

timeout

El periodo de tiempo en segundos que hay que esperar para que una comprobación de estado se realice correctamente antes de que se considere un error. Es posible especificar entre 2 y 60 segundos. El valor de predeterminado es de 5 segundos.

retries

Es el número de veces que se reintenta una comprobación de estado fallida antes de que se considere que el contenedor está en mal estado. Es posible especificar entre 1 y 10 reintentos. El valor predeterminado es tres reintentos.

startPeriod

El periodo de gracia opcional dentro del que se puede facilitar a los contenedores tiempo para el arranque antes de que una comprobación de estado fallida se cuente para el número máximo de reintentos. Es posible especificar entre 0 y 300 segundos. El startPeriod está deshabilitado de forma predeterminada.

Environment

cpu

Tipo: número entero

Requerido: no

El número de unidades de cpu que el agente de contenedor Amazon ECS reservará para el contenedor. Este parámetro se corresponde con CpuShares en la Crear un contenedor sección de la Docker Remote API y con la --cpu-shares opción docker runde .

Este campo es opcional para las tareas que utilizan el tipo de lanzamiento Fargate; el único requisito es que la cantidad total de CPU reservada para todos los contenedores de una tarea sea menor que el valor cpu de nivel de tarea.

nota

Puede determinar el número de unidades de CPU que están disponibles por tipo de instancia Amazon EC2 multiplicando por 1 024 el número de vCPU indicadas para dicho tipo de instancia en la página de detalles de Instancias de Amazon EC2.

Los contenedores de Linux comparten unidades de CPU no asignadas con otros contenedores en la instancia de contenedor en la misma proporción que la cantidad asignada. Por ejemplo, si ejecuta una tarea de contenedor único en un tipo de instancia de un solo núcleo con 512 unidades de CPU especificadas para dicho contenedor y esta es la única tarea que se ejecuta en la instancia de contenedor, dicho contenedor podría utilizar la cuota completa de 1 024 unidades de CPU en un momento dado. Sin embargo, si lanzó otra copia de la misma tarea en dicha instancia de contenedor, a cada tarea se le garantizarían como mínimo 512 unidades de CPU en caso necesario y cada contenedor podría tener un uso de CPU mayor si el otro contenedor no la utilizase, pero si ambas tareas estuvieran activas el 100% del tiempo, se limitarían a 512 unidades de CPU.

En las instancias de contenedor de Linux, el demonio de Docker en la instancia de contenedor utiliza el valor de CPU para calcular las proporciones de cuota de CPU relativas para los contenedores en ejecución. Para obtener más información, consulte la sección CPU share constraint de la documentación de Docker. El valor de cuota de CPU válido mínimo que permite el kernel de Linux es 2. Sin embargo, el parámetro de CPU no es obligatorio y puede utilizar valores de CPU por debajo de 2 en sus definiciones de contenedor. Para valores de CPU por debajo de 2 (incluido el valor nulo), el comportamiento varía en función de su versión de agente de contenedor de Amazon ECS:

  • Versiones del agente <= 1.1.0: los valores de CPU nulo y cero se pasan a Docker como 0, que Docker convierte a continuación a 1024 cuotas de CPU. Los valores de CPU de 1 se transfieren a Docker como 1, que el kernel de Linux convierte a 2 cuotas de CPU.

  • Versiones del agente >= 1.2.0: nulo, cero y los valores de CPU de 1 se transfieren a Docker como 2 cuotas de CPU.

En las instancias de contenedor de Windows, el límite de CPU se aplica como un límite absoluto o una cuota. Los contenedores de Windows solo tienen acceso a la cantidad especificada de CPU que se define en la definición de tarea. Un valor de CPU nulo o cero se pasa a Docker como 0, que Windows interpreta como 1 % de una CPU.

gpu

Tipo: objeto ResourceRequirement

Requerido: no

El número de unidades de GPUs físicas que el agente de contenedor de Amazon ECS reservará para el contenedor. El número de unidades GPU reservadas para todos los contenedores de una tarea no debe superar el número de GPU disponibles en la instancia de contenedor en la que se lanza la tarea. Para obtener más información, consulte Uso de GPU en Amazon ECS.

nota

Este parámetro no es compatible con los contenedores Windows o las tareas mediante el tipo de lanzamiento Fargate.

essential

Tipo: Booleano

Requerido: no

Si el parámetro essential de un contenedor se marca como true y dicho contenedor falla o se detiene por algún motivo, se detienen todos los demás contenedores que forman parte de la tarea. Si el parámetro essential de un contenedor se marca como false, entonces su error no afecta al resto de los contenedores en una tarea. Si este parámetro se omite, se supone que un contenedor es esencial.

Todas las tareas deben tener al menos un contenedor esencial. Si tiene una tarea que está compuesta por varios contenedores, debe agrupar los contenedores que se utilizan para un fin común en componentes y separar los distintos componentes en diversas definiciones de tareas. Para obtener más información, consulte Arquitectura de aplicaciones.

"essential": true|false
entryPoint
importante

Las versiones antiguas del agente de contenedor de Amazon ECS no procesan correctamente los parámetros entryPoint. Si tiene problemas al utilizar entryPoint , actualice el agente de contenedor o introduzca los comandos y argumentos como elementos de matriz de command en su lugar.

Tipo: matriz de cadenas

Requerido: no

El punto de entrada que se transfiere al contenedor. Este parámetro se corresponde con Entrypoint en la Crear un contenedor sección de la Docker Remote API y con la --entrypoint opción docker runde . Para obtener más información sobre el parámetro ENTRYPOINT de Docker, visite https://docs.docker.com/engine/reference/builder/#entrypoint.

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

Tipo: matriz de cadenas

Requerido: no

El comando que se transfiere al contenedor. Este parámetro se corresponde con Cmd en la Crear un contenedor sección de la Docker Remote API y con el COMMAND parámetro docker run . Para obtener más información sobre el parámetro CMD de Docker, visite https://docs.docker.com/engine/reference/builder/#cmd. Si hay varios argumentos, cada uno de ellos debe ser una cadena distinta en la matriz.

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

Tipo: string

Requerido: no

El directorio de trabajo en el que ejecutar comandos dentro del contenedor. Este parámetro se corresponde con WorkingDir en la Crear un contenedor sección de la Docker Remote API y con la --workdir opción docker runde .

"workingDirectory": "string"
environmentFiles

Tipo: matriz de objetos

Requerido: no

Una lista de archivos que contienen las variables de entorno que transferir a un contenedor. Este parámetro se mapea con la opción --env-file para docker run.

Puede especificar hasta diez archivos de entorno. El archivo debe tener una extensión de archivo .env. Cada línea de un archivo de entorno debe contener una variable de entorno con el formato VARIABLE=VALUE. Las líneas que comienzan por # se tratan como comentarios y se ignoran. Para obtener más información acerca de la sintaxis del archivo de variables de entorno, consulte Declarar variables de entorno predeterminadas en el archivo.

Si hay variables de entorno individuales especificadas en la definición del contenedor, tienen prioridad sobre las variables que contiene un archivo de entorno. Si se especifican varios archivos de entorno que contienen la misma variable, se procesan en orden descendente. Se recomienda utilizar nombres de variable únicos. Para obtener más información, consulte Especificación de variables de entorno.

Este campo no es válido para contenedores en tareas con el tipo de lanzamiento Fargate.

value

Tipo: String

Obligatorio: sí

Nombre de recurso de Amazon (ARN) del objeto Amazon S3 que contiene el archivo de variable de entorno.

type

Tipo: String

Obligatorio: sí

Tipo de archivo que se utilizará. El único valor admitido es s3.

environment

Tipo: matriz de objetos

Requerido: no

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

importante

No es recomendable que utilice variables del entorno en texto sin formato para información confidencial, como los datos de las credenciales.

name

Tipo: String

Obligatorio: sí, si se utiliza environment

El nombre de la variable de entorno.

value

Tipo: String

Obligatorio: sí, si se utiliza environment

El valor de la variable de entorno.

"environment" : [ { "name" : "string", "value" : "string" }, { "name" : "string", "value" : "string" } ]
secrets

Tipo: matriz de objetos

Obligatorio: no

Un objeto que representa el secreto para exponer en su contenedor. Para obtener más información, consulte Especificación de información confidencial.

name

Tipo: String

Obligatorio: sí

El valor que se ha de establecer como la variable de entorno en el contenedor.

valueFrom

Tipo: String

Obligatorio: sí

El secreto para exponer en el contenedor. Los valores admitidos son el ARN completo del secreto de AWS Secrets Manager o el ARN completo del parámetro en el almacén de parámetros de AWS Administrador de sistemas.

nota

Si el parámetro de Administrador de sistemas Parameter Store existe en la misma región que la tarea que se va a lanzar, se puede utilizar el ARN completo o el nombre del secreto. Si el parámetro existe en una región distinta, el ARN completo debe especificarse.

"secrets": [ { "name": "environment_variable_name", "valueFrom": "arn:aws:ssm:region:aws_account_id:parameter/parameter_name" } ]

Configuración de red

disableNetworking

Tipo: Booleano

Requerido: no

Cuando este parámetro es verdadero, la conexión en red está deshabilitada dentro del contenedor. Este parámetro se mapea a NetworkDisabled en la sección Crear un contenedor de la Docker Remote API.

nota

Este parámetro no es compatible con los contenedores o las tareas de Windows que utilicen el modo de red awsvpc.

"disableNetworking": true|false
links

Tipo: matriz de cadenas

Requerido: no

El parámetro link permite a los contenedores comunicarse entre sí sin la necesidad de mapeos de puerto. Solo se admite si el modo de red de una definición de tarea se establece en bridge. La name:internalName construcción es análoga a name:alias en enlaces de Docker. Se admiten hasta 255 letras (mayúsculas y minúsculas), números, guiones y caracteres de subrayado. Para obtener más información sobre el enlace de contenedores de Docker, vaya a https://docs.docker.com/engine/userguide/networking/default_network/dockerlinks/. Este parámetro se corresponde con Links en la Crear un contenedor sección de la Docker Remote API y con la --link opción docker runde .

nota

Este parámetro no es compatible con los contenedores o las tareas de Windows que utilicen el modo de red awsvpc.

importante

Es posible que los contenedores que se coubican en la misma instancia de contenedor puedan comunicarse entre sí sin necesidad de enlaces ni mapeos de puerto de host. El aislamiento de red en una instancia de contenedor se controla mediante los grupos de seguridad y la configuración de VPC.

"links": ["name:internalName", ...]
hostname

Tipo: string

Requerido: no

El nombre de host que utilizar para el contenedor. Este parámetro se corresponde con Hostname en la Crear un contenedor sección de la Docker Remote API y con la --hostname opción docker runde .

nota

El parámetro hostname no se admite si se usa el modo de red awsvpc.

"hostname": "string"
dnsServers

Tipo: matriz de cadenas

Requerido: no

Una lista de servidores DNS que se presentan al contenedor. Este parámetro se corresponde con Dns en la Crear un contenedor sección de la Docker Remote API y con la --dns opción docker runde .

nota

Este parámetro no es compatible con los contenedores o las tareas de Windows que utilicen el modo de red awsvpc.

"dnsServers": ["string", ...]
dnsSearchDomains

Tipo: matriz de cadenas

Requerido: no

Patrón: ^[a-zA-Z0-9-.]{0,253}[a-zA-Z0-9]$

Una lista de dominios de búsqueda DNS que se presentan al contenedor. Este parámetro se corresponde con DnsSearch en la Crear un contenedor sección de la Docker Remote API y con la --dns-search opción docker runde .

nota

Este parámetro no es compatible con los contenedores o las tareas de Windows que utilicen el modo de red awsvpc.

"dnsSearchDomains": ["string", ...]
extraHosts

Tipo: matriz de objetos

Requerido: no

Una lista de nombres de host y mapeos de direcciones IP que añadir al archivo /etc/hosts en el contenedor.

Este parámetro se corresponde con ExtraHosts en la Crear un contenedor sección de la Docker Remote API y con la --add-host opción docker runde .

nota

Este parámetro no es compatible con los contenedores o las tareas de Windows que utilicen el modo de red awsvpc.

"extraHosts": [ { "hostname": "string", "ipAddress": "string" } ... ]
hostname

Tipo: string

Obligatorio: sí, si se utilizan extraHosts.

El nombre de host para utilizar en la entrada /etc/hosts.

ipAddress

Tipo: string

Obligatorio: sí, si se utilizan extraHosts.

La dirección IP para utilizar en la entrada /etc/hosts.

Almacenamiento y registro

readonlyRootFilesystem

Tipo: Booleano

Requerido: no

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 Crear un contenedor sección de la Docker Remote API y con la --read-only opción docker runde .

nota

Este parámetro no es compatible con contenedores Windows.

"readonlyRootFilesystem": true|false
mountPoints

Type: Object Array

Required: No

The mount points for data volumes in your container.

This parameter maps to Volumes in the Crear un contenedor section of the Docker Remote API and the --volume option to docker run.

Windows containers can mount whole directories on the same drive as $env:ProgramData. Windows containers cannot mount directories on a different drive, and mount point cannot be across drives.

sourceVolume

Type: String

Required: Yes, when mountPoints are used

The name of the volume to mount.

containerPath

Type: String

Required: Yes, when mountPoints are used

The path on the container to mount the volume at.

readOnly

Type: Boolean

Required: No

If this value is true, the container has read-only access to the volume. If this value is false, then the container can write to the volume. The default value is false.

volumesFrom

Tipo: matriz de objetos

Obligatorio: no

Volúmenes de datos que montar desde otro contenedor. Este parámetro se corresponde con VolumesFrom en la Crear un contenedor sección de la Docker Remote API y con la --volumes-from opción docker runde .

sourceContainer

Tipo: string

Obligatorio: sí, si se utiliza volumesFrom

El nombre del volumen contenedor desde el que montar los volúmenes.

readOnly

Tipo: Booleano

Requerido: no

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. El valor predeterminado es false.

"volumesFrom": [ { "sourceContainer": "string", "readOnly": true|false } ]
logConfiguration

Tipo: objeto LogConfiguration

Requerido: no

La especificación de configuración de registros para el contenedor.

Por ejemplo, para definiciones de tareas utilizando una configuración de registro, consulte Ejemplos de definiciones de tarea.

Este parámetro se corresponde con LogConfig en la Crear un contenedor sección de la Docker Remote API y con la --log-driver opción docker runde . De forma predeterminada, los contenedores utilizan el mismo controlador de registro que utiliza el demonio de Docker; no obstante, el contenedor podría utilizar un controlador de registro distinto para el demonio 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 Configure logging drivers en la documentación de Docker.

Debe tener en cuenta lo siguiente al especificar una configuración de registros para sus contenedores:

  • Amazon ECS actualmente admite un subconjunto de los controladores de registro disponibles para el demonio de Docker (se muestra en los valores válidos a continuación). Es posible que haya controladores de registro adicionales en versiones futuras del agente de contenedor de Amazon ECS.

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

  • Para tareas que utilizan el tipo de lanzamiento EC2, 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 antes de que los contenedores colocados en dicha instancia puedan utilizar estas opciones de configuración de registros. Para obtener más información, consulte Amazon ECSConfiguración del agente de contenedor de .

  • Para las tareas que usan el tipo de lanzamiento Fargate, dado que no tiene acceso a la infraestructura subyacente donde se alojan sus tareas, cualquier software adicional necesario se tendrá que instalar fuera de la tarea. Por ejemplo, los agregadores de salida Fluentd o un host remoto que ejecute Logstash al que enviar los registros de Gelf.

"logConfiguration": { "logDriver": "awslogs","fluentd","gelf","json-file","journald","logentries","splunk","syslog","awsfirelens", "options": {"string": "string" ...}, "secretOptions": [{ "name": "string", "valueFrom": "string" }] }
logDriver

Tipo: string

Valores válidos: "awslogs","fluentd","gelf","json-file","journald","logentries","splunk","syslog","awsfirelens"

Obligatorio: sí, si se utiliza logConfiguration

El controlador de registro que utilizar para el contenedor. Los valores válidos mostrados anteriormente son controladores de registro con los que el agente de contenedor de Amazon ECS se puede comunicar de forma predeterminada.

En el caso de las tareas que usan el tipo de lanzamiento Fargate, los controladores de registro admitidos son awslogs, splunk y awsfirelens.

Para las tareas que utilizan el tipo de EC2 lanzamiento , los controladores de registro admitidos son awslogs, fluentd, gelf, json-file journald, logentries, syslog, splunk, y awsfirelens.

Para obtener más información sobre el uso del controlador de registro awslogs en las definiciones de tareas para enviar registros de contenedor a CloudWatch Logs, consulte Uso del controlador de registros awslogs.

Para obtener más información sobre el uso del controlador del registro awsfirelens, consulte Envío de registros personalizados.

nota

Si tiene un controlador personalizado que no figura, puede adaptar el proyecto del agente de contenedor de Amazon ECS que está disponible en GitHub y personalizarlo para que funcione con dicho controlador. Le recomendamos enviar solicitudes de inserción para los cambios que le gustaría que incluyamos. No obstante, actualmente no ofrecemos soporte para la ejecución de copias modificadas de este software.

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

options

Tipo: cadena para mapa de cadenas

Requerido: no

Las opciones de configuración que enviar al controlador de registro.

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

secretOptions

Tipo: matriz de objetos

Requerido: no

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

name

Tipo: String

Obligatorio: sí

El valor que se ha de establecer como la variable de entorno en el contenedor.

valueFrom

Tipo: String

Obligatorio: sí

El secreto que exponer a la configuración de registro del contenedor.

"logConfiguration": { "logDriver": "splunk", "options": { "splunk-url": "https://cloud.splunk.com:8080", "splunk-token": "...", "tag": "...", ... }, "secretOptions": [{ "name": "splunk-token", "valueFrom": "/ecs/logconfig/splunkcred" }] }
firelensConfiguration

Tipo: FirelensConfiguration

Obligatorio: no

La configuración de FireLens para el contenedor. Se utiliza para especificar y configurar un router de registro para registros de contenedores. Para obtener más información, consulte Enrutamiento de registros personalizado.

{ "firelensConfiguration": { "type": "fluentd", "options": { "KeyName": "" } } }
options

Tipo: mapa de cadena a cadena

Obligatorio: no

Las opciones que se deben usar al configurar el router de registros. Este campo es opcional y se puede utilizar para especificar un archivo de configuración personalizado o para añadir metadatos adicionales, como la tarea, la definición de tareas, el clúster y los detalles de la instancia de contenedor al evento de registro. Si se especifica, la sintaxis que se va a utilizar es "options":{"enable-ecs-log-metadata":"true|false","config-file-type:"s3|file","config-file-value":"arn:aws:s3:::mybucket/fluent.conf|filepath"}. Para obtener más información, consulte Creación de una definición de tarea que utiliza una configuración de FireLens .

type

Tipo: String

Obligatorio: sí

El router de registros que se va a utilizar. Los valores válidos son fluentd o fluentbit.

Security

privileged

Tipo: Booleano

Requerido: no

Cuando este parámetro es verdadero, al contenedor se le conceden privilegios elevados en la instancia de contenedor de host, similares a los de un usuario root.

Este parámetro se corresponde con Privileged en la Crear un contenedor sección de la Docker Remote API y con la --privileged opción docker runde .

nota

Este parámetro no es compatible con los contenedores Windows o las tareas mediante el tipo de lanzamiento Fargate.

"privileged": true|false
user

Tipo: string

Requerido: no

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

importante

Cuando ejecute tareas utilizando el modo de red host, no debe ejecutar contenedores con el usuario root (UID 0). Se considera una práctica recomendada utilizar un usuario que no sea root.

Puede especificar el elemento user utilizando los siguientes formatos. Si se especifica un UID o GID, debe especificarlo como número entero positivo.

  • user

  • user:group

  • uid

  • uid:gid

  • user:gid

  • uid:group

nota

Este parámetro no es compatible con contenedores Windows.

"user": "string"
dockerSecurityOptions

Tipo: matriz de cadenas

Valores válidos: "no-new-privileges" | "apparmor:PROFILE" | "label:value" | "credentialspec:CredentialSpecFilePath"

Requerido: no

Una lista de cadenas para proporcionar etiquetas para sistemas de seguridad multinivel SELinux y AppArmor. Para obtener más información acerca de los valores válidos, vea Docker Run Security Configuration. Este campo no es válido para contenedores en tareas con el tipo de lanzamiento Fargate.

Con contenedores de Windows, este parámetro se puede utilizar para hacer referencia a un archivo de especificación de credenciales al configurar un contenedor para la autenticación con Active Directory. Para obtener más información, consulte Uso de gMSA para contenedores de Windows.

Este parámetro se corresponde con SecurityOpt en la Crear un contenedor sección de la Docker Remote API y con la --security-opt opción dockerde .

"dockerSecurityOptions": ["string", ...]
nota

El agente de contenedor de Amazon ECS que se ejecuta en una instancia de contenedor debe registrarse con las variables de entorno ECS_SELINUX_CAPABLE=true o ECS_APPARMOR_CAPABLE=true antes de que los contenedores situados en dicha instancia puedan utilizar estas opciones de seguridad. Para obtener más información, consulte Amazon ECSConfiguración del agente de contenedor de .

Límites de recursos

ulimits

Tipo: matriz de objetos

Requerido: no

Una lista de ulimit valores que se van a definir para un contenedor. Este valor sobrescribiría la configuración predeterminada del límite de recursos para el sistema operativo. Este parámetro se corresponde con Ulimits en la Crear un contenedor sección de la Docker Remote API y con la --ulimit opción docker runde .

Las tareas de Amazon ECS alojadas en Fargate utilizan los valores de los límites de recursos predeterminados establecidos por el sistema operativo con la excepción del parámetro de límite de recursos nofile que Fargate invalida. El límite de recursos nofile define una restricción en el número de archivos abiertos que puede utilizar un contenedor. El límite flexible nofile predeterminado es 1024 y el límite máximo es 4096. Para obtener más información, consulte Límites de recursos de tareas.

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

nota

Este parámetro no es compatible con contenedores Windows.

"ulimits": [ { "name": "core"|"cpu"|"data"|"fsize"|"locks"|"memlock"|"msgqueue"|"nice"|"nofile"|"nproc"|"rss"|"rtprio"|"rttime"|"sigpending"|"stack", "softLimit": integer, "hardLimit": integer } ... ]
name

Tipo: string

Valores válidos: "core" | "cpu" | "data" | "fsize" | "locks" | "memlock" | "msgqueue" | "nice" | "nofile" | "nproc" | "rss" | "rtprio" | "rttime" | "sigpending" | "stack"

Obligatorio: sí, si se utilizan ulimits.

del type ulimit.

hardLimit

Tipo: número entero

Obligatorio: sí, si se utilizan ulimits.

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

softLimit

Tipo: número entero

Obligatorio: sí, si se utilizan ulimits.

El límite flexible para el tipo de ulimit.

Etiquetas de Docker

dockerLabels

Tipo: cadena para mapa de cadenas

Requerido: no

Un mapa de clave/valor de etiquetas que agregar al contenedor. Este parámetro se corresponde con Labels en la Crear un contenedor sección de la Docker Remote API y con la --label opción docker runde .

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

"dockerLabels": {"string": "string" ...}

Otros parámetros de definición de contenedor

Los siguientes parámetros de definición de contenedor se pueden utilizar al registrar definiciones de tareas en la Amazon ECS consola de mediante la opción Configure via JSON (Configurar a través de JSON). Para obtener más información, consulte Creación de una definición de tarea.

Parámetros de Linux

linuxParameters

Tipo: objeto LinuxParameters

Requerido: no

Opciones específicas de Linux que se aplican al contenedor, como KernelCapabilities.

nota

Este parámetro no es compatible con contenedores Windows.

"linuxParameters": { "capabilities": { "add": ["string", ...], "drop": ["string", ...] } }
capabilities

Tipo: objeto KernelCapabilities

Requerido: no

Las capacidades de Linux para el contenedor que se añaden a la configuración predeterminada proporcionada por Docker o se eliminan de ella. Para obtener más información acerca de las capacidades predeterminadas y las capacidades no predeterminadas disponibles, consulte Runtime privilege and Linux capabilities en la referencia de ejecución de Docker. Para obtener información más detallada acerca de estas capacidades de Linux, consulte la página del manual de Linux acerca de capacidades(7).

add

Tipo: matriz de cadenas

Valores válidos: "ALL" | "AUDIT_CONTROL" | "AUDIT_READ" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" | "WAKE_ALARM"

Requerido: no

Las capacidades de Linux para el contenedor que se deben añadir a la configuración predeterminada proporcionada por Docker. Este parámetro se mapea a CapAdd en la sección Crear un contenedor de la Docker Remote API y a la opción --cap-add de docker run.

nota

Las tareas lanzadas en Fargate solo admiten la adición de la capacidad del SYS_PTRACE kernel.

drop

Tipo: matriz de cadenas

Valores válidos: "ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" | "WAKE_ALARM"

Requerido: no

Las capacidades de Linux para el contenedor que se deben eliminar de la configuración predeterminada proporcionada por Docker. Este parámetro se mapea a CapDrop en la sección Crear un contenedor de la Docker Remote API y a la opción --cap-drop de docker run.

devices

Cualquier dispositivo host que exponer en el contenedor. Este parámetro se mapea a Devices en la sección Crear un contenedor de la Docker Remote API y a la opción --device de docker run.

nota

Si utiliza tareas que emplean el tipo de lanzamiento Fargate, no se admite el parámetro devices.

Tipo: matriz de objetos Device

Obligatorio: no

hostPath

La ruta del dispositivo de la instancia de contenedor del host.

Tipo: String

Obligatorio: sí

containerPath

La ruta dentro del contenedor en la que exponer el dispositivo host.

Tipo: String

Obligatorio: no

permissions

Los permisos explícitos que proporcionar al contenedor para el dispositivo. De forma predeterminada, el contenedor tiene permisos para read, write y mknod en el dispositivo.

Tipo: matriz de cadenas

Valores válidos: read | write | mknod

initProcessEnabled

Ejecute un proceso 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.

maxSwap

La cantidad total de memoria de intercambio (en MiB) que puede utilizar un contenedor. Este parámetro se traducirá en la opción --memory-swap de docker run donde el valor sería la suma de la memoria del contenedor más el valor de maxSwap.

Si se especifica un valor maxSwap para 0, el contenedor no utilizará el intercambio. Los valores aceptados son 0 o cualquier entero positivo. Si se omite el parámetro maxSwap, el contenedor utilizará 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

Si utiliza tareas que emplean el tipo de lanzamiento Fargate, no se admite el parámetro maxSwap.

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

Si utiliza tareas que emplean el tipo de lanzamiento Fargate, no se admite el parámetro sharedMemorySize.

Tipo: Número entero

swappiness

Esta opción le permite ajustar el comportamiento de intercambio de memoria de un contenedor. Un valor de swappiness de 0 hará que el intercambio no se realice a menos que sea absolutamente necesario. Un valor de swappiness de 100 incrementará 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 utilizará el valor predeterminado de 60. Si no se especifica ningún valor para maxSwap, este parámetro se omite. Este parámetro se corresponde con la opción --memory-swappiness de docker run.

nota

Si utiliza tareas que emplean el tipo de lanzamiento Fargate, no se admite el parámetro swappiness.

tmpfs

La ruta del contenedor, las opciones de montaje y el tamaño máximo (en MiB) del tmpfs montado. Este parámetro se corresponde con la opción --tmpfs de docker run.

nota

Si utiliza tareas que emplean el tipo de lanzamiento Fargate, no se admite el parámetro tmpfs.

Tipo: matriz de objetos Tmpfs

Obligatorio: no

containerPath

La ruta de archivo tmpfs absoluta en la que se montará el volumen.

Tipo: String

Obligatorio: sí

mountOptions

La lista opciones de montaje del volumen tmpfs.

Tipo: matriz de cadenas

Obligatorio: no

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"

size

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

Tipo: Número entero

Obligatorio: sí

Dependencia de contenedor

dependsOn

Tipo: matriz de objetos ContainerDependency

Requerido: no

Las dependencias definidas para el inicio y apagado del contenedor. Un contenedor puede contener varias dependencias. Cuando una dependencia se define para el inicio del contenedor, para cierre de contenedor se invierte. Para ver un ejemplo, consulte Ejemplo: Dependencia del contenedor.

nota

Si un contenedor no cumple una restricción de dependencia o se agota el tiempo de espera antes de cumplir la restricción, Amazon ECS no avanza los contenedores dependientes a su siguiente estado.

Para las Amazon ECS tareas alojadas en Amazon EC2 instancias , las instancias requieren al menos la versión del agente 1.26.0 de contenedor de para habilitar las dependencias de contenedor. No obstante, recomendamos utilizar la versión del agente de contenedor más reciente. Para obtener información sobre la comprobación de la versión del agente y la actualización a la versión más reciente, consulte Actualización del agente de Amazon ECS contenedor de. Si utiliza un Amazon ECS-optimized Amazon Linux AMI, la instancia necesita al menos la versión 1.26.0-1 del ecs-init paquete. Si las instancias de contenedor se lanzan desde la versión 20190301 o posterior, entonces contienen las versiones requeridas del agente de contenedor y ecs-init. Para obtener más información, consulte Amazon ECS-optimized AMIs.

Para las Amazon ECS tareas alojadas en Fargate, este parámetro requiere que la tarea o el servicio utilicen la versión de la plataforma 1.3.0 o posterior.

"dependsOn": [ { "containerName": "string", "condition": "string" } ]
containerName

Tipo: String

Obligatorio: sí

El nombre del contenedor que debe cumplir la condición especificada.

condition

Tipo: String

Obligatorio: sí

La condición de dependencia del contenedor. Están disponibles las siguientes condiciones y su comportamiento:

  • START – Esta condición simula el comportamiento de enlaces y volúmenes en la actualidad. Valida que un contenedor dependiente se inicia antes de permitir que se inicien otros contenedores.

  • COMPLETE – Esta condición valida que un contenedor dependiente se ejecute hasta su finalización (se cierre) antes de permitir que otros contenedores se inicien. Esto puede resultar útil para contenedores no esenciales que ejecutan un script y, a continuación, se cierran. Esta condición no se puede establecer en un contenedor esencial.

  • SUCCESS – Esta condición es la misma que COMPLETE, pero además requiere que el contenedor se cierre con un estado zero. Esta condición no se puede establecer en un contenedor esencial.

  • HEALTHY – Esta condición valida que el contenedor dependiente pase su comprobación de estado de Docker antes de permitir que otros contenedores se inicien. Esto requiere que el contenedor dependiente tenga configuradas las comprobaciones de estado. Esta condición solo se confirma durante el inicio de tarea.

Tiempos de espera de contenedor

startTimeout

Tipo: Número entero

Requerido: no

Valores de ejemplo: 120

Tiempo que hay que esperar (en segundos) antes de desistir en resolver dependencias para un contenedor.

Por ejemplo, debe especificar dos contenedores en una definición de tarea con containerA la dependencia de containerB alcanzar un COMPLETE estado SUCCESS, HEALTHYo . Si se especifica un startTimeout valor para containerB y no alcanza el estado deseado dentro de ese tiempo, se containerA desistirá y no comenzará.

nota

Si un contenedor no cumple una restricción de dependencia o se agota el tiempo de espera antes de cumplir la restricción, Amazon ECS no avanza los contenedores dependientes a su siguiente estado.

Para las Amazon ECS tareas alojadas en Fargate, este parámetro requiere que la tarea o el servicio utilicen la versión de la plataforma 1.3.0 o posterior. Cuando se utiliza la versión de la plataforma 1.4.0, si no se especifica este parámetro, se utiliza el valor predeterminado de 60 segundos.

stopTimeout

Tipo: Número entero

Requerido: no

Valores de ejemplo: 120

Duración de tiempo (en segundos) que esperar a que el contenedor se cancelen de forma forzada si no sale de forma normal por sí mismo.

Para las tareas que usan el tipo de lanzamiento Fargate, la tarea o servicio requiere la versión 1.3.0 o posterior de la plataforma. El valor máximo de tiempo de espera de parada es 120 segundos y, si no se especifica el parámetro, se utiliza el valor predeterminado de 30 segundos.

Para las tareas que utilizan el tipo de lanzamiento EC2, si no se especifica el parámetro stopTimeout, se utiliza de forma predeterminada el valor establecido para la variable de configuración del agente de contenedores de Amazon ECS ECS_CONTAINER_STOP_TIMEOUT. Si no se establece ni el parámetro stopTimeout ni la variable de configuración del agente ECS_CONTAINER_STOP_TIMEOUT, se utilizarán los valores predeterminados de 30 segundos para los contenedores Linux y de 30 segundos para los contenedores Windows. Las instancias de contenedor requieren al menos la versión 1.26.0 del agente de contenedor para habilitar un valor de tiempo de espera de parada de contenedor. No obstante, recomendamos utilizar la versión del agente de contenedor más reciente. Para obtener información sobre la comprobación de la versión del agente y la actualización a la versión más reciente, consulte Actualización del agente de Amazon ECS contenedor de. Si está utilizando una Amazon ECS-optimized Amazon Linux AMI, la instancia necesita al menos la versión 1.26.0-1 del paquete ecs-init. Si las instancias de contenedor se lanzan desde la versión 20190301 o posterior, entonces contienen las versiones requeridas del agente de contenedor y ecs-init. Para obtener más información, consulte Amazon ECS-optimized AMIs.

Controles del sistema

systemControls

Tipo: objeto SystemControl

Requerido: no

Una lista de parámetros de kernel asignados a un espacio de nombres que se van a establecer en el contenedor. Este parámetro se corresponde con Sysctls en la Crear un contenedor sección de la Docker Remote API y con la --sysctl opción docker runde .

No es recomendable especificar parámetros systemControls relacionados con la red para varios contenedores en una única tarea que también utilice el modo de red awsvpc u host por los siguientes motivos:

  • En las tareas que utilicen el modo de red awsvpc, si establece systemControls en cualquier contenedor, esto se aplicará a todos los contenedores de la tarea. Si establece diferentes parámetros systemControls para varios contenedores en una sola tarea, el contenedor que se inicie en último lugar determinará cuál de los parámetros systemControls se aplicará.

  • Para las tareas que utilizan el modo de red host, no se admiten los systemControls del espacio de nombres de la red.

Si está configurando un espacio de nombres de recursos de IPC para usarlo para los contenedores de la tarea, se aplicará lo siguiente a los controles de su sistema. Para obtener más información, consulte Modo IPC.

  • Para las tareas que usan el modo IPC host, no se admiten los systemControls del espacio de nombres IPC.

  • Para las tareas que usan el modo de IPC task, los valores de systemControls del espacio de nombres IPC se aplicarán a todos los contenedores de una tarea.

nota

Este parámetro no es compatible con los contenedores Windows o las tareas mediante el tipo de lanzamiento Fargate.

"systemControls": [ { "namespace":"string", "value":"string" } ]
namespace

Tipo: String

Requerido: no

El parámetro de kernel asignado a un espacio de nombres para el que se va a establecer un value.

Valores de espacio de nombres IPC válidos: "kernel.msgmax" | "kernel.msgmnb" | "kernel.msgmni" | "kernel.sem" | "kernel.shmall" | "kernel.shmmax" | "kernel.shmmni" | "kernel.shm_rmid_forced", así como los Sysctls que empiecen por "fs.mqueue.*"

Valores de espacio de nombres de red válidos: Sysctls que empiecen por "net.*"

value

Tipo: String

Requerido: no

El valor del parámetro de kernel asignado a un espacio de nombres especificado en namespace.

Interactive

interactive

Tipo: Booleano

Requerido: no

Si este parámetro es true, es posible implementar aplicaciones en contenedores que requieran la asignación de stdin o un tty. Este parámetro se corresponde con OpenStdin en la Crear un contenedor sección de la Docker Remote API y con la --interactive opción docker runde .

Pseudoterminal

pseudoTerminal

Tipo: Booleano

Requerido: no

Cuando este parámetro es true, se asigna un TTY. Este parámetro se corresponde con Tty en la Crear un contenedor sección de la Docker Remote API y con la --tty opción docker runde .

Volumes

Al registrar una definición de tareas, se puede especificar una lista de los volúmenes que se transferirán al demonio de Docker en una instancia de contenedor, que entonces estará disponible para otros contenedores en la misma instancia de contenedor.

A continuación se indican los tipos de volúmenes de datos que se pueden usar:

  • Volúmenes de Docker: un volumen administrado por Docker que se crea en /var/lib/docker/volumes en la instancia Amazon EC2 del host. Los controladores de volúmenes de Docker (denominados también "complementos") se usan para integrar los volúmenes con sistemas de almacenamiento externos como Amazon EBS. Se puede usar el controlador de volumen local integrado o un controlador de volumen de terceros. Los volúmenes de Docker solo se admiten cuando se ejecutan tareas en instancias Amazon EC2. Los contenedores de Windows solo admiten el uso del controlador local. Para utilizar volúmenes de Docker, especifique dockerVolumeConfiguration en su definición de tarea. Para obtener más información, consulte Uso de volúmenes.

  • Montajes vinculados: un archivo o directorio de la máquina host se monta en un contenedor. Los volúmenes de host de montaje vinculado son compatibles cuando se ejecutan tareas en instancias AWS Fargate o Amazon EC2. Para utilizar volúmenes de host de montaje vinculado, especifique host y un valor de sourcePath opcional en su definición de tarea. Para obtener más información, consulte la página sobre el uso de montajes vinculados.

Para obtener más información, consulte Uso de volúmenes de datos en tareas de.

Los siguientes parámetros están permitidos en una definición de contenedor:

name

Tipo: String

Requerido: No

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 del objeto mountPoints de la definición de contenedor.

host

Requerido: No

nota

El parámetro host solo se admite cuando se utilizan tareas alojadas en instancias Amazon EC2.

El parámetro host se utiliza para vincular el ciclo de vida del montaje de enlace a la instancia Amazon EC2 del host, en lugar de la tarea, y dónde se almacena. Si el parámetro host está vacío, entonces el demonio de Docker asigna una ruta de host a su volumen de datos, pero no se garantiza que los datos persistan después de que los contenedores asociados dejen de funcionar.

Los contenedores de Windows pueden montar directorios completos en la misma unidad que $env:ProgramData.

sourcePath

Tipo: String

Requerido: No

Cuando utilice el parámetro host, especifique un sourcePath para declarar la ruta de la instancia Amazon EC2 host que se presenta al contenedor. Si este parámetro está vacío, el demonio de Docker asigna una ruta de host. Si el parámetro host contiene una ubicación de archivos sourcePath, el volumen de datos persiste en la ubicación especificada en la instancia Amazon EC2 host hasta que la elimine manualmente. Si el valor sourcePath no existe en la instancia Amazon EC2 host, el demonio de Docker la crea. Si la ubicación existe, el contenido de la carpeta de la ruta de origen se exporta.

dockerVolumeConfiguration

Tipo: objeto

Requerido: No

Este parámetro se especifica cuando se usan volúmenes de Docker. Los volúmenes de Docker solo se admiten cuando se ejecutan tareas en instancias EC2. Los contenedores de Windows solo admiten el uso del controlador local. Para utilizar montajes vinculados, especifique host en su lugar.

scope

Tipo: String

Valores válidos: task | shared

Requerido: No

El ámbito del volumen de Docker, que determina su ciclo de vida. Los volúmenes de Docker con un ámbito de task se aprovisionan automáticamente cuando se inicia la tarea y se destruyen cuando se limpia la tarea. Los volúmenes de Docker cuyo ámbito es shared se conservan una vez detenida la tarea.

autoprovision

Tipo: booleano

Valor predeterminado: false

Requerido: No

Si este valor es true, el volumen de Docker se crea si aún no existe. Este campo solo se usa si scope es shared. Si el valor de scope es task, este parámetro se debe omitir o establecer en false.

driver

Tipo: String

Requerido: No

El controlador del volumen de Docker que se va a usar. El valor de controlador debe coincidir con el nombre del controlador proporcionado por Docker, ya que se usa para la ubicación de tareas. Si el controlador se instaló mediante la CLI del complemento Docker, use docker plugin ls para recuperar el nombre de controlador de la instancia de contenedor. Si el controlador se instaló con otro método, use la detección de complementos de Docker para recuperar el nombre del controlador. Para obtener más información, consulte la documentación sobre la detección de complementos de Docker. Este parámetro se corresponde con Driver en la sección Create a volume (Crear un volumen) de la Docker Remote API y la opción --driver de docker volume create.

driverOpts

Tipo: String

Requerido: No

Una correspondencia de las opciones específicas del controlador Docker que se pasan. Este parámetro se corresponde con DriverOpts en la sección Create a volume (Crear un volumen) de la Docker Remote API y la opción --opt de docker volume create.

labels

Tipo: String

Requerido: No

Metadatos personalizados que se añaden al volumen de Docker. Este parámetro se corresponde con Labels en la sección Create a volume (Crear un volumen) de la Docker Remote API y la opción --label de docker volume create.

efsVolumeConfiguration

Tipo: objeto

Requerido: No

Este parámetro se especifica cuando se usan volúmenes de Amazon EFS.

fileSystemId

Tipo: cadena

Requerido: sí

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

rootDirectory

Tipo: String

Requerido: No

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 utilizará la raíz del volumen de Amazon EFS. Si se especifica /, se obtendrá el mismo efecto que si se omite este parámetro.

importante

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

transitEncryption

Tipo: cadena

Valores válidos: ENABLED | DISABLED

Obligatorio: No

Determina si debe habilitarse o no el cifrado en los datos de Amazon EFS en tránsito entre el host de Amazon ECS y el servidor de Amazon EFS. El cifrado de 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: 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.

transitEncryptionPort

Tipo: Número entero

Requerido: No

Puerto que se va a utilizar para enviar datos cifrados entre el host de Amazon ECS y el servidor de Amazon EFS. Si no especifica un puerto de cifrado de tránsito, utilizará la estrategia de selección de puertos que utiliza el ayudante de montaje de Amazon EFS. Para obtener más información, consulte Ayudante de montaje de EFS en la Guía del usuario de Amazon Elastic File System.

authorizationConfig

Tipo: objeto

Requerido: No

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

accessPointId

Tipo: String

Requerido: No

ID de punto de acceso que se va a utilizar. Si se especifica un punto de acceso, el valor del directorio raíz en efsVolumeConfiguration se debe omitir o establecer en / que aplicará la ruta establecida en el punto de acceso 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 este artículo sobre el uso de puntos de acceso de Amazon EFS en la Guía del usuario de Amazon Elastic File System.

iam

Tipo: cadena

Valores válidos: ENABLED | DISABLED

Obligatorio: No

Determina si debe utilizarse o no el rol de IAM de la tarea de Amazon ECS especificado en una definición de tarea 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: DISABLED. Para obtener más información, consulte Roles de IAM para las tareas.

FSxWindowsFileServerVolumeConfiguration

Tipo: objeto

Requerido: sí

Este parámetro se especifica cuando se utiliza el sistema de archivos Amazon FSx para el servidor de archivos de Windows para el almacenamiento de tareas.

fileSystemId

Tipo: cadena

Requerido: sí

El ID del sistema de archivos de Amazon FSx para el servidor de archivos de Windows que se va a utilizar.

rootDirectory

Tipo: cadena

Requerido: sí

El directorio del sistema de archivos de Amazon FSx para el servidor de archivos de Windows que se va a montar como directorio raíz dentro del host.

authorizationConfig
credentialsParameter

Tipo: cadena

Requerido: sí

Las opciones de credenciales de autorización.

opciones:

domain

Tipo: cadena

Requerido: sí

Un nombre de dominio cualificado completo alojado por un AD de Microsoft administrado por AWS Directory Service (Active Directory) o AD de EC2 con alojamiento propio.

Restricciones para ubicación de tareas

Cuando se registra una definición de tarea, puede proporcionar restricciones de colocación de tareas que personalizan cómo coloca Amazon ECS las tareas.

Si usa el tipo de lanzamiento Fargate, no se admiten las restricciones de ubicación de tareas. De forma predeterminada, las tareas de Fargate se reparten entre las zonas de disponibilidad.

Para las tareas que usan el tipo de lanzamiento EC2, puede usar las restricciones para ubicar tareas basadas en zona de disponibilidad, tipo de instancia o atributos personalizados. Para obtener más información, consulte Amazon ECS Restricciones de ubicación de tareas de.

Los siguientes parámetros están permitidos en una definición de contenedor:

expression

Tipo: string

Requerido: no

Una expresión de lenguaje de consulte de clúster que aplicar a la restricción. Para obtener más información, consulte Lenguaje de consultas de clúster.

type

Tipo: string

Obligatorio: sí

El tipo de restricción. Utilice memberOf para restringir la selección a un grupo de candidatos válidos.

Tipos de lanzamiento

Cuando se registra una definición de tarea, especifica el tipo de lanzamiento que va a usar para su tarea. Para obtener más información, consulte Amazon ECS Tipos de lanzamiento de.

El siguiente parámetro está permitido en una definición de tarea:

requiresCompatibilities

Tipo: matriz de cadenas

Requerido: no

Valores válidos: EC2 | FARGATE

El tipo de lanzamiento que usa la tarea. Esto permite una comprobación para garantizar que todos los parámetros usados en la definición de tareas cumplen los requisitos del tipo de lanzamiento.

Los valores válidos son FARGATE y EC2. Para obtener más información acerca de los tipos de lanzamiento, consulte Amazon ECS Tipos de lanzamiento de.

Tamaño de tarea

Cuando se registra una definición de tarea, puede especificar la cantidad total de CPU y memoria usada para la tarea. Es distinto de los valores cpu y memory en el nivel de definición de contenedor. Para las tareas alojadas en Amazon EC2 instancias , estos campos son opcionales. Para las tareas alojadas en Fargate, estos campos son obligatorios y hay valores admitidos específicos para cpu y memory .

nota

Los parámetros de CPU y memoria de nivel de tarea se omiten para los contenedores de Windows. Le recomendamos que especifique recursos de nivel de contenedor para los contenedores de Windows.

El siguiente parámetro está permitido en una definición de tarea:

cpu

Tipo: string

Obligatorio: condicional

nota

Este parámetro no es compatible con contenedores Windows.

El límite máximo de unidades de CPU que presentar para la tarea. Puede expresarse como un número entero que especifique las unidades de CPU (por ejemplo 1024) o como una cadena que especifique las CPU virtuales (por ejemplo 1 vCPU o 1 vcpu), en una definición de tarea. Cuando se registra la definición de tarea, el valor de una CPU virtual se convierte en un entero que indica las unidades de CPU.

Para las tareas alojadas en Amazon EC2 instancias , este campo es opcional. Si el clúster no tiene registradas instancias de contenedor con las unidades de CPU solicitadas disponibles, la tarea no funcionará. Los valores admitidos están entre 128 unidades de CPU (0.125 vCPU) y 10240 unidades de CPU (10 vCPU).

Para las tareas alojadas en Fargate, este campo es obligatorio y debe utilizar uno de los siguientes valores, lo que determina el rango de valores admitidos para el memory parámetro :

Valor de CPU

Valor de memoria (MiB)

256 (0,25 vCPU)

512 (0,5 GB), 1024 (1 GB), 2048 (2 GB)

512 (0,5 vCPU)

1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)

1024 (1 vCPU)

2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)

2048 (2 vCPU)

Entre 4096 (4 GB) y 16384 (16 GB) en incrementos de 1024 (1 GB)

4096 (4 vCPU)

Entre 8192 (8 GB) y 30720 (30 GB) en incrementos de 1024 (1 GB)

memory

Tipo: string

Obligatorio: condicional

nota

Este parámetro no es compatible con contenedores Windows.

El límite máximo de memoria (en MiB) que presentar a la tarea. Puede expresarse como un número entero que especifique MiB (por ejemplo 1024) o como una cadena que especifique GB (por ejemplo 1GB o 1 GB), en una definición de tarea. Cuando se registra la definición de tarea, el valor de GB se convierte en un entero que indica el número de MiB.

Para las tareas alojadas en Amazon EC2 instancias , este campo es opcional y se puede utilizar cualquier valor. Si se especifica un valor de memoria de nivel de tarea, el valor de memoria de nivel de contenedor es opcional. Si el clúster no tiene registrada ninguna instancia de contenedor con la memoria solicitada disponible, la tarea no funcionará. 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 en Instancia de contenedor.

Para las tareas alojadas en Fargate, este campo es obligatorio y debe utilizar uno de los siguientes valores, lo que determina el rango de valores admitidos para el cpu parámetro :

Valor de memoria (MiB)

Valor de CPU

512 (0,5 GB), 1024 (1 GB), 2048 (2 GB)

256 (0,25 vCPU)

1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)

512 (0,5 vCPU)

2048 (2 GB), 3072 (3 GB), 4096 (4GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)

1024 (1 vCPU)

Entre 4096 (4 GB) y 16384 (16 GB) en incrementos de 1024 (1 GB)

2048 (2 vCPU)

Entre 8192 (8 GB) y 30720 (30 GB) en incrementos de 1024 (1 GB)

4096 (4 vCPU)

Proxy configuration (Configuración del proxy)

proxyConfiguration

Tipo: objeto ProxyConfiguration

Requerido: no

Los detalles de configuración del proxy App Mesh.

Para las tareas que usan el tipo de lanzamiento EC2, las instancias de contenedor requieren al menos la versión 1.26.0 del agente de contenedor y al menos la versión 1.26.0-1 del paquete ecs-init para habilitar una configuración de proxy. Si las instancias de contenedor se lanzan desde la versión de AMI optimizada para Amazon ECS 20190301 o posterior, entonces contienen las versiones requeridas del agente de contenedor y ecs-init. Para obtener más información, consulte Amazon ECS-optimized AMIs.

Para las tareas que utilizan el tipo de lanzamiento Fargate, esta característica requiere que la tarea o servicio utilicen la versión 1.3.0 o posterior de la plataforma.

nota

Este parámetro no es compatible con contenedores Windows.

"proxyConfiguration": { "type": "APPMESH", "containerName": "string", "properties": [ { "name": "string", "value": "string" } ] }
type

Tipo: String

Valores válidos: APPMESH

Obligatorio: no

El tipo de proxy. El único valor admitido es APPMESH.

containerName

Tipo: String

Obligatorio: sí

El nombre del contenedor que servirá como proxy de App Mesh.

properties

Tipo: matriz de objetos KeyValuePair

Obligatorio: no

El conjunto de parámetros de configuración de red para proporcionar el complemento Container Network Interface (CNI), especificado como pares clave-valor.

  • IgnoredUID – (Obligatorio) El ID de usuario (UID) del contenedor de proxy tal y como se define por el parámetro user en una definición del contenedor. Se utiliza para garantizar que el proxy pasa por alto su propio tráfico. Si se especifica IgnoredGID, este campo puede estar vacío.

  • IgnoredGID – (Obligatorio) El ID de grupo (GID) del contenedor de proxy tal y como se define por el parámetro user en una definición del contenedor. Se utiliza para garantizar que el proxy pasa por alto su propio tráfico. Si se especifica IgnoredUID, este campo puede estar vacío.

  • AppPorts – (Obligatorio) La lista de los puertos que utiliza la aplicación. El tráfico de red hacia estos puertos se reenvía a ProxyIngressPort y ProxyEgressPort.

  • ProxyIngressPort – (Obligatorio) Especifica el puerto al que AppPorts se dirige el tráfico entrante a .

  • ProxyEgressPort – (Obligatorio) Especifica el puerto al que AppPorts se dirige el tráfico saliente desde la .

  • EgressIgnoredPorts – (Obligatorio) El tráfico de salida que se dirige a estos puertos especificados se pasa por alto y no se redirige a ProxyEgressPort. Puede ser una lista vacía.

  • EgressIgnoredIPs – (Obligatorio) El tráfico de salida que se dirige a estas direcciones IP especificadas se pasa por alto y no se redirige a ProxyEgressPort. Puede ser una lista vacía.

name

Tipo: String

Obligatorio: no

El nombre del par clave-valor.

value

Tipo: String

Obligatorio: no

El valor del par clave-valor.

Otros parámetros de definición de tarea

Los siguientes parámetros de definición de tareas se pueden utilizar al registrar definiciones de tareas en la Amazon ECS consola de mediante la opción Configure via JSON (Configurar a través de JSON). Para obtener más información, consulte Creación de una definición de tarea.

Modo IPC

ipcMode

Tipo: String

Obligatorio: no

El espacio de nombres de recurso de IPC que usarán los contenedores de la tarea. Los valores válidos son host, tasko none. Si se especifica host, todos los contenedores dentro de las tareas que tienen especificado el modo host de IPC en la misma instancia de contenedor comparten los mismos recursos de IPC con la instancia de Amazon EC2 del host. Si se especifica task, todos los contenedores dentro de la tarea especificada comparten los mismos recursos de IPC. Si se especifica none, 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 demonio de Docker en la instancia de contenedor. Para obtener más información, consulte IPC settings en la referencia de ejecución de Docker.

Si se utiliza el modo de host de IPC, tenga en cuenta que existe un mayor riesgo de exposición de espacio de nombres de IPC no deseada. Para obtener más información, consulte Docker security.

Si está configurando parámetros del kernel del espacio de nombres mediante systemControls para los contenedores de la tarea, se aplicará lo siguiente a su espacio de nombres de recursos de IPC. Para obtener más información, consulte Controles del sistema.

  • Para las tareas que usan el modo de IPC host, no se admiten los systemControls relacionados con el espacio de nombres de IPC.

  • Para las tareas que usan el modo de IPC task, los systemControls relacionados con el espacio de nombres de IPC se aplicarán a todos los contenedores de una tarea.

nota

Este parámetro no es compatible con los contenedores Windows o las tareas mediante el tipo de lanzamiento Fargate.

Modo PID

pidMode

Tipo: String

Obligatorio: no

El espacio de nombres del proceso que usarán los contenedores de la tarea. Los valores válidos son host o task. Si se especifica host, todos los contenedores dentro de las tareas que tienen especificado el modo de PID 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 nombres privado. Para obtener más información, consulte PID settings en la referencia de ejecución de Docker.

Si se utiliza el modo de host de PID, tenga en cuenta que existe un mayor riesgo de exposición de espacio de nombres del proceso no deseada. Para obtener más información, consulte Docker security.

nota

Este parámetro no es compatible con los contenedores Windows o las tareas mediante el tipo de lanzamiento Fargate.