Amazon ECSConfiguración del agente de contenedor de - Amazon Elastic Container Service

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

Amazon ECSConfiguración del agente de contenedor de

El agente de contenedor de Amazon ECS admite una serie de opciones de configuración, la mayoría de las cuales se deben establecer a través de variables de entorno. Están disponibles las siguientes variables de entorno y todas ellas son opcionales.

Si la instancia de contenedor se lanzó con la variante de Linux de la Amazon ECS-optimized AMI, puede establecer estas variables de entorno en el archivo /etc/ecs/ecs.config y, a continuación, reiniciar el agente. También puede escribir estas variables de configuración en sus instancias de contenedor con datos de usuario de Amazon EC2 en el momento del lanzamiento. Para obtener más información, consulte Proceso de arranque de instancias de contenedor con datos de usuario de Amazon EC2.

Si está iniciando manualmente el agente de contenedor de Amazon ECS (para no Amazon ECS-optimized AMI), puede utilizar estas variables de entorno en el comando docker run que utiliza para iniciar el agente. Utilice estas variables con la sintaxis --env=VARIABLE_NAME=VARIABLE_VALUE. En el caso de información confidencial, por ejemplo credenciales de autenticación para repositorios privados, debe almacenar las variables de entorno del agente en un archivo y transmitirlas a la vez con la opción --env-file path_to_env_file

Parámetros disponibles

Están disponibles los siguientes parámetros de configuración del agente de contenedor de Amazon ECS Existen variables sin documentar que el agente utiliza de manera interna y que pueden ser visibles, pero que no están destinadas al uso por parte del cliente. Para obtener más información, consulte Agente de contenedor de Amazon ECS en GitHub.

ECS_CLUSTER

Valores de ejemplo: MyCluster

Valor predeterminado en Linux: default

Valor predeterminado en Windows: default

El clúster en el que este agente debería realizar la comprobación. Si este valor está sin definir, se supone el clúster default Si el clúster default no existe, el agente de contenedor de Amazon ECS intenta crearlo. Si se ha especificado un clúster no default y no existe, el registro falla.

ECS_RESERVED_PORTS

Valores de ejemplo: [22, 80, 5000, 8080]

Valor predeterminado en Linux: [22, 2375, 2376, 51678, 51679, 51680]

Valor predeterminado en Windows: [53, 135, 139, 445, 2375, 2376, 3389, 5985, 51678, 51679]

Una matriz de puertos que se deben marcar como no disponibles para programación en esta instancia de contenedor.

ECS_RESERVED_PORTS_UDP

Valores de ejemplo: [53, 123]

Valor predeterminado en Linux: []

Valor predeterminado en Windows: []

Una matriz de puertos UDP que se deben marcar como no disponibles para programación en esta instancia de contenedor.

ECS_ENGINE_AUTH_TYPE

Valores de ejemplo: dockercfg | docker

Valor predeterminado en Linux: Null

Valor predeterminado en Windows: Null

Requerido para la autenticación de registros privados. Este es el tipo de datos de autenticación en ECS_ENGINE_AUTH_DATA. Para obtener más información, consulte Formatos de autenticación.

ECS_ENGINE_AUTH_DATA

Valores de ejemplo:

  • ECS_ENGINE_AUTH_TYPE=dockercfg: {"https://index.docker.io/v1/":{"auth":"zq212MzEXAMPLE7o6T25Dk0i","email":"email@example.com"}}

  • ECS_ENGINE_AUTH_TYPE=docker: {"https://index.docker.io/v1/":{"username":"my_name","password":"my_password","email":"email@example.com"}}

Valor predeterminado en Linux: Null

Valor predeterminado en Windows: Null

Requerido para la autenticación de registros privados. Si ECS_ENGINE_AUTH_TYPE=dockercfg, el valor ECS_ENGINE_AUTH_DATA debe ser el contenido de un archivo de configuración de Docker (~/.dockercfg o ~/.docker/config.json) que se crea al ejecutar docker login. Si ECS_ENGINE_AUTH_TYPE=docker, entonces el valor ECS_ENGINE_AUTH_DATA debe ser una representación JSON del servidor de registros en el que autenticarse, así como los parámetros de autenticación requeridos por dicho registro, por ejemplo, nombre de usuario, contraseña y dirección de correo electrónico de dicha cuenta. Para obtener más información, consulte Formatos de autenticación.

AWS_DEFAULT_REGION

Valores de ejemplo: us-east-1

Valor predeterminado en Linux: tomado de los metadatos de la instancia Amazon EC2

Valor predeterminado en Windows: tomado de los metadatos de la instancia Amazon EC2

La región que se debe utilizar en las solicitudes de API así como para deducir el host correcto del backend.

AWS_ACCESS_KEY_ID

Valores de ejemplo: AKIAIOSFODNN7EXAMPLE

Valor predeterminado en Linux: tomado de los metadatos de la instancia Amazon EC2

Valor predeterminado en Windows: tomado de los metadatos de la instancia Amazon EC2

La clave de acceso utilizada por el agente para todas las llamadas.

AWS_SECRET_ACCESS_KEY

Valores de ejemplo: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

Valor predeterminado en Linux: tomado de los metadatos de la instancia Amazon EC2

Valor predeterminado en Windows: tomado de los metadatos de la instancia Amazon EC2

La clave secreta utilizada por el agente para todas las llamadas.

AWS_SESSION_TOKEN

Valor predeterminado en Linux: tomado de los metadatos de la instancia Amazon EC2

Valor predeterminado en Windows: tomado de los metadatos de la instancia Amazon EC2

El token de sesión utilizado para credenciales temporales.

DOCKER_HOST

Valores de ejemplo: unix:///var/run/docker.sock

Valor predeterminado en Linux: unix:///var/run/docker.sock

Valor predeterminado en Windows: npipe:////./pipe/docker_engine

Utilizado para crear una conexión al demonio de Docker; se comporta de forma similar a la variable de entorno utilizada por el cliente de Docker.

ECS_LOGFILE

Valores de ejemplo: /ecs-agent.log

Valor predeterminado en Linux: Null

Valor predeterminado en Windows: Null

La ubicación en la que se deben escribir los registros del agente. Si está ejecutando el agente a través de ecs-init, que es el método predeterminado cuando se utiliza la AMI optimizada para Amazon ECS, la ruta de contenedor será /log, y ecs-init lo montará en el directorio /var/log/ecs/ del host.

ECS_LOGLEVEL

Valores de muestra: crit, error, warn, info y debug

Valor predeterminado en Linux: info

Valor predeterminado en Windows: info

El nivel de detalle con el que se va a registrar.

ECS_LOGLEVEL_ON_INSTANCE

Valores de ejemplo: none, crit, error, warn, info, debug

Valor predeterminado en Linux: none, si ECS_LOG_DRIVER se establece explícitamente en un valor no vacío; de lo contrario, el mismo valor que ECS_LOGLEVEL

Valor predeterminado en Windows: none, si ECS_LOG_DRIVER se establece explícitamente en un valor no vacío; de lo contrario, el mismo valor que ECS_LOGLEVEL

Se puede utilizar para invalidar ECS_LOGLEVEL y establecer el nivel de detalle que debe registrarse en el archivo de registro de la instancia, que es diferente del nivel registrado en el controlador de registro. Si se establece explícitamente un controlador de registro, los registros de la instancia se desactivan de forma predeterminada, pero se pueden volver a activar con esta variable.

ECS_CHECKPOINT

Valores de ejemplo: true | false

Valor predeterminado en Linux: si ECS_DATADIR se establece explícitamente en un valor no vacío, ECS_CHECKPOINT se establece en true; de lo contrario, se establece en false.

Valor predeterminado en Windows: si ECS_DATADIR se establece explícitamente en un valor no vacío, ECS_CHECKPOINT se establece en true; de lo contrario, se establece en false.

Si se guarda o no el estado de punto de comprobación en la ubicación especificada con ECS_DATADIR.

ECS_DATADIR

Valores de ejemplo: /data

Valor predeterminado en Linux: /data/

Valor predeterminado en Windows: C:\ProgramData\Amazon\ECS\data

El nombre del directorio de datos persistente en el contenedor en que se ejecuta el agente de contenedor de Amazon ECS El directorio se utiliza para guardar información acerca del clúster y el estado del agente.

ECS_UPDATES_ENABLED

Valores de ejemplo: true | false

Valor predeterminado en Linux: false

Valor predeterminado en Windows: false

Si es necesario salir para las actualizaciones del agente de Amazon ECS cuando se solicitan.

ECS_DISABLE_METRICS

Valores de ejemplo: true | false

Valor predeterminado en Linux: false

Valor predeterminado en Windows: true

Si se desactivan las métricas de CloudWatch para Amazon ECS. Si este valor se establece en true, no se recopilan las métricas de CloudWatch

ECS_POLL_METRICS

Valores de ejemplo: true | false

Valor predeterminado en Linux: false (ver descripción a continuación)

Valor predeterminado en Windows: false (ver descripción a continuación)

Si se habilita el sondeo o la transmisión cuando se recopilan métricas de CloudWatch para las tareas.

En versiones del agente anteriores a 1.40.0, el valor predeterminado era false. En las versiones del agente de 1.40.0 a 1.42.0, el valor predeterminado era true. En las versiones del agente 1.43.0 y posteriores, el valor predeterminado es false.

importante

Si ECS_POLL_METRICS se establece como “false”, el agente, dockerd y containerd hacen un uso elevado de la CPU cuando su instancia Amazon EC2 aloja varios contenedores.

ECS_POLLING_METRICS_WAIT_DURATION

Valores de ejemplo: 30s

Valor predeterminado en Linux: 15s

Valor predeterminado en Windows: 15s

Tiempo de espera para sondear nuevas métricas de CloudWatch para una tarea. Solo se utiliza cuando ECS_POLL_METRICS es true.

ECS_RESERVED_MEMORY

Valores de ejemplo: 32

Valor predeterminado en Linux: 0

Valor predeterminado en Windows: 0

La cantidad de memoria, en MiB, que hay que eliminar del grupo que se tiene asignado para realizar tareas. En la práctica, esto reserva esa memoria para los procesos críticos del sistema, incluidos el demonio de Docker y el agente de contenedor de Amazon ECS Por ejemplo, si se especifica ECS_RESERVED_MEMORY=256, el agente registrará la memoria total menos 256 MiB para esa instancia y las tareas de ECS no podrán asignar 256 MiB de memoria de Amazon ECS Para obtener más información, consulte Administración de la memoria en Instancia de contenedor.

ECS_AVAILABLE_LOGGING_DRIVERS

Valores de ejemplo: ["awslogs","fluentd","gelf","json-file","journald","splunk","logentries","syslog"]

Valor predeterminado en Linux: ["json-file","none"]

Valor predeterminado en Windows: ["json-file","none"]

nota

Si utiliza ECS init, los valores predeterminados son ["json-file","syslog","awslogs","none"].

Los controladores de registro disponibles en la instancia de contenedor. El agente de contenedor de Amazon ECS que se ejecuta en una instancia de contenedor debe registrar los controladores de registros disponibles en dicha instancia con la variable de entorno ECS_AVAILABLE_LOGGING_DRIVERS antes de que los contenedores situados en dicha instancia puedan utilizar las opciones de configuración de registros para dichos controladores en las tareas. Para obtener información sobre cómo utilizar el controlador de registros awslogs, consulte Uso del controlador de registros awslogs. Para obtener más información sobre los diferentes controladores de registro disponibles para su versión de Docker y cómo configurarlos, consulte Configure logging drivers en la documentación de Docker.

ECS_DISABLE_PRIVILEGED

Valores de ejemplo: true | false

Valor predeterminado en Linux: false

Valor predeterminado en Windows: false

Si el lanzamiento de contenedores con privilegios está deshabilitado en la instancia de contenedor. Si este valor se establece en true, no se permiten los contenedores con privilegios.

ECS_SELINUX_CAPABLE

Valores de ejemplo: true | false

Valor predeterminado en Linux: false

Valor predeterminado en Windows: false

Si SELinux está disponible en la instancia de contenedor.

ECS_APPARMOR_CAPABLE

Valores de ejemplo: true | false

Valor predeterminado en Linux: false

Valor predeterminado en Windows: false

Si AppArmor está disponible en la instancia de contenedor.

ECS_ENGINE_TASK_CLEANUP_WAIT_DURATION

Valores de ejemplo: 1h (las unidades de tiempo válidas son "ns", "us" (o "µs"), "ms", "s", "m" y "h").

Valor predeterminado en Linux: 3h

Valor predeterminado en Windows: 3h

Tiempo que hay que esperar desde se detiene una tarea hasta que se elimine el contenedor Docker. Dado que esto elimina los datos del contenedor de Docker, tenga en cuenta que si este valor establecido es demasiado bajo, es posible que no pueda inspeccionar los contenedores detenidos o ver los registros antes de que se eliminen. La duración mínima es de 1m; cualquier valor inferior a un minuto no se tiene en cuenta.

ECS_CONTAINER_STOP_TIMEOUT

Valores de ejemplo: 10m (las unidades de tiempo válidas son "ns", "us" (o "µs"), "ms", "s", "m" y "h").

Valor predeterminado en Linux: 30s

Valor predeterminado en Windows: 30s

Tiempo que hay que esperar desde que se detiene una tarea antes de que sus contenedores se detengan de forma forzada si no salen con normalidad por sí mismos.

ECS_CONTAINER_START_TIMEOUT

Valores de ejemplo: 10m (las unidades de tiempo válidas son "ns", "us" (o "µs"), "ms", "s", "m" y "h").

Valor predeterminado en Linux: 3m

Valor predeterminado en Windows: 8m

Tiempo que hay que esperar antes de desistir en iniciar un contenedor.

HTTP_PROXY

Valores de ejemplo: 10.0.0.131:3128

Valor predeterminado en Linux: Null

Valor predeterminado en Windows: Null

El nombre de host (o la dirección IP) y el número de puerto de un proxy HTTP que se vayan a utilizar para que el agente de Amazon ECS se conecte a Internet. Por ejemplo, se usará este proxy si las instancias de contenedor no tienen acceso de red externo a través de una gateway de Internet de Amazon VPC, una gateway NAT o una instancia. Si esta variable está definida, también debe definir la variable NO_PROXY para filtrar los metadatos de instancia Amazon EC2 y el tráfico del demonio de Docker desde el proxy. Para obtener más información, consulte Configuración de proxy HTTP.

NO_PROXY

Valores de ejemplo:

  • Linux: 169.254.169.254,169.254.170.2,/var/run/docker.sock de

  • Windows: 169.254.169.254,169.254.170.2,\\.\pipe\docker_engine

Valor predeterminado en Linux: Null

Valor predeterminado en Windows: Null

El tráfico HTTP que no se debe reenviar al especificado.HTTP_PROXY. Debe especificar 169.254.169.254,/var/run/docker.sock para filtrar los metadatos de instancia Amazon EC2 y el tráfico de demonio de Docker desde el proxy. Para obtener más información, consulte Configuración de proxy HTTP.

ECS_ENABLE_TASK_IAM_ROLE

Valores de ejemplo: true | false

Valor predeterminado en Linux: false

Valor predeterminado en Windows: false

nota

Si utiliza ecs init, el valor predeterminado es true.

Si los roles de IAM para tareas se deben habilitar en la instancia de contenedor para contenedores de tarea con los modos de red bridge o default Para obtener más información, consulte Roles de IAM para las tareas.

ECS_ENABLE_TASK_IAM_ROLE_NETWORK_HOST

Valores de ejemplo: true | false

Valor predeterminado en Linux: false

Valor predeterminado en Windows: false

nota

Si utiliza ecs init, el valor predeterminado es true.

Si los roles de IAM para las tareas se deben habilitar en la instancia de contenedor para los contenedores de tarea con el modo de red host Esta variable solo se admite en versiones de agente 1.12.0 y posterior. Para obtener más información, consulte Roles de IAM para las tareas.

ECS_DISABLE_IMAGE_CLEANUP

Valores de ejemplo: true

Valor predeterminado en Linux: false

Valor predeterminado en Windows: false

Si se desea deshabilitar la limpieza automática de imágenes para el agente de Amazon ECS Para obtener más información, consulte Tareas automatizadas y limpieza de imágenes.

ECS_IMAGE_CLEANUP_INTERVAL

Valores de ejemplo: 30m

Valor predeterminado en Linux: 30m

Valor predeterminado en Windows: 30m

El intervalo de tiempo entre los ciclos de limpieza automática de imágenes. Si se define en menos de 10 minutos, el valor no se tiene en cuenta.

ECS_IMAGE_MINIMUM_CLEANUP_AGE

Valores de ejemplo: 30m

Valor predeterminado en Linux: 1h

Valor predeterminado en Windows: 1h

El intervalo de tiempo mínimo entre que una imagen se extrae y el momento en que se puede tener en cuenta para limpieza automática de imágenes.

NON_ECS_IMAGE_MINIMUM_CLEANUP_AGE

Valores de ejemplo: 30m

Valor predeterminado en Linux: 1h

Valor predeterminado en Windows: 1h

El intervalo de tiempo mínimo entre que se crea una imagen que no es de Amazon ECS y el momento en que se puede tener en cuenta para limpieza automática de imágenes.

ECS_NUM_IMAGES_DELETE_PER_CYCLE

Valores de ejemplo: 5

Valor predeterminado en Linux: 5

Valor predeterminado en Windows: 5

El número máximo de imágenes que eliminar en un único ciclo de limpieza automática de imágenes. Si se define en menos de 1, el valor no se tiene en cuenta.

ECS_IMAGE_PULL_BEHAVIOR

Valores de ejemplo: default | always | once | prefer-cached

Valor predeterminado en Linux: default

Valor predeterminado en Windows: default

El comportamiento que se utiliza para personalizar el proceso de extracción de imágenes para sus instancias de contenedor. A continuación se describen los comportamientos opcionales:

  • Si se especifica default, la imagen se extrae de forma remota. Si no se puede extraer la imagen, el contenedor utiliza la imagen almacenada en la caché de la instancia.

  • Si se especifica always, la imagen se extrae siempre de forma remota. Si no se puede extraer la imagen, se produce un error en la tarea. Esta opción garantiza que se extraiga siempre la versión más reciente de la imagen. Todas las imágenes en caché se omiten y se someten al proceso de limpieza automatizada de imágenes.

  • Si se especifica once, la imagen se extrae de forma remota únicamente si no la ha extraído una tarea anterior en la misma instancia de contenedor o si la imagen en caché ha sido eliminada por el proceso de limpieza automatizada de imágenes. De lo contrario, se usa la imagen almacenada en la caché de la instancia. De este modo, se garantiza que no se realizan extracciones de imágenes innecesarias.

  • Si se especifica prefer-cached, la imagen se extrae de forma remota si no hay ninguna imagen en caché. De lo contrario, se usa la imagen almacenada en la caché de la instancia. La limpieza automatizada de imágenes se deshabilita para el contenedor con el fin de garantizar que no se elimine la imagen en caché.

ECS_IMAGE_PULL_INACTIVITY_TIMEOUT

Valores de ejemplo: 1m

Valor predeterminado en Linux: 1m

Valor predeterminado en Windows: 3m

Tiempo que se debe esperar para la extracción de un contenedor una vez que se complete la extracción de Docker. Es útil para los contenedores de Windows de gran tamaño.

ECS_INSTANCE_ATTRIBUTES

Valores de ejemplo: {"custom_attribute": "custom_attribute_value"}

Valor predeterminado en Linux: Null

Valor predeterminado en Windows: Null

Una lista de atributos personalizados, en formato JSON, que se aplicarán a sus instancias de contenedor. Utilizar este atributo al registrar la instancia, se agregan los atributos personalizados que le permiten omitir el método manual de añadir atributos personalizados a través de la Consola de administración de AWS.

nota

Los atributos añadidos no se aplicarán a instancias de contenedor que ya estén registradas. Para añadir atributos personalizados a instancias de contenedor ya registradas, consulte Adición de un atributo.

Para obtener información acerca de los atributos personalizados que utilizar, consulte Attributes.

Un valor JSON no válido para esta variable hace que el agente salga de la aplicación con el código 5. Aparece un mensaje en los registros del agente. El valor de JSON puede ser válido pero se ha detectado un problema al validar el atributo, por ejemplo, si el valor es demasiado largo o contiene caracteres no válidos. En ese caso, se produce el registro de la instancia de contenedor, pero el agente sale con el código 5 y se escribe un mensaje en los registros de agente. Para obtener información sobre cómo localizar los registros del agente, consulte Registro de agente de contenedor de Amazon ECS.

ECS_ENABLE_TASK_ENI

Valores de ejemplo: true | false

Valor predeterminado en Linux: false

Valor predeterminado en Windows: No aplicable

Determina si se debe habilitar la integración en red de tareas para que estas se lancen con su propia interfaz de red.

ECS_CNI_PLUGINS_PATH

Valores de ejemplo: /ecs/cni

Valor predeterminado en Linux: /amazon-ecs-cni-plugins

Valor predeterminado en Windows: No aplicable

La ruta en la que está ubicado el archivo binario cni.

ECS_AWSVPC_BLOCK_IMDS

Valores de ejemplo: true | false

Valor predeterminado en Linux: false

Valor predeterminado en Windows: No aplicable

Si se bloquea el acceso a Instance Metadata (Metadatos de instancia) para tareas iniciadas con el modo de red awsvpc.

ECS_AWSVPC_ADDITIONAL_LOCAL_ROUTES

Valores de ejemplo: ["10.0.15.0/24"]

Valor predeterminado en Linux: []

Valor predeterminado en Windows: No aplicable

En el modo de red awsvpc, el tráfico a estos prefijos se dirige a través del puente host en lugar de a través de la interfaz de red elástica de la tarea.

ECS_ENABLE_CONTAINER_METADATA

Valores de ejemplo: true | false

Valor predeterminado en Linux: false

Valor predeterminado en Windows: false

Si es true, el agente crea un archivo que describe el contenedor de metadatos. Para localizar y utilizar el archivo, use la variable de entorno del contenedor $ECS_CONTAINER_METADATA_FILE.

ECS_HOST_DATA_DIR

Valores de ejemplo: /var/lib/ecs

Valor predeterminado en Linux: /var/lib/ecs

Valor predeterminado en Windows: No aplicable

Directorio de origen del host desde el que se monta ECS_DATADIR Lo utilizamos para determinar la ruta de montaje de origen de los archivos de metadatos de contenedor si el agente de Amazon ECS se ejecuta como contenedor. No usamos este valor en Windows, ya que el agente de Amazon ECS no se ejecuta como contenedor.

ECS_ENABLE_TASK_CPU_MEM_LIMIT

Valores de ejemplo: true | false

Valor predeterminado en Linux: true

Valor predeterminado en Windows: false

Determina si se habilitan límites de CPU y memoria de nivel de tarea.

ECS_CGROUP_PATH

Valores de ejemplo: /sys/fs/cgroup

Valor predeterminado en Linux: /sys/fs/cgroup

Valor predeterminado en Windows: No aplicable

La ruta cgroup raíz que espera el agente de Amazon ECS Esta es la ruta a la que se puede obtener acceso desde el montaje del agente.

ECS_ENABLE_CPU_UNBOUNDED_WINDOWS_WORKAROUND

Valores de ejemplo: true | false

Valor predeterminado en Linux: No aplicable

Valor predeterminado en Windows: false

Cuando es true, Amazon ECS permite la ejecución en Windows de tareas con uso ilimitado de CPU (CPU=0) junto con tareas con uso limitado de CPU.

ECS_TASK_METADATA_RPS_LIMIT

Valores de ejemplo: 100,150

Valor predeterminado en Linux: 40,60

Valor predeterminado en Windows: 40,60

Valores enteros separados por comas correspondientes a los límites del estado de estabilidad y de ráfaga para el punto de enlace de metadatos de la tarea.

ECS_SHARED_VOLUME_MATCH_FULL_CONFIG

Valores de ejemplo: true | false

Valor predeterminado en Linux: false

Valor predeterminado en Windows: false

Cuando se especifica un dockerVolumeConfiguration en una definición de tarea y se utiliza la marca autoprovision, el agente de contenedor de Amazon ECS compara los detalles del volumen de Docker con los detalles de los volúmenes de Docker existentes. Cuando ECS_SHARED_VOLUME_MATCH_FULL_CONFIG es true, el agente de contenedor compara la configuración completa del volumen (name, driverOpts y labels) para comprobar que los volúmenes son idénticos. Si es false, el agente de contenedor utiliza el comportamiento predeterminado de Docker, que solo verifica name en el volumen. Si se comparte un volumen entre instancias de contenedor, este valor debe establecerse en false. Para obtener más información, consulte Volúmenes de Docker.

ECS_CONTAINER_INSTANCE_PROPAGATE_TAGS_FROM

Valores de ejemplo: ec2_instance

Valor predeterminado en Linux: ninguno

Valor predeterminado en Windows: ninguno

Si se especifica ec2_instance, las etiquetas existentes definidas en la instancia de contenedor se registran en Amazon ECS. Las etiquetas se pueden detectar mediante la operación ListTagsForResource El rol IAM asociado a la instancia de contenedor debe tener la acción ec2:DescribeTags Para obtener más información, consulte Adición de etiquetas a un contenedor instancia.

ECS_CONTAINER_INSTANCE_TAGS

Valores de ejemplo: {"tag_key": "tag_val"}

Valor predeterminado en Linux: {}

Valor predeterminado en Windows: {}

Los metadatos que se aplican a las instancias de contenedor para ayudarle clasificar y organizar sus recursos. Cada etiqueta consta de una clave personalizada definida y un valor opcional. Las claves de etiqueta pueden tener una longitud de caracteres máxima de 128 caracteres. Los valores de las etiquetas puede tener una longitud máxima de 256 caracteres.

Si las etiquetas de las instancias de contenedor se propagan mediante el parámetro ECS_CONTAINER_INSTANCE_PROPAGATE_TAGS_FROM, las etiquetas se sobrescriben mediante las etiquetas especificadas utilizando ECS_CONTAINER_INSTANCE_TAGS. Para obtener más información, consulte Adición de etiquetas a un contenedor instancia.

ECS_ENABLE_UNTRACKED_IMAGE_CLEANUP

Valores de ejemplo: true | false

Valor predeterminado en Linux: false

Valor predeterminado en Windows: false

Si se va a permitir que el agente de Amazon ECS elimine los contenedores e imágenes que no forman parte de las tareas de Amazon ECS

ECS_EXCLUDE_UNTRACKED_IMAGE

Valores de ejemplo: {"alpine":"latest"}

Valor predeterminado en Linux: {}

Valor predeterminado en Windows: {}

Una lista separada por comas de imágenes (imageName:tag) que no deben ser eliminadas por el agente de Amazon ECS si ECS_ENABLE_UNTRACKED_IMAGE_CLEANUP es true.

ECS_DISABLE_DOCKER_HEALTH_CHECK

Valores de ejemplo: true | false

Valor predeterminado en Linux: false

Valor predeterminado en Windows: false

Si se va a desactivar la comprobación de estado del contenedor Docker para el agente de Amazon ECS

ECS_NVIDIA_RUNTIME

Valores de ejemplo: nvidia

Valor predeterminado en Linux: nvidia

Valor predeterminado en Windows: n/a

Runtime que se va a usar para pasar los dispositivos GPU NVIDIA a los contenedores. Este parámetro no debe especificarse como una variable de entorno en una definición de tarea si ya se han especificado los requisitos de recursos de GPU. Para obtener más información, consulte Uso de GPU en Amazon ECS.

ECS_ENABLE_SPOT_INSTANCE_DRAINING

Valores de ejemplo: true

Valor predeterminado en Linux: false

Valor predeterminado en Windows: false

Si se debe habilitar el vaciado de instancia de Spot para la instancia de contenedor. Cuando el valor es true, si la instancia de contenedor recibe un aviso de interrupción de spot, el agente establece el estado de la instancia en DRAINING, que se cierra correctamente y reemplaza todas las tareas en ejecución en la instancia que forman parte de un servicio. Se recomienda que este valor se establezca en true cuando se utilice Instancias de spot. Para obtener más información, consulte Vaciado de instancias de contenedor.

ECS_LOG_ROLLOVER_TYPE

Valores de ejemplo: size y hourly

Valor predeterminado en Linux: hourly

Valor predeterminado en Windows: hourly

Determina si el archivo de registro del agente del contenedor se va a sustituir en función de la hora o del tamaño. De forma predeterminada, el archivo de registro del agente se sustituye cada hora.

ECS_LOG_OUTPUT_FORMAT

Valores de ejemplo: logfmt y json

Valor predeterminado en Linux: logfmt

Valor predeterminado en Windows: logfmt

Determina el formato de salida del registro. Cuando se utiliza el formato json, cada línea del registro es un mapa JSON estructurado.

ECS_LOG_MAX_FILE_SIZE_MB

Valores de ejemplo: 10

Valor predeterminado en Linux: 10

Valor predeterminado en Windows: 10

Cuando la variable ECS_LOG_ROLLOVER_TYPE se establece en size, determina el tamaño máximo (en MB) del archivo de registro antes de que se sustituya. Si el tipo de sustitución está establecido en hourly, esta variable no se tiene en cuenta.

ECS_LOG_MAX_ROLL_COUNT

Valores de ejemplo: 24

Valor predeterminado en Linux: 24

Valor predeterminado en Windows: 24

Determina el número de archivos de registro sustituidos que deben conservarse. Los archivos de registro más antiguos se eliminan cuando se alcanza este límite.

ECS_ENABLE_AWSLOGS_EXECUTIONROLE_OVERRIDE

Valores de ejemplo: true

Valor predeterminado en Linux: ver descripción a continuación

Valor predeterminado en Windows: false

Si se debe habilitar el controlador de registro de awslogs para autenticarse mediante el rol de IAM de ejecución de tareas. Este parámetro debe ser true para utilizar el controlador de registro de awslogs en una tarea que también tenga un rol de IAM de ejecución de tareas especificado. Cuando se utiliza la Amazon ECS optimizada para AMI con la versión 1.16.0-1 o posterior del paquete ecs-init, se utiliza el valor predeterminado de true Cuando se utilizan versiones anteriores del paquete ecs-init, se utiliza el valor predeterminado de false

ECS_PULL_DEPENDENT_CONTAINERS_UPFRONT

Valores de ejemplo: true | false

Valor predeterminado en Linux: false

Valor predeterminado en Windows: false

Si se extraen imágenes para contenedores con dependencias antes de que se haya cumplido la condición dependsOn.

Almacenamiento de la configuración de instancia de contenedor en Amazon S3

Amazon ECSLa configuración del agente de contenedor de se controla con las variables de entorno descritas en la sección anterior. Las variantes de Linux de Amazon ECS-optimized AMI buscan estas variables en /etc/ecs/ecs.config cuando se inicia el agente de contenedor y configura el agente como corresponda. Ciertas variables de entorno inocuas, como por ejemplo ECS_CLUSTER, se pueden transmitir a la instancia de contenedor durante el lanzamiento a través de datos de usuario de Amazon EC2 y se pueden escribir en este archivo sin ninguna consecuencia. No obstante, otro tipo de información confidencial, como las credenciales de AWS o la variable ECS_ENGINE_AUTH_DATA, no deben pasarse nunca a una instancia en los datos de usuario ni escribirse en /etc/ecs/ecs.config de manera que les permita aparecer en un archivo .bash_history

El almacenamiento de la información de configuración en un bucket privado en Amazon S3 y la concesión de acceso de solo lectura al rol de IAM de instancia de contenedor es una forma práctica y segura de permitir la configuración de instancia de contenedor en el momento del lanzamiento. Puede almacenar una copia del archivo ecs.config en un bucket privado. Puede utilizar los datos de usuario de Amazon EC2 para instalar la AWS CLI y copiar la información de configuración en /etc/ecs/ecs.config cuando se lance la instancia.

Para permitir acceso de solo lectura de Amazon S3 para su rol de instancia de contenedor

  1. Abra la consola de IAM en https://console.aws.amazon.com/iam/.

  2. En el panel de navegación, elija Roles y seleccione el rol de IAM que desea utilizar para sus instancias de contenedor. Este rol probablemente se denomina ecsInstanceRole. Para obtener más información, consulte Rol de IAM de la instancia de contenedor de Amazon ECS.

  3. En Managed Policies, seleccione Attach Policy.

  4. Para reducir los resultados de la política, en la página Attach Policy (Asociar política), en Filter (Filtro), escriba S3.

  5. Seleccione la casilla a la izquierda de la política AmazonS3ReadOnlyAccess y elija Attach Policy.

Para almacenar un archivo ecs.config en Amazon S3

  1. Cree un archivo ecs.config con variables de entorno válidas y valores de Amazon ECSConfiguración del agente de contenedor de con el siguiente formato. En este ejemplo, se configura la autenticación de registros privados. Para obtener más información, consulte Autenticación de registros privados para tareas.

    ECS_ENGINE_AUTH_TYPE=dockercfg ECS_ENGINE_AUTH_DATA={"https://index.docker.io/v1/":{"auth":"zq212MzEXAMPLE7o6T25Dk0i","email":"email@example.com"}}
  2. Para almacenar el archivo de configuración, cree un bucket privado en Amazon S3. Para obtener más información, consulte Crear un bucket en la Guía de introducción a Amazon Simple Storage Service.

  3. Cargue el archivo ecs.config en el bucket de S3. Para obtener más información, consulte Añadir un objeto a un bucket en la Guía de introducción a Amazon Simple Storage Service.

Para cargar un archivo ecs.config desde Amazon S3 en el momento del lanzamiento

  1. Complete los procedimientos anteriores de esta sección para permitir el acceso de solo lectura de Amazon S3 a las instancias de contenedor y almacenar un archivo ecs.config en un bucket privado de S3.

  2. Lance nuevas instancias de contenedor siguiendo los pasos que se indican en Lanzamiento de una instancia de contenedor de Amazon ECS. En Paso 7, utilice el siguiente script de ejemplo que instala la AWS CLI y copia el archivo de configuración en /etc/ecs/ecs.config.

    #!/bin/bash yum install -y aws-cli aws s3 cp s3://your_bucket_name/ecs.config /etc/ecs/ecs.config