Parámetros de definición de tareas de Amazon ECS
Las definiciones de tareas se dividen en partes independientes: la familia de tareas, el rol de tarea de AWS Identity and Access Management (IAM), el modo de red, las definiciones de contenedor, los volúmenes, las restricciones de ubicación de tareas y los tipos de lanzamiento. En una definición de tareas, son necesarias las definiciones de familia y contenedor. En cambio, 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.
Puede utilizar estos parámetros en un archivo JSON para configurar la definición de tarea.
A continuación, se muestran las descripciones de cada uno de los parámetros de definición de tareas.
Familia
family
-
Tipo: cadena
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 tareas 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.
Tipos de lanzamiento
Cuando se registre una definición de tareas, puede especificar un tipo de lanzamiento con respecto al cual Amazon ECS debe validar la definición de tareas. Si la definición de tareas no se valida con respecto a las compatibilidades especificadas, se devuelve una excepción de cliente. Para obtener más información, consulte Tipos de lanzamiento de Amazon ECS.
El parámetro a continuación está permitido en una definición de tareas.
requiresCompatibilities
-
Tipo: matriz de cadenas
Requerido: no
Valores válidos:
EC2
|FARGATE
|EXTERNAL
Los tipos de lanzamiento con respecto a los cuales se validó la definición de tareas. Esto inicia una comprobación para garantizar que todos los parámetros utilizados en la definición de tareas cumplan los requisitos del tipo de lanzamiento.
Rol de la tarea
taskRoleArn
-
Tipo: cadena
Requerido: no
Cuando se registra una definición de tareas, se puede proporcionar un rol de tarea para un rol de IAM que permita a los contenedores del permiso de tareas llamar en su nombre a las API de AWS especificadas en sus políticas asociadas. Para obtener más información, consulte Rol de IAM de tarea de Amazon ECS.
Al lanzar la AMI de Windows Server optimizada para Amazon ECS, los roles de IAM para las tareas de Windows requieren que se haya establecido la opción
-EnableTaskIAMRole
. Los contenedores deben ejecutar también código de configuración para utilizar la característica. Para obtener más información, consulte Configuración adicional de las instancias de Amazon EC2 de Windows.
Rol de ejecución de tareas
executionRoleArn
-
Tipo: cadena
Obligatorio: condicional
El nombre de recurso de Amazon (ARN) del rol de ejecución de tarea que concede permiso al agente de contenedor de Amazon ECS para realizar llamadas a la API de AWS en su nombre.
nota
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 Rol de IAM de ejecución de tareas de Amazon ECS.
Modo de red
networkMode
-
Tipo: cadena
Requerido: no
El modo de red de Docker que utilizar para los contenedores en la tarea. Para las tareas de Amazon ECS que están alojadas en instancias de Linux de Amazon EC2, los valores válidos son
none
,bridge
,awsvpc
yhost
. Si no se especifica ningún modo de red, el modo de red predeterminado esbridge
. Para las tareas de Amazon ECS alojadas en instancias de Windows de Amazon EC2, los valores válidos sondefault
yawsvpc
. Si no se especifica ningún modo de red, se utiliza el modo de reddefault
. Para las tareas de Amazon ECS alojadas en Fargate, se requiere el modo de redawsvpc
.Si el modo de red se establece en
none
, los contenedores de tarea no tienen conectividad externa y no es posible especificar la asignación de puertos en la definición del contenedor.Si el modo de red es
bridge
, la tarea usa la red virtual integrada de Docker en Linux, la cual se ejecuta dentro de cada instancia de Amazon EC2 que aloja la tarea. La red virtual integrada en Linux usa el controlador de redbridge
Docker.Si el modo de red es
host
, la tarea usa la red del host que omite la red virtual integrada de Docker al asignar los puertos del contenedor directamente a la ENI de la instancia de Amazon EC2 que aloja la tarea. Las asignaciones de puertos dinámicas no se pueden usar en este modo de red. Un contenedor de una definición de tarea que use este modo debe especificar un número dehostPort
específico. Varias tareas no pueden usar el número de puerto de un host. Por lo tanto, no se pueden ejecutar varias tareas de la misma definición de tarea en una instancia de Amazon EC2 única.importante
Para mayor seguridad, cuando ejecute tareas utilizando el modo de red
host
, no debe ejecutar contenedores con el usuario raíz (UID 0). Como práctica recomendada de seguridad, utilice siempre un usuario que no sea usuario raíz.Para los tipos de lanzamiento de Amazon EC2, si el modo de red es
awsvpc
, a la tarea se le asigna una interfaz de red elástica y debe especificarNetworkConfiguration
al crear un servicio o ejecutar una tarea con la definición de tarea. Para obtener más información, consulte Opciones de redes de tareas de Amazon ECS para el tipo de lanzamiento de EC2.Si el modo de red es
default
, la tarea usa la red virtual integrada de Docker en Windows, la cual se ejecuta dentro de cada instancia de Amazon EC2 que aloja la tarea. La red virtual integrada en Windows usa el controlador de rednat
Docker.Para los tipos de lanzamiento de Fargate, cuando el modo de red es
awsvpc
, a la tarea se le asigna una interfaz de red elástica y debe especificarNetworkConfiguration
al crear un servicio o ejecutar una tarea con la definición de tarea. Para más información, consulte Redes de tareas de Fargate. El modo de redawsvpc
ofrece el rendimiento de redes más alto para contenedores dado que estos utilizan la pila de la red de Amazon EC2. Los puertos de contenedor expuestos se asignan directamente al puerto de interfaz de red elástica asociado. Por este motivo, no se pueden utilizar asignaciones de puerto de host dinámico.Los modos de red
host
yawsvpc
ofrecen el rendimiento de redes más alto para contenedores dado que estos utilizan la pila de la red de Amazon EC2. Con los modos de redhost
yawsvpc
, los puertos de contenedor expuestos se asignan directamente al puerto de host correspondiente (para el modo de redhost
) o al puerto de interfaz de red elástica asociado (para el modo de redawsvpc
). Por este motivo, no se pueden utilizar asignaciones de puerto de host dinámico.Si se usa 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, se pueden usar los modosdefault
yawsvpc
.
Plataforma de tiempo de ejecución
operatingSystemFamily
-
Tipo: cadena
Obligatorio: condicional
Predeterminado: LINUX
Este parámetro es necesario para las tareas de Amazon ECS que están alojadas en Fargate.
Cuando se registra una definición de tarea, especifica la familia de sistemas operativos.
Los valores válidos para las tareas de Amazon ECS que están alojadas en Fargate son
LINUX
,WINDOWS_SERVER_2019_FULL
,WINDOWS_SERVER_2019_CORE
,WINDOWS_SERVER_2022_FULL
yWINDOWS_SERVER_2022_CORE
.Los valores válidos para las tareas de Amazon ECS alojadas en EC2 son
LINUX
,WINDOWS_SERVER_2022_CORE
,WINDOWS_SERVER_2022_FULL
,WINDOWS_SERVER_2019_FULL
yWINDOWS_SERVER_2019_CORE
,WINDOWS_SERVER_2016_FULL
,WINDOWS_SERVER_2004_CORE
yWINDOWS_SERVER_20H2_CORE
.Todas las definiciones de tareas que se utilizan en un servicio deben tener el mismo valor para este parámetro.
Cuando una definición de tarea forma parte de un servicio, este valor debe coincidir con el valor
platformFamily
de servicio. cpuArchitecture
-
Tipo: cadena
Obligatorio: condicional
Predeterminado: X86_64
Este parámetro es necesario para las tareas de Amazon ECS alojadas en Fargate. Si el parámetro se deja como
null
, el valor predeterminado se asigna automáticamente al iniciar una tarea alojada en Fargate.Cuando se registra una definición de tarea, especifica la arquitectura de CPU. Los valores válidos son
X86_64
yARM64
.Todas las definiciones de tareas que se utilizan en un servicio deben tener el mismo valor para este parámetro.
Cuando tiene tareas Linux para el tipo de lanzamiento de Fargate o el tipo de lanzamiento de EC2, puede establecer el valor en
ARM64
. Para obtener más información, consulte Definiciones de tareas de Amazon ECS para cargas de trabajo de ARM de 64 bits.
Tamaño de tarea
Cuando se registra una definición de tareas, 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 que están alojadas en instancias de Amazon EC2, estos campos son opcionales. Para las tareas que están alojadas en Fargate (tanto en Linux como en Windows), estos campos son obligatorios y se admiten valores 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: cadena
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 indicar los valores de la CPU en el archivo JSON como una cadena en unidades de CPU o CPU virtuales (vCPU). Por ejemplo, puede especificar un valor de CPU
1024
en unidades de CPU o1 vCPU
en vCPU. 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 que se ejecutan en instancias externas o de EC2, este campo es opcional. Si el clúster no tiene registradas instancias de contenedor con las unidades de CPU solicitadas disponibles, la tarea no funciona. Los valores admitidos para las tareas que se ejecutan en instancias de EC2 o instancias externas se encuentran entre vCPU
0.125
y vCPU10
.Para las tareas que se ejecutan en Fargate (tanto contenedores de Linux como de Windows), este campo es obligatorio y debe utilizar uno de los siguientes valores, lo que determina el intervalo de valores válidos para el parámetro
memory
. En la siguiente tabla se muestran las combinaciones válidas de CPU y memoria de nivel de tarea.Valor de CPU Valor de memoria Sistemas operativos admitidos por AWS Fargate 256 (0,25 vCPU) 512 MiB, 1 GB, 2 GB Linux 512 (0,5 vCPU) 1 GB, 2 GB, 3 GB, 4 GB Linux 1024 (1 vCPU) 2 GB, 3 GB, 4 GB, 5 GB, 6 GB, 7 GB, 8 GB Linux, Windows 2048 (2 vCPU) Entre 4 GB y 16 GB en incrementos de 1 GB Linux, Windows 4096 (4 vCPU) Entre 8 GB y 30 GB en incrementos de 1 GB Linux, Windows 8192 (8 vCPU) nota
Esta opción requiere una plataforma Linux
1.4.0
o posterior.Entre 16 GB y 60 GB en incrementos de 4 GB Linux 16 384 (16 vCPU) nota
Esta opción requiere una plataforma Linux
1.4.0
o posterior.Entre 32 GB y 120 GB en incrementos de 8 GB Linux
memory
-
Tipo: cadena
Obligatorio: condicional
nota
Este parámetro no es compatible con contenedores Windows.
El límite máximo de memoria para presentar a la tarea. Puede especificar los valores de memoria en la definición de tareas como una cadena en mebibytes (MiB) o gigabytes (GB). Por ejemplo, puede especificar un valor de memoria
3072
en MiB o3 GB
en GB. 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 que están alojadas en instancias de Amazon EC2, este campo es opcional y se puede usar 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 registradas instancias de contenedor con la memoria solicitada disponible, la tarea no funciona. Puede maximizar la utilización de los recursos proporcionando a las tareas la mayor cantidad de memoria posible para un tipo de instancia determinado. Para obtener más información, consulte Reserva de la memoria de instancias de contenedor de Linux de Amazon ECS.
Para las tareas alojadas en Fargate (tanto contenedores de Linux como de Windows), este campo es obligatorio y debe utilizar uno de los siguientes valores, lo que determina el intervalo de valores válidos para el parámetro
cpu
:Valor de memoria (en MiB, con un valor equivalente aproximado en GB) Valor de CPU Sistemas operativos compatibles con Fargate 512 (0,5 GB), 1024 (1 GB), 2048 (2 GB) 256 (0,25 vCPU) Linux 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) 512 (0,5 vCPU) Linux 2048 (2 GB), 3072 (3 GB), 4096 (4GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) 1024 (1 vCPU) Linux, Windows Entre 4096 (4 GB) y 16384 (16 GB) en incrementos de 1024 (1 GB) 2048 (2 vCPU) Linux, Windows Entre 8192 (8 GB) y 30720 (30 GB) en incrementos de 1024 (1 GB) 4096 (4 vCPU) Linux, Windows Entre 16 GB y 60 GB en incrementos de 4 GB nota
Esta opción requiere una plataforma Linux
1.4.0
o posterior.8192 (8 vCPU) Linux
Entre 32 GB y 120 GB en incrementos de 8 GB nota
Esta opción requiere una plataforma Linux
1.4.0
o posterior.16 384 (16 vCPU) Linux
Definiciones de contenedores
Al registrar una definición de tarea, debe especificar una lista de definiciones de contenedor que se transfieren al daemon de Docker en una instancia de contenedor. Los siguientes parámetros están permitidos en una definición de contenedor.
Temas
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.
Nombre
name
-
Tipo: cadena
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 en una definición de tareas, el
name
de un contenedor se puede introducir en loslinks
de otro contenedor. Esto sirve para conectar los contenedores.
Imagen
image
-
Tipo: cadena
Obligatorio: sí
La imagen que se utiliza para iniciar un contenedor. Esta cadena se transfiere directamente al daemon de Docker. De manera predeterminada, las imágenes del registro de Docker Hub están disponibles. También puede especificar otros repositorios con
orepository-url
/image
:tag
. Se permiten hasta 255 letras (mayúsculas y minúsculas), números, guiones, caracteres de subrayado, comas, puntos, barras diagonales y signos numéricos. Este parámetro se corresponde conrepository-url
/image
@digest
Image
en el comando create-container de docker y el parámetroIMAGE
del comando 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 las tareas en ejecución.
-
Se admiten las imágenes de registros privados. Para obtener más información, consulte Uso de imágenes de contenedor que no sean de AWS en Amazon ECS.
-
Para especificar imágenes de los repositorios de Amazon ECR, se puede utilizar la convención de nomenclatura completa
registry/repository:tag
oregistry/repository@digest
(por ejemplo,aws_account_id
.dkr.ecr.region
.amazonaws.com/
omy-web-app
:latest
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
omongo
). -
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
).
-
Memoria
memory
-
Tipo: entero
Requerido: no
La cantidad (en MiB) de memoria que se presenta al contenedor. Si su contenedor intenta superar la memoria especificada aquí, el contenedor se cancela. 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 conMemory
en el comando create-container de docker y la opción--memory
se corresponde con docker run.Si utiliza el tipo de lanzamiento de Fargate, este parámetro es opcional.
Si utiliza el tipo de lanzamiento de 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 dememoryReservation
en el nivel de contenedor, el valor dememory
debe ser mayor que el valor dememoryReservation
. Si especificamemoryReservation
, 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 dememory
.El daemon de Docker 20.10.0 o posterior reserva un mínimo de 6 MiB de memoria para un contenedor. Por lo tanto, no debe especificar menos de 6 MiB de memoria para los contenedores.
El daemon de Docker 19.03.13-ce o anterior reserva un mínimo de 4 MiB de memoria para un contenedor. Por lo tanto, no debe especificar menos de 4 MiB de memoria para los contenedores.
nota
Si intenta maximizar la utilización de los recursos proporcionando a las tareas la mayor cantidad de memoria posible para un tipo de instancia determinado, consulte Reserva de la memoria de instancias de contenedor de Linux de Amazon ECS.
memoryReservation
-
Tipo: entero
Requerido: no
El límite flexible (en MiB) de memoria que reservar para el contenedor. Cuando la memoria del sistema está en conflicto, Docker intenta mantener la memoria del contenedor en este límite flexible. Sin embargo, el contenedor puede utilizar más memoria cuando sea necesario. El contenedor puede utilizar hasta el límite invariable especificado con el parámetro de
memory
(si procede) o toda la memoria disponible en la instancia de contenedor, lo que ocurra primero. Este parámetro se corresponde conMemoryReservation
en el comando create-container de docker y la opción--memory-reservation
se corresponde con docker run.Si no se especifica un valor de memoria de nivel de tarea, debe especificar un entero distinto de cero para
memory
omemoryReservation
, o para ambos, en una definición de contenedor. Si especifica ambos,memory
debe ser mayor quememoryReservation
. Si especificamemoryReservation
, 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 dememory
.Por ejemplo, supongamos que 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 una
memoryReservation
de 128 MiB y un límite invariable dememory
de 300 MiB. Esta configuración permite al contenedor reservar solo 128 MiB de memoria de los recursos restantes en la instancia de contenedor. Al mismo tiempo, esta configuración también permite que el contenedor consuma más recursos de memoria en caso de ser necesario.nota
Este parámetro no es compatible con los contenedores de Windows.
El daemon de Docker 20.10.0 o posterior reserva un mínimo de 6 MiB de memoria para un contenedor. Por lo tanto, no debe especificar menos de 6 MiB de memoria para los contenedores.
El daemon de Docker 19.03.13-ce o anterior reserva un mínimo de 4 MiB de memoria para un contenedor. Por lo tanto, no debe especificar menos de 4 MiB de memoria para los contenedores.
nota
Si intenta maximizar la utilización de los recursos proporcionando a las tareas la mayor cantidad de memoria posible para un tipo de instancia determinado, consulte Reserva de la memoria de instancias de contenedor de Linux de Amazon ECS.
Mapeos de puertos
portMappings
-
Tipo: matriz de objetos
Requerido: no
Las asignaciones de puertos exponen los puertos de red del contenedor al mundo exterior, lo que permite a los clientes acceder a su aplicación. También se utilizan para la comunicación entre contenedores dentro de la misma tarea.
Para las definiciones de tareas (tanto del tipo de lanzamiento Fargate como del EC2) que utilizan el modo de red
awsvpc
, especifique únicamente elcontainerPort
. ElhostPort
siempre se ignora y el puerto del contenedor se asigna automáticamente a un puerto aleatorio con un número alto del host.Las asignaciones de puertos en Windows utilizan la dirección de puerto de enlace
NetNAT
en lugar delocalhost
. No existe ningún bucle invertido para el mapeo de puertos en Windows, por lo que no puede acceder a un puerto mapeado del contenedor desde el propio host.La mayoría de los campos de este parámetro (incluidos
containerPort
,hostPort
,protocol
) se corresponden conPortBindings
en el comando create-container de docker y con la opción--publish
para docker run. Si el modo de red de una definición de tareas se establece enhost
, los puertos de host deben estar sin definir o deben corresponder al puerto de contenedor en la asignación 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: la sección
networkBindings
de la salida del comando describe-tasks. -
API: la respuesta de
DescribeTasks
. -
Metadatos: el punto de conexión de metadatos de la tarea.
appProtocol
-
Tipo: cadena
Requerido: no
El protocolo de aplicación que se utiliza para la asignación de puertos. Este parámetro solo se aplica a Service Connect. Recomendamos que defina este parámetro para que sea coherente con el protocolo que utiliza la aplicación. Si se establece este parámetro, Amazon ECS agrega la administración de la conexión específica del protocolo al proxy de Service Connect. Si se establece este parámetro, Amazon ECS agrega telemetría específica del protocolo en la consola de Amazon ECS y CloudWatch.
Si no establece un valor para este parámetro, se utilizará TCP. Sin embargo, Amazon ECS no agrega telemetría específica del protocolo para TCP.
Para obtener más información, consulte Uso de Service Connect para conectar los servicios de Amazon ECS con nombres abreviados.
Valores de protocolo válidos:
"HTTP" | "HTTP2" | "GRPC"
containerPort
-
Tipo: 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.
Para las tareas que utilizan el tipo de lanzamiento Fargate o las tareas de EC2 que utilizan el modo de red
awsvpc
, debe utilizarcontainerPort
para especificar los puertos expuestos.Para los contenedores de Windows en Fargate, no se puede utilizar el puerto 3150 para el
containerPort
. Esto se debe a que está reservado.Suponga que utiliza contenedores en una tarea con el tipo de lanzamiento de EC2 y especifica un puerto de contenedor y no un puerto de host. A continuación, el contenedor recibe automáticamente un puerto de host en el rango de puertos efímeros. Para obtener más información, consulte
hostPort
. Las asignaciones de puerto que se asignan automáticamente de esta manera no se contabilizan en la cuota de 100 puertos reservados de una instancia de contenedor. containerPortRange
-
Tipo: cadena
Requerido: no
El rango de números de puerto en el contenedor que está vinculado al rango de puertos de host asignado de manera dinámica.
Solo puede configurar este parámetro mediante la API
register-task-definition
. La opción está disponible en el parámetroportMappings
. Para obtener más información, consulte register-task-definition en la Referencia de AWS Command Line Interface.Las siguientes reglas se aplican al especificar un
containerPortRange
:-
Debe utilizar el modo de red
bridge
o el modo de redawsvpc
. -
Este parámetro está disponible tanto para los tipos de lanzamiento de EC2 como los de AWS Fargate.
-
Este parámetro está disponible tanto para sistemas operativos Windows como Linux.
-
La instancia de contenedor debe tener al menos la versión 1.67.0 del agente de contenedor y al menos la versión 1.67.0-1 del paquete
ecs-init
-
Puede especificar 100 rangos de puertos como máximo por cada contenedor.
-
No especifica un
hostPortRange
. El valor dehostPortRange
se establece de la siguiente manera:-
Para los contenedores de una tarea con el modo de red
awsvpc
,hostPort
se establece en el mismo valor quecontainerPort
. Se trata de una estrategia de asignación estática. -
Para los contenedores en una tarea con el modo de red
bridge
, el agente de Amazon ECS busca los puertos de host abiertos del rango efímero predeterminado y los pasa a un docker para vincularlos a los puertos del contenedor.
-
-
Los valores válidos de
containerPortRange
se encuentran entre 1 y 65 535. -
Un puerto solo puede incluirse en una asignación de puertos por cada contenedor.
-
No puede especificar rangos de puertos superpuestos.
-
El primer puerto del rango debe ser menor que el último puerto del rango.
-
Docker recomienda desactivar el docker-proxy en el archivo de configuración del daemon de Docker cuando haya una gran cantidad de puertos.
Para más información, consulte Issue #11185
en GitHub. Para obtener información sobre cómo desactivar el docker-proxy en el archivo de configuración del daemon de Docker, consulte Daemon de Docker en la Guía para desarrolladores de Amazon ECS.
Puede llamar a
DescribeTasks
para ver loshostPortRange
, que son los puertos del host que están vinculados a los puertos del contenedor.Los rangos de puertos no se incluyen en los eventos de tareas de Amazon ECS que se envían a EventBridge. Para obtener más información, consulte Automaticzación de las respuestas a los errores de Amazon ECS mediante EventBridge.
-
hostPortRange
-
Tipo: string
Requerido: no
El rango de números de puerto del host que se usa con el enlace de red. Docker lo asigna y el agente de Amazon ECS lo entrega.
hostPort
-
Tipo: entero
Requerido: no
El número de puerto en la instancia de contenedor que reservar para el contenedor.
Si se utilizan los contenedores en una tarea con el tipo de lanzamiento de Fargate,
hostPort
puede dejarse en blanco o tener el mismo valor quecontainerPort
.Supongamos que utiliza contenedores en una tarea con el tipo de lanzamiento de EC2. Puede especificar un puerto de host no reservado para la asignación de puertos de su contenedor. Esto se conoce como asignación estática de puertos de host. O bien, puede omitir el
hostPort
(o configurarlo en0
) al especificar uncontainerPort
. El contenedor recibe automáticamente un puerto en el rango de puertos efímeros del sistema operativo de la instancia de contenedor y la versión de Docker. Esto se conoce como asignación dinámica de puertos de host.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 usa el intervalo de puertos efímeros predeterminado, de49153–65535
. No intente especificar un puerto de host en el rango de puertos efímeros. Esto se debe a que están reservados para la asignación automática. En general, los puertos bajo32768
están fuera del rango de puertos efímeros.Los puertos reservados predeterminados son el
22
para SSH; los puertos de Docker2375
y2376
y los puertos51678-51680
del agente de contenedor de Amazon ECS. 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. Cuando se detiene una tarea, se libera el puerto del host. Los puertos reservados actuales se muestran en losremainingResources
de la salida de describe-container-instances. Es posible que una instancia de contenedor tenga hasta 100 puertos reservados por vez, incluidos los puertos reservados predeterminados. Los puertos asignados automáticamente no se contabilizan para la cuota de 100 puertos reservados. name
-
Tipo: cadena
Obligatorio: no, es obligatorio para configurar Service Connect en un servicio
El nombre que se utiliza para la asignación de puertos. Este parámetro solo se aplica a Service Connect. Este parámetro es el nombre que se utiliza en la configuración de Service Connect de un servicio.
Para obtener más información, consulte Uso de Service Connect para conectar los servicios de Amazon ECS con nombres abreviados.
En el siguiente ejemplo, se utilizan los dos campos obligatorios de Service Connect.
"portMappings": [ { "name":
string
, "containerPort":integer
} ] protocol
-
Tipo: cadena
Requerido: no
El protocolo que se utiliza para la asignación de puertos. Los valores válidos son
tcp
yudp
. El valor predeterminado estcp
.importante
Solo
tcp
es compatible con Service Connect. Recuerde quetcp
está implícito si este campo no está configurado.importante
UDP solo se admite 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 una posterior, o con los agentes de contenedor que se han actualizado a la versión 1.3.0 o una posterior. Para actualizar el agente de contenedor a la versión más reciente, consulte Actualización del agente de contenedor de Amazon ECS.
Utilice la sintaxis a continuación 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 } ... ]
-
Credenciales de repositorio privado
repositoryCredentials
-
Tipo: objeto de RepositoryCredentials
Requerido: no
Las credenciales del repositorio para la autenticación de registros privados.
Para obtener más información, consulte Uso de imágenes de contenedor que no sean de AWS en Amazon ECS.
-
credentialsParameter
-
Tipo: cadena
Obligatorio: sí, si se utilizan
repositoryCredentials
.El nombre de recurso de Amazon (ARN) del secreto que contiene las credenciales del repositorio privado.
Para obtener más información, consulte Uso de imágenes de contenedor que no sean de AWS en Amazon ECS.
nota
Cuando se utiliza la API de Amazon ECS, la AWS CLI o los SDK de AWS, si el secreto 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. Cuando se utiliza la AWS Management Console, debe especificar el ARN completo del secreto.
A continuación, se incluye un fragmento de definición de tareas que muestra los parámetros necesarios:
"containerDefinitions": [ { "image": "
private-repo/private-image
", "repositoryCredentials": { "credentialsParameter": "arn:aws:secretsmanager:region:aws_account_id:secret:secret_name
" } } ]
-
Parámetros de definición de contenedor avanzados
Los siguientes parámetros avanzados de definición de contenedor ofrecen capacidades ampliadas para el comando de docker run que se utiliza para lanzar contenedores en las instancias de contenedor de Amazon ECS.
Temas
Política de reinicio
restartPolicy
-
La política de reinicio del contenedor y los parámetros de configuración asociados. Al configurar una política de reinicio para un contenedor, Amazon ECS puede reiniciar el contenedor sin necesidad de reemplazar la tarea. Para obtener más información, consulte Reinicio de contenedores individuales en tareas de Amazon ECS con políticas de reinicio de contenedores.
enabled
-
Tipo: Booleano
Obligatorio: sí
Especifica si una política de reinicio está habilitada para el contenedor.
ignoredExitCodes
-
Tipo: matriz de enteros
Requerido: no
Una lista de códigos de salida que Amazon ECS ignorará y no intentará reiniciar. Puede especificar un máximo de 50 códigos de salida de contenedor. De forma predeterminada, Amazon ECS no ignora ningún código de salida.
restartAttemptPeriod
-
Tipo: entero
Requerido: no
La cantidad de tiempo (en segundos) que debe ejecutarse el contenedor antes de que se pueda intentar un reinicio. Un contenedor solo se puede reiniciar una vez cada
restartAttemptPeriod
segundos. Si un contenedor no puede ejecutarse durante este período de tiempo y se cierra antes, no se reiniciará. Puede especificar un mínimorestartAttemptPeriod
de 60 segundos y unrestartAttemptPeriod
máximo de 1.800 segundos. De forma predeterminada, un contenedor debe ejecutarse durante 300 segundos antes de poder reiniciarse.
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. Para obtener más información, consulte Determine el estado de las tareas de Amazon ECS mediante comprobaciones de estado de los contenedores.
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 porCMD-SHELL
para ejecutar el comando con el shell predeterminado del contenedor. Si no se especifica ninguno, se utilizaCMD
.Al registrar una definición de tarea en la AWS Management Console, utilice una lista de comandos separados por comas. Estos comandos se convierten en una cadena una vez que se cree la definición de tareas. A continuación, se muestra un ejemplo de entrada de comprobación de estado.
CMD-SHELL, curl -f http://localhost/ || exit 1
Cuando registre una definición de tarea mediante el panel de JSON de la AWS Management Console, la AWS CLI o las API, incluya la lista de comandos entre corchetes. A continuación, se muestra un ejemplo de entrada de comprobación de estado.
[ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ]
Un código de salida de 0, sin salida
stderr
, indica una ejecución correcta y cualquier código de salida distinto de cero indica un error. interval
-
El periodo de tiempo (en segundos) entre cada 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. Puede 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. Puede especificar entre 1 y 10 reintentos. El valor predeterminado es tres reintentos.
startPeriod
-
El periodo de gracia opcional dentro del cual se puede proporcionar tiempo a los contenedores 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. De forma predeterminada,
startPeriod
está deshabilitado.
Entorno
cpu
-
Tipo: entero
Requerido: no
El número de unidades de
cpu
que el agente de contenedor de Amazon ECS reserva para el contenedor. En Linux, este parámetro se corresponde conCpuShares
en la sección Crear un contenedor. Este campo es opcional para las tareas que utilizan el tipo de lanzamiento de Fargate. La cantidad total de CPU reservada para todos los contenedores dentro de una tarea debe ser menor que el valor
cpu
de la tarea.nota
Puede determinar el número de unidades de CPU disponibles para cada tipo de instancia de Amazon EC2. Para ello, multiplique el número de vCPU listadas para dicho tipo de instancia en la página de detalles sobre instancias de Amazon EC2
por 1024. 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, supongamos que 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. Además, esa tarea es la única que se ejecuta en la instancia de contenedor. En este ejemplo, el contenedor puede utilizar la cuota completa de 1024 unidades de CPU en un momento dado. Sin embargo, supongamos que lanzó otra copia de la misma tarea en esa instancia de contenedor. Cada tarea tiene garantizado un mínimo de 512 unidades de CPU cuando sea necesario. Del mismo modo, si el otro contenedor no utiliza la CPU restante, cada contenedor puede aumentar el uso de la CPU. Sin embargo, si ambas tareas estuvieran 100 % activas todo el tiempo, están limitadas a 512 unidades de CPU.
En las instancias de contenedor de Linux, el daemon 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. El valor de cuota de CPU válido mínimo que permite el kernel de Linux es 2 y el valor de cuota de CPU válido máximo que permite el kernel de Linux es 262144. Sin embargo, el parámetro de CPU no es obligatorio y puede utilizar valores de CPU por debajo de 2 y por encima de 262144 en las definiciones de contenedor. Para valores de CPU por debajo de 2 (incluido el valor nulo) y por encima de 262144, el comportamiento varía en función de la 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 uno se transfieren a Docker como uno, que el kernel de Linux convierte a dos cuotas de CPU.
-
Versiones del agente >= 1.2.0: nulo, cero y los valores de CPU de uno se transfieren a Docker como dos cuotas de CPU.
-
Versiones del agente >= 1.84.0: los valores de CPU superiores a 256 vCPU se transfieren a Docker como 256, lo que equivale a 262144 cuotas de CPU.
En las instancias de contenedor de Windows, la cuota de CPU se aplica como una cuota absoluta. Los contenedores de Windows solo tienen acceso a la cantidad de CPU especificada que se establece en la definición de tareas. Un valor de CPU nulo o cero se pasa a Docker como
0
. A continuación, Windows interpreta este valor como el 1 % de una CPU.Para ver otros ejemplos, consulte Cómo administra Amazon ECS los recursos de CPU y memoria
. -
gpu
-
Tipo: objeto ResourceRequirement
Requerido: no
El número de
GPUs
físicas que el agente de contenedor de Amazon ECS reserva para el contenedor. El número de 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 Definiciones de tareas de Amazon ECS para cargas de trabajo de GPU.nota
Este parámetro no es compatible con los contenedores de Windows ni con los contenedores que están alojados en Fargate.
Elastic Inference accelerator
-
Tipo: objeto ResourceRequirement
Requerido: no
Para el tipo
InferenceAccelerator
, elvalue
coincide con eldeviceName
para unInferenceAccelerator
especificado en una definición de tareas. Para obtener más información, consulte Nombre del acelerador de Elastic Inference.nota
Este parámetro no es compatible con los contenedores de Windows ni con los contenedores que están alojados en Fargate.
essential
-
Tipo: Booleano
Requerido: no
Supongamos que el parámetro
essential
de un contenedor se marca comotrue
y dicho contenedor falla o se detiene por algún motivo. A continuación, se detienen todos los demás contenedores que forman parte de la tarea. Si el parámetroessential
de un contenedor se marca comofalse
, 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. Supongamos que tiene una aplicación compuesta por varios contenedores. Agrupe los contenedores que se utilizan para un fin común en componentes y sepárelos en diversas definiciones de tareas. Para obtener más información, consulte Diseño de la arquitectura de su aplicación para Amazon ECS.
"essential": true|false
entryPoint
-
importante
Las primeras versiones del agente de contenedor de Amazon ECS no tratan correctamente los parámetros
entryPoint
. Si tiene problemas al utilizarentryPoint
, actualice el agente de contenedor o introduzca los comandos y argumentos como elementos de matriz decommand
en su lugar.Tipo: matriz de cadenas
Requerido: no
El punto de entrada que se transfiere al contenedor.
"entryPoint": ["string", ...]
command
-
Tipo: matriz de cadenas
Requerido: no
El comando que se transfiere al contenedor. Este parámetro se corresponde con
Cmd
en el comando create-container y el parámetroCOMMAND
para ejecutar el docker. Si hay varios argumentos, asegúrese de que cada uno de ellos sea una cadena distinta en la matriz."command": ["string", ...]
workingDirectory
-
Tipo: cadena
Requerido: no
El directorio de trabajo para ejecutar los comandos dentro del contenedor. Este parámetro se corresponde con
WorkingDir
en la sección Crear un contenedorde la API remota de Docker y con la opción --workdir
de docker container run. "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 corresponde con la opción
--env-file
del comando de docker run.Cuando se habilita FIPS en un host que utiliza el tipo de lanzamiento EC2, los nombres de los buckets que tienen puntos (.) (por ejemplo, amzn-s3-demo-bucket1.name.example) no son compatibles. Tener puntos (.) en el nombre del bucket impide que la tarea se inicie porque el agente no puede extraer el archivo de variables de entorno de Amazon S3.
No está disponible para los contenedores de Windows ni los contenedores de Windows en Fargate
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 contiene una variable de entorno con el formatoVARIABLE=VALUE
. Las líneas que comienzan por#
se tratan como comentarios y se ignoran.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. Le recomendamos que utilice nombres de variables únicos. Para obtener más información, consulte Transferencia de una variable de entorno individual a un contenedor de Amazon ECS.
value
-
Tipo: cadena
Obligatorio: sí
Nombre de recurso de Amazon (ARN) del objeto Amazon S3 que contiene el archivo de variable de entorno.
type
-
Tipo: cadena
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 el comando create-container de docker y la opción--env
con el comando de docker run.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: cadena
Obligatorio: sí, si se utiliza
environment
El nombre de la variable de entorno.
value
-
Tipo: cadena
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
Requerido: no
Un objeto que representa el secreto que se expone en el contenedor. Para obtener más información, consulte Transferencia de datos confidenciales a un contenedor de Amazon ECS.
name
-
Tipo: cadena
Obligatorio: sí
El valor que se ha de establecer como la variable de entorno en el contenedor.
valueFrom
-
Tipo: cadena
Obligatorio: sí
El secreto para exponer en el contenedor. Los valores admitidos son el nombre de recurso de Amazon (ARN) completo del secreto de AWS Secrets Manager o el ARN completo del parámetro en el almacén de parámetros de AWS Systems Manager.
nota
Si el parámetro del Almacén de parámetros de Systems Manager o el parámetro de Secrets Manager existe en la misma Región de AWS que la tarea que se va a lanzar, se puede utilizar el ARN completo o el nombre del 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
" } ]
Network settings (Configuración de red)
disableNetworking
-
Tipo: Booleano
Requerido: no
Cuando este parámetro es verdadero, la conexión en red está apagada dentro del contenedor.
nota
Este parámetro no es compatible con los contenedores o las tareas de Windows que utilizan el modo de red
awsvpc
.El valor predeterminado es
false
."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. Este parámetro solo se admite si el modo de red de una definición de tarea se establece enbridge
. El constructoname:internalName
es análogo aname:alias
en enlaces de Docker. Se admiten hasta 255 letras (mayúsculas y minúsculas), números, guiones y caracteres de subrayado.nota
Este parámetro no es compatible con los contenedores o las tareas de Windows que utilizan el modo de red
awsvpc
.importante
Es posible que los contenedores que se colocan en la misma instancia de contenedor puedan comunicarse entre sí sin necesidad de enlaces ni asignaciones 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: cadena
Requerido: no
El nombre de host que utilizar para el contenedor. Este parámetro se asigna a
Hostname
en el comando create-container de docker y la opción--hostname
con docker run.nota
Si utiliza el modo de red
awsvpc
, el parámetrohostname
no se admite."hostname": "string"
dnsServers
-
Tipo: matriz de cadenas
Requerido: no
Una lista de servidores DNS que se presentan al contenedor.
nota
Este parámetro no es compatible con los contenedores o las tareas de Windows que utilizan 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 el comando create-container de docker y la opción--dns-search
con docker run.nota
Este parámetro no es compatible con los contenedores o las tareas de Windows que utilizan 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 el comando create-container de docker y la opción--add-host
se corresponde con docker run.nota
Este parámetro no es compatible con los contenedores o las tareas de Windows que utilizan el modo de red
awsvpc
."extraHosts": [ { "hostname": "string", "ipAddress": "string" } ... ]
hostname
-
Tipo: cadena
Obligatorio: sí, si se utilizan
extraHosts
.El nombre de host para utilizar en la entrada
/etc/hosts
. ipAddress
-
Tipo: cadena
Obligatorio: sí, si se utilizan
extraHosts
.La dirección IP para utilizar en la entrada
/etc/hosts
.
Almacenamiento y registro
readonlyRootFilesystem
-
Tipo: Booleano
Obligatorio: 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 el comando create-container de docker y la opción--read-only
con docker run.nota
Este parámetro no es compatible con contenedores Windows.
El valor predeterminado es
false
."readonlyRootFilesystem": true|false
mountPoints
-
Tipo: matriz de objetos
Requerido: no
Puntos de montaje para los volúmenes de datos del contenedor. Este parámetro asigna a
Volumes
en la API create-container de Docker y la opción--volume
a docker run.Los contenedores de Windows pueden montar directorios completos en la misma unidad que
$env:ProgramData
. Los contenedores de Windows no pueden montar directorios en una unidad diferente y los puntos de montaje no se pueden utilizar entre unidades. Debe especificar los puntos de montaje para adjuntar un volumen de Amazon EBS directamente a una tarea de Amazon ECS.sourceVolume
-
Tipo: cadena
Obligatorio: sí, si se utilizan
mountPoints
.El nombre del volumen a montar.
containerPath
-
Tipo: cadena
Obligatorio: sí, si se utilizan
mountPoints
.La ruta del contenedor donde se montará el volumen.
readOnly
-
Tipo: Booleano
Requerido: no
Si este valor es
true
, el acceso del contenedor al volumen es de solo lectura. Si este valor esfalse
, el contenedor puede escribir en el volumen. El valor predeterminado esfalse
.Para las tareas que se ejecutan en instancias de EC2 con sistema operativo Windows, deje el valor predeterminado
false
.
volumesFrom
-
Tipo: matriz de objetos
Requerido: no
Volúmenes de datos que montar desde otro contenedor. Este parámetro se corresponde con
VolumesFrom
en el comando create-container de docker y la opción--volumes-from
se corresponde con docker run.sourceContainer
-
Tipo: cadena
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 esfalse
, el contenedor puede escribir en el volumen. El valor predeterminado esfalse
.
"volumesFrom": [ { "sourceContainer": "string", "readOnly": true|false } ]
logConfiguration
-
Tipo: objeto LogConfiguration
Requerido: no
La especificación de configuración de registros para el contenedor.
Para obtener ejemplos de definiciones de tareas que utilizan una configuración de registro, consulte Ejemplo de definiciones de tareas de Amazon ECS.
Este parámetro se corresponde con
LogConfig
en el comando create-container de docker y la opción--log-driver
se corresponde con docker run. De forma predeterminada, los contenedores utilizan el mismo controlador de registro que el daemon de Docker. No obstante, el contenedor podría utilizar un controlador de registro diferente al daemon de Docker especificando un controlador de registro con este parámetro en la definición de contenedor. Para utilizar un controlador de registro distinto para un contenedor, el sistema de registro se debe configurar correctamente en la instancia de contenedor (o en un servidor de registro distinto para opciones de registro remotas).Tenga cuenta lo siguiente al especificar una configuración de registros para los contenedores:
-
Amazon ECS admite un subconjunto de controladores de registro disponibles para el daemon de Docker. Es posible que haya controladores de registro adicionales en versiones futuras del agente de contenedor de Amazon ECS.
-
Este parámetro requiere la versión 1.18 o posterior de la API remota de Docker en la instancia de contenedor.
-
Para las tareas que utilizan el tipo de lanzamiento de EC2, el agente de contenedor de Amazon ECS que se ejecuta en una instancia de contenedor debe registrar los controladores de registro que están 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 Configuración del agente de contenedor de Amazon ECS. -
Para las tareas que utilizan el tipo de lanzamiento de Fargate, debe instalar cualquier software adicional fuera de la tarea. Por ejemplo, los agregadores de salida de Fluentd o un host remoto que ejecute Logstash adonde se envían 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: cadena
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. De forma predeterminada, los valores válidos mostrados anteriormente son controladores de registro con los que el agente de contenedor de Amazon ECS se puede comunicar.
Para las tareas que utilizan el tipo de lanzamiento de Fargate, los controladores de registro admitidos son
awslogs
,splunk
yawsfirelens
.Para las tareas que utilizan el tipo de lanzamiento de EC2, los controladores de registro admitidos son
awslogs
,fluentd
,gelf
,json-file
,journald
,logentries
,syslog
,splunk
yawsfirelens
.Para obtener más información acerca del uso del controlador de registro
awslogs
en las definiciones de tareas para enviar los registros de contenedor a CloudWatch Logs, consulte Envío de registros de Amazon ECS a CloudWatch .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 en la lista, 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 desea que incluyamos. No obstante, actualmente no admitimos la ejecución de copias modificadas de este software. Este parámetro requiere la versión 1.18 de la API remota de Docker o superior en su instancia de contenedor.
options
-
Tipo: mapa de cadena a cadena
Requerido: no
Las opciones de configuración de asignación clave/valor para enviar al controlador de registro.
Las opciones que puede especificar dependen del controlador de registro. Algunas de las opciones que puede especificar cuando utiliza el router
awslogs
para enrutar los registros a Amazon CloudWatch son las siguientes:awslogs-create-group
-
Requerido: no
Especifique si desea que el grupo de registro se cree automáticamente. Si no se especifica esta opción, el valor predeterminado es
false
.nota
Su política de IAM debe incluir el permiso
logs:CreateLogGroup
antes de intentar utilizarawslogs-create-group
. awslogs-region
-
Obligatorio: sí
Especifique la Región de AWS a la que el controlador de registro
awslogs
enviará los registros de Docker. Puede elegir enviar todos los registros desde clústeres de diferentes regiones a una única región de CloudWatch Logs. Esto es para que todos sean visibles en una sola ubicación. De lo contrario, puede separarlos por región para obtener un mayor grado de detalle. Asegúrese de que el grupo de registro especificado exista en la región que especifique con esta opción. awslogs-group
-
Obligatorio: sí
Asegúrese de especificar un grupo de registro al que el controlador de registros
awslogs
envíe sus flujos de registros. awslogs-stream-prefix
-
Obligatorio: Opcional cuando se utiliza el tipo de lanzamiento de EC2, obligatorio para el tipo de lanzamiento de Fargate.
Utilice esta opción
awslogs-stream-prefix
para asociar un flujo de registro con el prefijo especificado, el nombre del contenedor y el ID de la tarea de Amazon ECS a la que pertenece el contenedor. Si especifica un prefijo con esta opción, el flujo de registro adopta el siguiente formato.prefix-name
/container-name
/ecs-task-id
Si no especifica un prefijo con esta opción, el flujo de registro se nombra según el ID del contenedor que asigna el daemon de Docker en la instancia de contenedor. Dado que es difícil realizar un seguimiento de los registros hasta el contenedor que los envió solo con el ID de contenedor de Docker (que solo está disponible en la instancia de contenedor), le recomendamos que especifique un prefijo con esta opción.
En el caso de los servicios de Amazon ECS, puede utilizar el nombre del servicio como prefijo. De este modo, puede realizar un seguimiento de flujos de registros hasta el servicio al que pertenece el contenedor, el nombre del contenedor que los envió y el ID de la tarea a la que pertenece el contenedor.
Debe especificar un prefijo de flujo para los registros para que aparezcan en el panel de registros al utilizar la consola de Amazon ECS.
awslogs-datetime-format
-
Requerido: no
Esta opción define un patrón de inicio de varias líneas en formato
strftime
de Python. Un mensaje de registro consta de una línea que coincide con el patrón y de líneas siguientes que no coinciden con el patrón. La línea coincidente es el delimitador entre los mensajes de registro.Un ejemplo de caso de uso de este formato es para analizar la salida como un volcado de pila, que de lo contrario podría registrarse en varias entradas. El patrón correcto permite capturarla en una sola entrada.
Para obtener más información, consulte awslogs-datetime-format
. No puede configurar las opciones
awslogs-datetime-format
yawslogs-multiline-pattern
a la vez.nota
El registro de varias líneas realiza análisis de las expresiones regulares y correspondencia de todos los mensajes de registro. Esto puede tener un impacto negativo sobre el rendimiento de registro.
awslogs-multiline-pattern
-
Requerido: no
Esta opción define un patrón de inicio de varias líneas que utiliza una expresión regular. Un mensaje de registro consta de una línea que coincide con el patrón y de líneas siguientes que no coinciden con el patrón. La línea coincidente es el delimitador entre los mensajes de registro.
Para obtener más información, consulte awslogs-multiline-pattern
. Esta opción se pasa por alto si también se ha configurado
awslogs-datetime-format
.No puede configurar las opciones
awslogs-datetime-format
yawslogs-multiline-pattern
a la vez.nota
El registro de varias líneas realiza análisis de las expresiones regulares y correspondencia de todos los mensajes de registro. Esto puede tener un impacto negativo sobre el rendimiento de registro.
mode
-
Requerido: no
Valores válidos:
non-blocking
|blocking
Esta opción define el modo de entrega de los mensajes de registro desde el contenedor a los registros de CloudWatch. El modo de entrega que elija afecta a la disponibilidad de las aplicaciones cuando se interrumpe el flujo de registros desde el contenedor a CloudWatch.
Si utiliza el modo
blocking
y se interrumpe el flujo de registros a CloudWatch, se bloquearán las llamadas desde el código del contenedor para escribir en los flujosstdout
ystderr
. Como resultado, el hilo del registro de la aplicación se bloqueará. Esto puede provocar que la aplicación deje de responder y que se produzca un error en la comprobación del estado del contenedor.Si utiliza el modo
non-blocking
, los registros del contenedor se almacenan en un búfer intermedio en memoria configurado con la opción.max-buffer-size
Esto evita que la aplicación deje de responder cuando los registros no se puedan enviar a CloudWatch. Le recomendamos que utilice este modo si quiere garantizar la disponibilidad del servicio y si no hay problema con la pérdida de registros. Para obtener más información, consulte Evitar la pérdida de registros con el modo sin bloqueo en el controladorawslogs
de registros del contenedor. max-buffer-size
-
Requerido: no
Valor predeterminado:
1m
Cuando se utiliza el modo
non-blocking
, la opción de registromax-buffer-size
controla el tamaño del búfer que se utiliza para el almacenamiento intermedio de mensajes. Asegúrese de especificar un tamaño de búfer adecuado en función de su aplicación. Cuando el búfer se llene, no se podrán almacenar más registros. Los registros que no se pueden almacenar se pierden.
Para enrutar los registros mediante el enrutador de registros
splunk
, debe especificar unsplunk-token
y unsplunk-url
.Cuando utiliza el enrutador de registros
awsfirelens
para enrutar a un destino de Servicio de AWS o AWS Partner Network para el almacenamiento y análisis de registros, puede configurar la opciónlog-driver-buffer-limit
hasta el límite del número de eventos almacenados en búfer en la memoria antes de enviarlos al contenedor del enrutador de registros. Puede ayudar a resolver el posible problema de pérdida de registros porque un alto rendimiento podría provocar que se quede sin memoria para el búfer dentro de Docker. Para obtener más información, consulte Configuración de los registros de Amazon ECS para conseguir un alto rendimiento.Otras opciones que puede especificar cuando se utiliza
awsfirelens
para enrutar los registros dependen del destino. Al exportar registros a Amazon Data Firehose, puede especificar la Región de AWS conregion
y el nombre del flujo de registros condelivery_stream
.Al exportar registros a Amazon Kinesis Data Streams, puede especificar una Región de AWS con
region
y un nombre de flujo de datos constream
.Al exportar registros a Amazon OpenSearch Service, puede especificar opciones como
Name
,Host
(punto final de OpenSearch Service sin protocolo),Port
,Index
,Type
,Aws_auth
,Aws_region
,Suppress_Type_Name
ytls
.Al exportar registros a Amazon S3, puede especificar el bucket mediante la opción
bucket
. También puede especificarregion
,total_file_size
,upload_timeout
yuse_put_object
como opciones.Este parámetro requiere la versión 1.19 de la API remota de Docker 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. Los secretos utilizados en la configuración de registros pueden incluir un token de autenticación, un certificado o una clave de cifrado. Para obtener más información, consulte Transferencia de datos confidenciales a un contenedor de Amazon ECS.
name
-
Tipo: cadena
Obligatorio: sí
El valor que se ha de establecer como la variable de entorno en el contenedor.
valueFrom
-
Tipo: cadena
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: objeto FirelensConfiguration
Requerido: no
La configuración de FireLens para el contenedor. Esto se utiliza para especificar y configurar un enrutador de registro para registros de contenedores. Para obtener más información, consulte Envío de registros de Amazon ECS a un servicio de AWS o AWS Partner.
{ "firelensConfiguration": { "type": "fluentd", "options": { "KeyName": "" } } }
options
-
Tipo: mapa de cadena a cadena
Requerido: no
Las opciones de asignación de clave/valor que se deben usar al configurar el enrutador de registros. Este campo es opcional y se puede utilizar para especificar un archivo de configuración personalizado o agregar metadatos adicionales, como la tarea, la definición de tareas, el clúster y 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:::
. Para obtener más información, consulte Definición de tareas de Amazon ECS de ejemplo: enrutar registros a FireLens.amzn-s3-demo-bucket
/fluent.conf|filepath"} type
-
Tipo: cadena
Obligatorio: sí
El router de registros que se va a utilizar. Los valores válidos son
fluentd
ofluentbit
.
Seguridad
Para obtener más información sobre la seguridad del contenedor, consulte Task and container security (Seguridad de las tareas y los contenedores) en la Guía de prácticas recomendadas de Amazon ECS.
credentialSpecs
-
Tipo: matriz de cadenas
Requerido: no
Una lista de los ARN de SSM o Amazon S3 en un archivo de especificaciones de credenciales (
CredSpec
) que configura el contenedor para la autenticación de Active Directory. Le recomendamos que utilice este parámetro en lugar dedockerSecurityOptions
. El número máximo de ARN es 1.Hay dos formatos para cada ARN.
- Especificación de credenciales sin dominio: MyARN
-
Utiliza
credentialspecdomainless:MyARN
para proporcionar a laCredSpec
una sección adicional para un secreto en Secrets Manager. Proporciona las credenciales de inicio de sesión al dominio en el secreto.Cada tarea que se ejecute en cualquier instancia de contenedor puede unirse a diferentes dominios.
Puede utilizar este formato sin unir la instancia de contenedor a un dominio.
- Especificación de credenciales: MyARN
-
Utiliza
credentialspec:MyARN
para proporcionar unaCredSpec
para un solo dominio.Debe unir la instancia de contenedor al dominio antes de iniciar cualquier tarea que utilice esta definición de tarea.
En ambos formatos, sustituya
MyARN
por el ARN en SSM o Amazon S3.La
credspec
debe proporcionar un ARN en Secrets Manager para un secreto que contenga el nombre de usuario, la contraseña y el dominio para conectarse. Para mayor seguridad, la instancia no está unida al dominio para la autenticación sin dominio. Las demás aplicaciones de la instancia no pueden utilizar las credenciales sin dominio. Puede utilizar este parámetro para ejecutar tareas en la misma instancia, incluso si las tareas necesitan unirse a dominios diferentes. Para obtener más información, consulte Uso de gMSA para contenedores de Windows y Uso de gMSA para contenedores de Linux. 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
. Recomendamos no utilizar contenedores conprivileged
. En la mayoría de los casos, puede especificar los privilegios exactos que necesita mediante los parámetros específicos en lugar de usarprivileged
.Este parámetro se corresponde con
Privileged
en el comando create-container de docker y la opción--privileged
con docker run.nota
Este parámetro no es compatible con contenedores Windows o tareas con el tipo de lanzamiento Fargate.
El valor predeterminado es
false
."privileged": true|false
user
-
Tipo: cadena
Requerido: no
El usuario que se utiliza dentro del contenedor. Este parámetro se corresponde con
User
en el comando create-container de docker y la opción--user
con docker run.importante
Al ejecutar tareas que utilizan el modo de red de
host
, no debe ejecutar contenedores con el usuario raíz (UID 0). Como práctica recomendada de seguridad, utilice siempre un usuario que no sea usuario raíz.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 una configuración personalizada para varios sistemas de seguridad. Este campo no es válido para contenedores en tareas con el tipo de lanzamiento de Fargate.
Para las tareas de Linux en EC2, este parámetro se puede utilizar para hacer referencia a etiquetas personalizadas para sistemas de seguridad de varios niveles de SELinux y AppArmor .
Para cualquier tarea en EC2, este parámetro se puede utilizar para hacer referencia a un archivo de especificación de credenciales que configure un contenedor para la autenticación de Active Directory. Para obtener más información, consulte Obtenga información sobre cómo utilizar gMSA para contenedores de EC2 para Windows en Amazon ECS. y Uso de gMSA para contenedores de EC2 Linux en Amazon ECS.
Este parámetro se corresponde con
SecurityOpt
en el comando create-container de docker y la opción--security-opt
se corresponde con docker run."dockerSecurityOptions": ["string", ...]
nota
El agente de contenedor de Amazon ECS que se ejecuta en una instancia de contenedor se debe registrar con las variables de entorno
ECS_SELINUX_CAPABLE=true
oECS_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 Configuración del agente de contenedor de Amazon ECS.
Límites de recursos
ulimits
-
Tipo: matriz de objetos
Requerido: no
Lista de valores
ulimit
a definir para un contenedor. Este valor sobrescribe la configuración predeterminada de la cuota de recursos para el sistema operativo. Este parámetro se corresponde conUlimits
en el comando create-container de docker y la opción--ulimit
se corresponde con docker run.Las tareas de Amazon ECS alojadas en Fargate utilizan los valores límite de recursos predeterminados que establece el sistema operativo, a excepción del parámetro límite de recursos
nofile
. El límite de recursosnofile
define una restricción en el número de archivos abiertos que puede utilizar un contenedor. En Fargate, el límite flexiblenofile
predeterminado es65535
y el límite invariable es65535
. Puede establecer los valores de ambos límites en un valor máximo de1048576
. 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 remota de Docker 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: cadena
Valores válidos:
"core" | "cpu" | "data" | "fsize" | "locks" | "memlock" | "msgqueue" | "nice" | "nofile" | "nproc" | "rss" | "rtprio" | "rttime" | "sigpending" | "stack"
Obligatorio: sí, si se utilizan
ulimits
.El valor
type
deulimit
. hardLimit
-
Tipo: entero
Obligatorio: sí, si se utilizan
ulimits
.El límite máximo para el tipo de
ulimit
. El valor se puede especificar en bytes, segundos o como un conteo, según eltype
delulimit
. softLimit
-
Tipo: entero
Obligatorio: sí, si se utilizan
ulimits
.El límite flexible para el tipo de
ulimit
. El valor se puede especificar en bytes, segundos o como un conteo, según eltype
delulimit
.
Etiquetas de Docker
dockerLabels
-
Tipo: mapa de cadena a cadena
Requerido: no
Un mapa de clave/valor de etiquetas que agregar al contenedor. Este parámetro se corresponde con
Labels
en el comando create-container de docker y la opción--label
se corresponde con docker run.Este parámetro requiere la versión 1.18 de la API remota de Docker 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 consola de Amazon ECS mediante la opción Configure via JSON (Configurar mediante JSON). Para obtener más información, consulte Creación de una definición de tareas de Amazon ECS mediante la consola.
Temas
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 los contenedores de Windows.
"linuxParameters": { "capabilities": { "add": ["string", ...], "drop": ["string", ...] } }
capabilities
-
Tipo: objeto KernelCapabilities
Requerido: no
Las capacidades de Linux para el contenedor que se agregan a la configuración predeterminada proporcionada por Docker o se eliminan de ella. Para obtener más información sobre estas capacidades de Linux, consulte la página del manual de Linux sobre 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 corresponde con
CapAdd
en el comando create-container de docker y la opción--cap-add
con docker run.nota
Las tareas lanzadas en Fargate solo admiten la adición de la capacidad del kernel
SYS_PTRACE
. add
-
Tipo: matriz de cadenas
Valores válidos:
"SYS_PTRACE"
Requerido: no
Las capacidades de Linux para el contenedor que se deben agregar a la configuración predeterminada proporcionada por Docker. Este parámetro se corresponde con
CapAdd
en el comando create-container de docker y la opción--cap-add
se corresponde con docker run. 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 corresponde con
CapDrop
en el comando create-container de docker y la opción--cap-drop
con docker run.
devices
-
Cualquier dispositivo host que exponer en el contenedor. Este parámetro se corresponde con
Devices
en el comando create-container de docker y la opción--device
con docker run.nota
El parámetro
devices
no se admite cuando se utiliza el tipo de lanzamiento de Fargate o contenedores de Windows.Tipo: matriz de objetos Dispositivo
Requerido: no
hostPath
-
La ruta del dispositivo de la instancia de contenedor del host.
Tipo: cadena
Obligatorio: sí
containerPath
-
La ruta dentro del contenedor en la cual exponer el dispositivo host.
Tipo: cadena
Requerido: no
permissions
-
Los permisos explícitos que proporcionar al contenedor para el dispositivo. De forma predeterminada, el contenedor tiene permisos para
read
,write
ymknod
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
con 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 traduce en la opción
--memory-swap
de docker run donde el valor es la suma de la memoria del contenedor más el valor demaxSwap
.Si se especifica un valor
maxSwap
para0
, el contenedor no utiliza el intercambio. Los valores aceptados son0
o cualquier entero positivo. Si se omite el parámetromaxSwap
, el contenedor utiliza la configuración de intercambio de la instancia de contenedor en la que se está ejecutando. Debe establecerse un valor demaxSwap
para el parámetroswappiness
.nota
Si utiliza tareas que emplean el tipo de lanzamiento de 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
con docker run.nota
Si utiliza tareas que emplean el tipo de lanzamiento de Fargate, no se admite el parámetro
sharedMemorySize
.Tipo: entero
swappiness
-
Puede utilizar este parámetro para ajustar el comportamiento de intercambio de memoria de un contenedor. Un valor
swappiness
de0
evita que se produzca el intercambio a menos que sea necesario. Un valorswappiness
de100
hace que las páginas se intercambien con frecuencia. Los valores aceptados son números enteros comprendidos entre0
y100
. Si no especifica un valor, se utiliza el valor predeterminado de60
. Además, si no se especifica un valor paramaxSwap
, este parámetro se omite. Este parámetro se corresponde con la opción--memory-swappiness
con docker run.nota
Si utiliza tareas que emplean el tipo de lanzamiento de Fargate, no se admite el parámetro
swappiness
.Si utiliza tareas en Amazon Linux 2023, 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 montaje tmpfs. Este parámetro se corresponde con la opción
--tmpfs
con docker run.nota
Si utiliza tareas que emplean el tipo de lanzamiento de Fargate, no se admite el parámetro
tmpfs
.Tipo: matriz de objetos Tmpfs
Requerido: no
containerPath
-
La ruta de archivo absoluta en la que se montará el volumen tmpfs.
Tipo: cadena
Obligatorio: sí
mountOptions
-
La lista de opciones de montaje del volumen tmpfs.
Tipo: matriz de cadenas
Requerido: 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: 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, se invierte para el apagado del contenedor. Para ver un ejemplo, consulte Dependencia de contenedor.
nota
Si un contenedor no cumple una restricción de dependencia o agota el tiempo de espera antes de cumplir la restricción, Amazon ECS no adelanta los contenedores dependientes a su siguiente estado.
Para las tareas de Amazon ECS que están alojadas en instancias de Amazon EC2, las instancias requieren al menos la versión
1.26.0
del agente de contenedor para habilitar las dependencias del 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 contenedor de Amazon ECS. Si utiliza una AMI de Amazon Linux optimizada para Amazon ECS, la instancia necesita al menos la versión1.26.0-1
del paqueteecs-init
. Si las instancias de contenedor se lanzan desde la versión20190301
o posterior, contienen las versiones requeridas del agente de contenedor yecs-init
. Para obtener más información, consulte AMI de Linux optimizadas para Amazon ECS.Para las tareas de Amazon ECS que están alojadas en Fargate, este parámetro requiere que la tarea o el servicio utilicen la versión de la plataforma
1.3.0
o una posterior (Linux) o1.0.0
(Windows)."dependsOn": [ { "containerName": "
string
", "condition": "string
" } ]containerName
-
Tipo: cadena
Obligatorio: sí
El nombre del contenedor que debe cumplir la condición especificada.
condition
-
Tipo: cadena
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. La condición 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 queCOMPLETE
, pero además requiere que el contenedor se cierre con un estadozero
. 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 contenedor antes de permitir que otros contenedores se inicien. Esto requiere que el contenedor dependiente tenga configuradas las comprobaciones de estado en la definición de tarea. Esta condición solo se confirma durante el inicio de tarea.
-
Tiempos de espera de contenedor
startTimeout
-
Tipo: 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, se especifican dos contenedores en una definición de tareas donde
containerA
tenga una dependencia encontainerB
que alcance un estadoCOMPLETE
,SUCCESS
oHEALTHY
. Si se especifica un valorstartTimeout
paracontainerB
y este no alcanza el estado deseado en ese tiempo,containerA
no se inicia.nota
Si un contenedor no cumple una restricción de dependencia o agota el tiempo de espera antes de cumplir la restricción, Amazon ECS no adelanta los contenedores dependientes a su siguiente estado.
Para las tareas de Amazon ECS que están alojadas en Fargate, este parámetro requiere que la tarea o el servicio utilice la versión de la plataforma
1.3.0
o una posterior (Linux). El valor máximo es 120 segundos. stopTimeout
-
Tipo: 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 de Amazon ECS que están alojadas en Fargate, este parámetro requiere que la tarea o el servicio utilice la versión de la plataforma
1.3.0
o una posterior (Linux). Si no se especifica el parámetro, se utiliza el valor predeterminado de 30 segundos. El valor máximo para Fargate es 120 segundos.Para las tareas que utilizan el tipo de lanzamiento de EC2, si no se especifica el parámetro
stopTimeout
, se utiliza el valor establecido para la variable de configuración del agente de contenedor de Amazon ECSECS_CONTAINER_STOP_TIMEOUT
. Si no se establece ni el parámetrostopTimeout
ni la variable de configuración del agenteECS_CONTAINER_STOP_TIMEOUT
, se utilizan los valores predeterminados de 30 segundos para los contenedores Linux y de 30 segundos en contenedores de 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 acerca de cómo comprobar la versión del agente y actualizar a la versión más reciente, consulte Actualización del agente de contenedor de Amazon ECS. Si utiliza la AMI de Amazon Linux optimizada para Amazon ECS, la instancia necesita al menos la versión 1.26.0-1 del paqueteecs-init
. Si las instancias de contenedor se lanzan desde la versión20190301
o posterior, contienen las versiones requeridas del agente de contenedor yecs-init
. Para obtener más información, consulte AMI de Linux optimizadas para Amazon ECS.
Controles del sistema
systemControls
-
Tipo: objeto SystemControl
Requerido: no
Una lista de parámetros de kernel del espacio de nombres que se van a establecer en el contenedor. Este parámetro se corresponde con
Sysctls
en el comando create-container de docker y la opción--sysctl
con docker run. Por ejemplo, puede configurar la configuraciónnet.ipv4.tcp_keepalive_time
para mantener conexiones de mayor duración.No se recomienda especificar parámetros
systemControls
relacionados con la red para varios contenedores en una única tarea que también utilice el modo de redawsvpc
uhost
. De ese modo, se obtienen las siguientes desventajas:-
En las tareas que utilicen el modo de red
awsvpc
, incluido Fargate, si establecesystemControls
en cualquier contenedor, esto se aplicará a todos los contenedores de la tarea. Si establece diferentes parámetrossystemControls
para varios contenedores en una sola tarea, el contenedor que se inicie en último lugar determinará quésystemControls
se aplicará. -
Para las tareas que utilizan el modo de red
host
, no se admiten lossystemControls
del espacio de nombres de la red.
Si configura un espacio de nombres de recursos de IPC para usarlo para los contenedores de la tarea, se aplican las siguientes condiciones a los controles del sistema. Para obtener más información, consulte Modo IPC.
-
Para las tareas que usan el modo de IPC
host
, no se admiten lossystemControls
del espacio de nombres IPC. -
Para las tareas que utilizan el modo de IPC
task
, los valores desystemControls
del espacio de nombres IPC se aplican a todos los contenedores de una tarea.
nota
Este parámetro no es compatible con contenedores Windows.
nota
Este parámetro solo se admite para las tareas que están alojadas en AWS Fargate si utilizan la versión de la plataforma
1.4.0
o una posterior (Linux). Este parámetro no es compatible con contenedores de Windows en Fargate."systemControls": [ { "namespace":"
string
", "value":"string
" } ]namespace
-
Tipo: cadena
Requerido: no
El parámetro de kernel del 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"
ySysctls
que comiencen por"fs.mqueue.*"
Valores de espacio de nombres de red válidos:
Sysctls
que comience por"net.*"
Todos estos valores son compatibles con Fargate.
value
-
Tipo: cadena
Requerido: no
El valor del parámetro de kernel del espacio de nombres especificado en
namespace
.
-
Interactivo
interactive
-
Tipo: Booleano
Requerido: no
Si este parámetro es
true
, puede implementar aplicaciones en contenedores que requieran la asignación destdin
o untty
. Este parámetro se corresponde conOpenStdin
en el comando create-container de docker y la opción--interactive
con docker run.El valor predeterminado es
false
.
Pseudo terminal
pseudoTerminal
-
Tipo: Booleano
Requerido: no
Cuando este parámetro es
true
, se asigna un TTY. Este parámetro se corresponde conTty
en el comando create-container de docker y la opción--tty
con docker run.El valor predeterminado es
false
.
Nombre del acelerador de Elastic Inference
El requisito de recursos del acelerador de Elastic Inference para la definición de tareas.
nota
Amazon Elastic Inference (EI) ya no está disponible para los clientes.
Los siguientes parámetros están permitidos en una definición de tarea:
deviceName
-
Tipo: cadena
Obligatorio: sí
Nombre del dispositivo del acelerador de inferencia elástica. También debe hacerse referencia a
deviceName
en una definición de contenedor. Consulte Elastic Inference accelerator. deviceType
-
Tipo: cadena
Obligatorio: sí
El tipo de acelerador de Elastic Inference que se va a utilizar.
Restricciones para ubicación de tareas
Cuando se registra una definición de tareas, se pueden proporcionar restricciones de ubicación de tareas que personalizan la forma en la que Amazon ECS las coloca.
Si utiliza el tipo de lanzamiento de 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, se pueden usar restricciones para colocar tareas en función de la zona de disponibilidad, el tipo de instancia o atributos personalizados. Para obtener más información, consulte Definición de las instancias de contenedor que utiliza Amazon ECS para las tareas.
Los siguientes parámetros están permitidos en una definición de contenedor:
expression
-
Tipo: cadena
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 Creación de expresiones para definir instancias de contenedor para las tareas de Amazon ECS.
type
-
Tipo: cadena
Obligatorio: sí
El tipo de restricción. Utilice
memberOf
para restringir la selección a un grupo de candidatos válidos.
Configuración del proxy
proxyConfiguration
-
Tipo: objeto ProxyConfiguration
Requerido: no
Los detalles de configuración del proxy App Mesh.
Para las tareas que utilizan el tipo de lanzamiento de 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 ECS20190301
o posterior, entonces contienen las versiones requeridas del agente de contenedor yecs-init
. Para obtener más información, consulte AMI de Linux optimizadas para Amazon ECS.Para las tareas que utilizan el tipo de lanzamiento de Fargate, esta característica requiere que la tarea o servicio utilicen la versión 1.3.0 de la plataforma o una posterior.
nota
Este parámetro no es compatible con contenedores Windows.
"proxyConfiguration": { "type": "APPMESH", "containerName": "
string
", "properties": [ { "name": "string
", "value": "string
" } ] }type
-
Tipo: cadena
Valores válidos:
APPMESH
Requerido: no
El tipo de proxy. El único valor admitido es
APPMESH
. containerName
-
Tipo: cadena
Obligatorio: sí
El nombre del contenedor que sirve como proxy de App Mesh.
properties
-
Tipo: matriz de objetos KeyValuePair
Requerido: 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 proxy tal y como lo define el parámetrouser
en una definición de contenedor. Se utiliza para garantizar que el proxy pasa por alto su propio tráfico. Si se especificaIgnoredGID
, este campo puede estar vacío. -
IgnoredGID
: (obligatorio) el ID de grupo (GID) del contenedor proxy tal y como lo define el parámetrouser
en una definición de contenedor. Se utiliza para garantizar que el proxy pasa por alto su propio tráfico. Si se especificaIgnoredUID
, 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 aProxyIngressPort
yProxyEgressPort
. -
ProxyIngressPort
: (obligatorio) especifica el puerto al que se dirige el tráfico que ingresa aAppPorts
. -
ProxyEgressPort
: (obligatorio) especifica el puerto al que se dirige el tráfico que sale deAppPorts
. -
EgressIgnoredPorts
: (obligatorio) el tráfico de salida que se dirige a estos puertos especificados se pasa por alto y no se redirige aProxyEgressPort
. 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 aProxyEgressPort
. Puede ser una lista vacía.
name
-
Tipo: cadena
Requerido: no
El nombre del par clave-valor.
value
-
Tipo: cadena
Requerido: no
El valor del par clave-valor.
-
Volúmenes
Al registrar una definición de tareas, se puede especificar una lista de los volúmenes que se transferirán al daemon de Docker en una instancia de contenedor, que 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 Amazon EBS: proporciona almacenamiento en bloques rentable, duradero y de alto rendimiento para cargas de trabajo en contenedores con uso intensivo de datos. Puede adjuntar un volumen de Amazon EBS por tarea de Amazon ECS cuando ejecute una tarea independiente o cuando cree o actualice un servicio. Se admiten volúmenes de Amazon EBS para tareas de Linux alojadas en instancias de Fargate o Amazon EC2. Para obtener más información, consulte Uso de volúmenes de Amazon EBS con Amazon ECS.
-
Volúmenes de Amazon EFS: proporciona almacenamiento de archivos sencillo, escalable y persistente para usarlo con tareas de Amazon ECS. Con Amazon EFS, la capacidad de almacenamiento es elástica. Aumenta y disminuye automáticamente a medida que se agregan o eliminan archivos. Sus aplicaciones disponen del almacenamiento que necesitan, cuando lo necesitan. Se admiten volúmenes de Amazon EFS para tareas que están alojadas en instancias de Fargate o Amazon EC2. Para obtener más información, consulte Uso de volúmenes de Amazon EFS con Amazon ECS.
-
Volúmenes de FSx for Windows File Server: proporciona servidores de archivos de Microsoft Windows completamente administrados. Estos servidores de archivos están respaldados por un sistema de archivos de Windows. Cuando utiliza FSx for Windows File Server junto con Amazon ECS, puede aprovisionar sus tareas de Windows con almacenamiento persistente, distribuido, compartido y estático de archivos. Para obtener más información, consulte Uso de volúmenes de FSx para Windows File Server con Amazon ECS.
Los contenedores Windows de Fargate no admiten esta opción.
-
Volúmenes de Docker: un volumen administrado por Docker que se crea en
/var/lib/docker/volumes
en la instancia de Amazon EC2 del host. Los controladores de volúmenes de Docker (también llamados complementos) se usan para integrar los volúmenes con sistemas de almacenamiento externos como Amazon EBS. Se puede usar el controlador de volumenlocal
integrado o un controlador de volumen de terceros. Los volúmenes de Docker se admiten solo cuando se ejecutan tareas en instancias de Amazon EC2. Los contenedores de Windows admiten solo el uso del controladorlocal
. Para utilizar volúmenes de Docker, especifiquedockerVolumeConfiguration
en su definición de tarea. -
Montajes de unión: un archivo o directorio de la máquina host que se monta en un contenedor. Se admiten volúmenes de host de montaje de enlace cuando se ejecutan tareas en instancias de Amazon EC2 o Fargate de AWS. Para utilizar volúmenes de host de montaje vinculado, especifique
host
y un valor desourcePath
opcional en su definición de tarea.
Para obtener más información, consulte Opciones de almacenamiento para las tareas de Amazon ECS.
Los siguientes parámetros están permitidos en una definición de contenedor.
name
-
Tipo: cadena
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ámetrosourceVolume
del objetomountPoints
de la definición de contenedor. host
-
Requerido: no
El parámetro
host
se utiliza para vincular el ciclo de vida del montaje de enlace a la instancia de Amazon EC2 del host, en lugar de a la tarea, y donde se almacena. Si el parámetrohost
está vacío, entonces el daemon 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
.nota
El parámetro
sourcePath
se admite solo cuando se utilizan las tareas que se alojan en instancias de Amazon EC2.sourcePath
-
Tipo: cadena
Requerido: no
Cuando utilice el parámetro
host
, especifique unasourcePath
para declarar la ruta de la instancia de Amazon EC2 del host que se presenta al contenedor. Si este parámetro está vacío, el daemon de Docker asigna una ruta de host. Si el parámetrohost
contiene una ubicación de archivossourcePath
, el volumen de datos persiste en la ubicación especificada en la instancia de Amazon EC2 del host hasta que la elimine manualmente. Si el valorsourcePath
no existe en la instancia de Amazon EC2 del host, el daemon de Docker lo crea. Si la ubicación existe, el contenido de la carpeta de la ruta de origen se exporta.
configuredAtLaunch
-
Tipo: Booleano
Requerido: no
Indica si un volumen se puede configurar durante el lanzamiento. Cuando se establece en
true
, puede configurarlo al ejecutar una tarea independiente o al crear o actualizar un servicio. Cuando se establece entrue
, no podrá proporcionar otra configuración de volumen en la definición de la tarea. Este parámetro se debe establecer entrue
para configurar un volumen de Amazon EBS para adjuntarlo a una tarea. EstablecerconfiguredAtLaunch
entrue
y aplazar la configuración del volumen hasta la fase de lanzamiento permite crear definiciones de tareas que no se limitan a un tipo de volumen o a una configuración de volumen específica. De este modo, la definición de la tarea se puede reutilizar en distintos entornos de ejecución. Para obtener más información, consulte Volúmenes de Amazon EBS. dockerVolumeConfiguration
-
Type: objeto de DockerVolumeConfiguration
Requerido: no
Este parámetro se especifica cuando se usan volúmenes de Docker. Los volúmenes de Docker se admiten solo cuando se ejecutan tareas en instancias de EC2. Los contenedores de Windows admiten solo el uso del controlador
local
. Para utilizar montajes vinculados, especifiquehost
en su lugar.scope
-
Tipo: cadena
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 la tarea se detiene. Los volúmenes de Docker cuyo ámbito esshared
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 se usa solo siscope
esshared
. Si elscope
estask
, este parámetro debe omitirse. driver
-
Tipo: cadena
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 utiliza para la colocación de tareas. Si el controlador se instaló mediante la CLI del complemento de Docker, utilice
docker plugin ls
para recuperar el nombre de controlador de la instancia de contenedor. Si el controlador se instaló con otro método, utilice la detección de complementos de Docker para recuperar el nombre del controlador. driverOpts
-
Tipo: cadena
Requerido: no
Un mapa de las opciones específicas del controlador de Docker que se deben transferir. Este parámetro se corresponde con
DriverOpts
en la sección Crear un volumen de Docker. labels
-
Tipo: cadena
Requerido: no
Metadatos personalizados que se añaden al volumen de Docker.
efsVolumeConfiguration
-
Tipo: objeto de EFSVolumeConfiguration
Requerido: no
Este parámetro se especifica cuando se usan volúmenes de Amazon EFS.
fileSystemId
-
Tipo: cadena
Obligatorio: sí
El ID del sistema de archivos de Amazon EFS que se va a usar.
rootDirectory
-
Tipo: cadena
Obligatorio: 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 obtiene el mismo efecto que si se omite este parámetro.importante
Si se especifica un punto de acceso de EFS en
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 de EFS. transitEncryption
-
Tipo: cadena
Valores válidos:
ENABLED
|DISABLED
Requerido: no
Especifica si se habilita el cifrado para los datos en tránsito de Amazon EFS entre el host de Amazon ECS y el servidor de Amazon EFS. Si se utiliza la autorización de IAM en Amazon EFS, el cifrado en tránsito debe estar habilitado. Si se omite este parámetro, se usa el valor predeterminado de
DISABLED
. Para obtener más información, consulte Cifrado de datos en tránsito en la Guía del usuario de Amazon Elastic File System. transitEncryptionPort
-
Tipo: entero
Requerido: no
El puerto que se utilizará al enviar datos cifrados entre el host de Amazon ECS y el servidor de Amazon EFS. Si no se especifica un puerto de cifrado en tránsito, la tarea 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 de EFSAuthorizationConfiguration
Requerido: no
Los detalles de configuración de autorización en el sistema de archivos de Amazon EFS.
accessPointId
-
Tipo: cadena
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/
, lo que aplicará la ruta establecida en el punto de acceso de EFS. Si se utiliza un punto de acceso, el cifrado de tránsito debe estar habilitado en elEFSVolumeConfiguration
. Para obtener más información, consulte Trabajo con puntos de acceso de Amazon EFS en la Guía del usuario de Amazon Elastic File System. iam
-
Tipo: cadena
Valores válidos:
ENABLED
|DISABLED
Requerido: no
Indica si se debe utilizar el rol de IAM de tarea de Amazon ECS definido en una definición de tareas 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 deDISABLED
. Para obtener más información, consulte Roles de IAM para las tareas.
FSxWindowsFileServerVolumeConfiguration
-
Tipo: objeto de FSXWindowsFileServerVolumeConfiguration
Obligatorio: sí
Este parámetro se indica cuando se utiliza el sistema de archivos Amazon FSx para Windows File Server para el almacenamiento de tareas.
fileSystemId
-
Tipo: cadena
Obligatorio: sí
ID del sistema de archivos FSx for Windows File Server que se va a utilizar.
rootDirectory
-
Tipo: cadena
Obligatorio: sí
Directorio dentro del sistema de archivos de FSx for Windows File Server que se va a montar como directorio raíz dentro del host.
authorizationConfig
-
credentialsParameter
-
Tipo: cadena
Obligatorio: sí
Opciones de credenciales de autorización.
opciones:
Nombre de recurso de Amazon (ARN) del secreto de AWS Secrets Manager.
ARN de un parámetro de AWS Systems Manager.
domain
-
Tipo: cadena
Obligatorio: sí
Nombre de dominio completo alojado por un directorio de AWS Directory Service for Microsoft Active Directory(AWS Managed Microsoft AD) o un directorio de Active Directory de EC2 con alojamiento propio.
Etiquetas
Cuando se registra una definición de tareas, se pueden especificar etiquetas de metadatos que se aplican a la definición de tareas. Las etiquetas ayudan a clasificar y organizar la definición de tareas. Cada etiqueta consta de una clave y un valor opcional. Los define a los dos. Para obtener más información, consulte Etiquetado de los recursos de Amazon ECS.
importante
No agregue información de identificación personal ni otra información confidencial en las etiquetas. Las etiquetas son accesibles para muchos servicios de AWS, incluida la facturación. Las etiquetas no se diseñaron para utilizarse con información privada o confidencial.
Los siguientes parámetros se admiten en un objeto de etiqueta.
key
-
Tipo: cadena
Requerido: no
Una parte de un par clave-valor que compone una etiqueta. Un clave es una etiqueta general que actúa como una categoría para valores de etiqueta más específicos.
value
-
Tipo: cadena
Requerido: no
La parte opcional de un par clave-valor que compone una etiqueta. Un valor actúa como un descriptor en una categoría de etiquetas (clave).
Otros parámetros de definición de tarea
Los siguientes parámetros de definición de tareas se pueden utilizar cuando se registran definiciones de tareas en la consola de Amazon ECS mediante la opción Configure via JSON (Configurar mediante JSON). Para obtener más información, consulte Creación de una definición de tareas de Amazon ECS mediante la consola.
Almacenamiento efímero
ephemeralStorage
-
Tipo: objeto de EphemeralStorage
Requerido: no
Cantidad de almacenamiento efímero (en GB) que se va a asignar para la tarea. Este parámetro se utiliza para expandir la cantidad total de almacenamiento efímero disponible, más allá de la cantidad predeterminada, para las tareas que están alojadas en AWS Fargate. Para obtener más información, consulte Uso de montajes de unión con Amazon ECS.
nota
Este parámetro solo se admite para las tareas que están alojadas en AWS Fargate que utilizan la versión de la plataforma
1.4.0
o una posterior (Linux) o1.0.0
o una posterior (Windows).
Modo IPC
ipcMode
-
Tipo: cadena
Requerido: no
El espacio de nombres de recurso de IPC que usarán los contenedores de la tarea. Los valores válidos son
host
,task
onone
. Si se especificahost
, todos los contenedores que están dentro de las tareas que tienen especificado el modo de IPChost
en la misma instancia de contenedor comparten los mismos recursos de IPC con la instancia Amazon EC2 del host. Si se especificatask
, todos los contenedores que están dentro de la tarea especificada comparten los mismos recursos de IPC. Si se especificanone
, 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.Si se utiliza el modo de IPC
host
, existe un mayor riesgo de exposición de espacio de nombres de IPC no deseada.Si configura parámetros del kernel del espacio de nombres mediante
systemControls
para los contenedores de la tarea, se aplica lo siguiente a su espacio de nombres de recursos de IPC.-
Para las tareas que utilizan el modo de IPC
host
, no se admiten lossystemControls
relacionados con el espacio de nombres de IPC. -
Para las tareas que utilizan el modo de IPC
task
, lossystemControls
relacionados con el espacio de nombres de IPC se aplican a todos los contenedores de una tarea.
-
nota
Este parámetro no es compatible con contenedores Windows o tareas con el tipo de lanzamiento Fargate.
Modo PID
pidMode
-
Tipo: cadena
Valores válidos:
host
|task
Requerido: no
El espacio de nombres del proceso que usarán los contenedores de la tarea. Los valores válidos son
host
otask
. En los contenedores de Fargate para Linux, el único valor válido estask
. Por ejemplo, la supervisión de los archivos sidecar puede necesitarpidMode
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 PIDhost
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.
Si se utiliza el modo de PID
host
, existe un mayor riesgo de exposición de espacio de nombres del proceso no deseada.
nota
Este parámetro no es compatible con contenedores Windows.
nota
Este parámetro solo se admite para las tareas que están alojadas en AWS Fargate si utilizan la versión de la plataforma 1.4.0
o una posterior (Linux). Este parámetro no es compatible con contenedores de Windows en Fargate.