Creación de una definición de tareas con la consola
Cree las definiciones de tareas con la consola de Amazon ECS. Para simplificar al máximo el proceso de creación de definición de tareas, la consola cuenta con selecciones predeterminadas para muchas de las opciones que describimos a continuación. También hay paneles de ayuda disponibles para la mayoría de las secciones de la consola, que proporcionan más contexto.
Para crear una definición de tarea, puede recorrer la consola o editar un archivo JSON.
Validación de JSON
El editor JSON de la consola de Amazon ECS valida lo siguiente en el archivo JSON:
-
El archivo es un archivo JSON válido
-
El archivo no contiene claves extrañas
-
El archivo contiene el parámetro
familyName
-
Hay por lo menos una entrada en
containerDefinitions
Pilas de AWS CloudFormation
El siguiente comportamiento se aplica a las definiciones de tareas creadas en la nueva consola antes del 12 de enero de 2023.
Al crear una definición de tareas, la consola de Amazon ECS crea automáticamente una pila de CloudFormation cuyo nombre comienza por “ECS-Console-V2-TaskDefinition-”. Si utilizó la AWS CLI o el SDK para anular el registro de la definición de tareas, debe eliminar manualmente la pila de la definición de tareas. Para obtener más información, consulte Eliminación de una pila en la Guía del usuario de AWS CloudFormation.
Para las definiciones de tareas creadas después del 12 de enero de 2023, no se creará automáticamente una pila de CloudFormation.
- Amazon ECS console
-
Abra la consola en https://console.aws.amazon.com/ecs/v2
. -
En el panel de navegación, elija Task definitions (Definiciones de tareas).
-
Elija Create new task definition (Crear nueva definición de tarea) y Create new task definition (Crear nueva definición de tarea).
-
Para Task definition family (Familia de definiciones de tareas), especifique un nombre único para la definición de tareas.
-
Para definir a cada contenedor en su definición de tareas, siga los pasos que se describen a continuación.
-
En Name (Nombre), escriba un nombre para el contenedor.
-
En Image URI (URI de imagen), ingrese la imagen que se va a usar para iniciar un contenedor. Las imágenes del registro de Amazon ECR Public Gallery se pueden especificar únicamente mediante el uso del nombre de registro público de Amazon ECR. Por ejemplo, si se especifica
public.ecr.aws/ecs/amazon-ecs-agent:latest
, se utiliza el contenedor de Amazon Linux alojado en Amazon ECR Public Gallery. Para todos los demás repositorios, especifique el repositorio utilizando en los formatosrepository-url/image:tag
orepository-url/image@digest
. -
Para Essential container (Contenedor esencial), si la definición de tarea tiene dos o más contenedores definidos, puede especificar si el contenedor debe considerarse esencial. Si un contenedor está marcado como essential (esencial), si ese contenedor se detiene, la tarea se detiene. Cada definición de tarea debe contener al menos un contenedor esencial.
-
Las asignaciones de puertos permiten a los contenedores acceder a puertos en el host para enviar o recibir tráfico. En Port mappings (Asignaciones de puertos), realice una de las siguientes operaciones:
-
Cuando usa el modo de red awsvpc, en Container port (Puerto del contenedor) y Protocol (Protocolo), elija la asignación de puertos que se va a usar para el contenedor.
-
Cuando usa el modo de red bridge (puente), en Container port (Puerto del contenedor) y Protocol (Protocolo), elija la asignación de puertos que se va a usar para el contenedor. Seleccione el modo de red bridge (puente) en la página siguiente. Después de seleccionarlo, elija Previous (Anterior), y luego para Host port (Puerto del host), especifique el número de puerto en la instancia de contenedor que reservar para el contenedor.
Elija Add more port mappings (Agregar más asignaciones de puertos) para especificar asignaciones de puertos de contenedores adicionales.
-
-
Expanda la sección Environment variables (Variables de entorno) para especificar variables de entorno que se van a inyectar en el contenedor. Puede especificar variables de entorno individualmente mediante pares clave-valor o de forma masiva especificando un archivo de variable de entorno alojado en un bucket de Amazon S3. Para obtener información sobre cómo dar formato a un archivo de variable de entorno, consulte Transferencia de variables de entorno a un contenedor.
-
(Opcional) Para configurar los comandos que determinan si un contenedor está en buen estado, expanda HealthCheck (Comprobación de estado) y, a continuación, configure los siguientes elementos:
-
En Command (Comando), introduzca una lista de comandos separados por comas. Puede comenzar los comandos con
CMD
para ejecutar los argumentos del comando directamente, o porCMD-SHELL
para ejecutar el comando con el intérprete de comandos predeterminado del contenedor. Si no se especifica ninguno, se utilizaCMD
. -
En Interval (Intervalo), introduzca el número de segundos entre cada comprobación de estado. Los valores válidos se encuentran entre 5 y 30.
-
En Timeout (Tiempo de espera), ingrese el periodo (en segundos) que hay que esperar para que una comprobación de estado se realice correctamente antes de que se considere un error. Los valores válidos se encuentran entre 2 y 60.
-
En Start period (Periodo de inicio), introduzca el periodo de tiempo (en segundos) que hay que esperar para que un contenedor se inicie antes de que se ejecuten los comandos de comprobación de estado. Los valores válidos se encuentran entre 0 y 300.
-
En Retries (Reintentos), introduzca el número de veces que desea volver a intentar los comandos de comprobación de estado cuando se produzca un error. Los valores válidos se encuentran entre 1 y 10.
-
-
(Opcional) Para anular algunos de los valores de un archivo Dockerfile, expanda Configuración de Docker y, a continuación, ajuste los siguientes elementos:
-
En Comando, ingrese un comando ejecutable para un contenedor.
Este parámetro se asigna a
Cmd
en la sección Crear un contenedorde la API remota de Docker y con la opción COMMAND
endocker run
. Esto anulará la instrucciónCMD
en un Dockerfile. -
En Punto de entrada, ingrese el ENTRYPOINT de Docker que se transfiere al contenedor.
Este parámetro se asigna a
Entrypoint
en la sección Crear un contenedorde la API remota de Docker y con la opción --entrypoint
endocker run
. Esto anulará la instrucciónENTRYPOINT
en un Dockerfile. -
En Directorio de trabajo, ingrese el directorio en el que el contenedor ejecutará cualquier punto de entrada e instrucción de comando proporcionados.
Este parámetro se asigna a
WorkingDir
en la sección Crear un contenedorde la API remota de Docker y con la opción --workdir
endocker run
. Esto anulará la instrucciónWORKDIR
en un Dockerfile.
-
-
(Opcional) Elija Add more containers (Agregar más contenedores) para agregar contenedores adicionales a la definición de tareas. Elija Next (Próximo) una vez definidos todos los contenedores.
-
-
En App environment (Entorno de aplicaciones), elija el entorno de aplicaciones. El valor predeterminado de la consola es AWS Fargate (sin servidor). Amazon ECS realiza la validación utilizando este valor para garantizar que los parámetros de definición de tareas sean válidos para el tipo de infraestructura.
-
Para Operating system/Architecture (Arquitectura y sistema operativo), elija el sistema operativo y la arquitectura de CPU para la tarea.
Para ejecutar la tarea en una arquitectura ARM de 64 bits, seleccione Linux/ARM64. Para obtener más información, consulte Plataforma de tiempo de ejecución.
Para ejecutar sus tareas de AWS Fargate (sin servidor) en contenedores de Windows, elija un sistema operativo compatible con Windows. Para obtener más información, consulte Sistemas operativos de tarea.
-
En Task size (Tamaño de tarea), elija los valores de CPU y memoria que desea reservar para la tarea. El valor de CPU se especifica como vCPU y la memoria se especifica como GB.
Para las tareas alojadas en Fargate, en la siguiente tabla, se muestran las combinaciones de CPU y memoria válidas.
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
Para las tareas alojadas en Amazon EC2, los valores de admitidos para CPU de tareas están entre 128 unidades de CPU (0,125 vCPU) y 10240 unidades de CPU (10 vCPU).
nota Los parámetros de CPU y memoria de nivel de tarea se omiten para los contenedores de Windows.
-
Expanda la sección Container size (Tamaño del contenedor) para ingresar la cantidad (en GB) de memoria para presentar en el contenedor y el número de unidades de CPU que el agente de contenedor de Amazon ECS reservará para el contenedor.
Para cada contenedor, elija Agregar y, a continuación, siga los pasos descritos a continuación:
-
En Contenedor, elija el contenedor.
-
En CPU, ingrese el número de unidades de CPU que el agente de contenedor de Amazon ECS reserva para el contenedor.
La cantidad total de CPU reservado para todos los contenedores dentro de una tarea debe ser menor que el valor CPU de la tarea.
Puede multiplicar el valor especificado por 1024 para determinar el número de unidades de CPU disponibles por tipo de instancia de Amazon EC2. Por ejemplo, el valor de una nanoinstancia t3 es 2048. Para obtener más información, consulte Instancias de Amazon EC2
. -
En Memoria, ingrese la cantidad de memoria, en GB, para presentarla al contenedor.
Si su contenedor intenta superar la memoria especificada, se cancela el contenedor. La cantidad total de memoria reservada para todos los contenedores dentro de una tarea debe ser menor que el valor Memory (Memoria) de la tarea, si se especifica.
-
En GPU, ingrese el número de unidades de GPU para la instancia de contenedor. Una instancia de Amazon EC2 compatible con GPU tiene 1 unidad de GPU por cada GPU. Para obtener más información, consulte Uso de GPU en Amazon ECS.
-
-
(Opcional) Expanda la sección Task roles, network mode (Funciones de tareas, modo de red) para especificar lo siguiente:
-
En Task role (Rol de la tarea), elija el rol de IAM para asignar a la tarea. Un rol de IAM de tarea proporciona permisos para los contenedores de una tarea para llamar a la API de AWS.
-
Para Network mode (Modo de red), elija el modo de red que desea utilizar. El valor predeterminado es el modo awsvpc. Para obtener más información, consulte redes de tareas de Amazon ECS.
Si elige bridge (puente) para el modo de red, elija Previous (Anterior), y luego en Port mappings (Asignaciones de puertos), para Host port (Puerto del host), ingrese el número de puerto en la instancia de contenedor para reservar para el contenedor.
-
-
(Opcional) La sección Storage (Almacenamiento) se utiliza para ampliar la cantidad de almacenamiento efímero para las tareas alojadas en Fargate, así como para agregar una configuración de volumen de datos para la tarea.
-
Para ampliar el almacenamiento efímero disponible más allá del valor predeterminado de 20 GiB para las tareas de Fargate, en Amount (Cantidad), ingrese un valor de hasta 200 GiB.
-
-
(Opcional) Elija Add volume (Agregar volumen) para agregar una configuración de volumen de datos para la definición de tarea.
Tipo de volumen Pasos Montajes vinculados
-
Para Volume type (Tipo de volumen), elija Bind mount (Montaje vinculado).
-
En Volume name (Nombre del volumen), ingrese un nombre para el volumen de datos. El nombre del volumen de datos se utiliza al crear un punto de montaje de contenedor.
-
Elija Add mount point (Agregar punto de montaje) y, a continuación, configure lo siguiente:
-
Para Container (Contenedor), elija el contenedor para el punto de montaje.
-
Para Source volume (Volumen de origen), elija el volumen de datos que desea montar en el contenedor.
-
En Container path (Ruta del contenedor), ingrese la ruta del contenedor en el cual montar el volumen.
-
En Read only (Solo lectura), elija si desea que el volumen sea de solo lectura.
-
Para agregar puntos de montaje adicionales, utilice Add mount point (Agregar punto de montaje).
EFS -
Para el Volume type (Tipo de volumen), elija EFS.
-
En Volume name (Nombre del volumen), ingrese un nombre para el volumen de datos.
-
En File system ID (ID del sistema de archivos), seleccione el ID del sistema de archivos de Amazon EFS.
-
(Opcional) En Root directory (Directorio raíz), ingrese el directorio dentro del archivo de Amazon EFS que se va a montar como directorio raíz dentro del host. Si se omite este parámetro, se utiliza la raíz del volumen de Amazon EFS.
Si piensa utilizar un punto de acceso de EFS, deje este campo en blanco.
-
(Opcional) En Access point (Punto de acceso), elija el ID del punto de acceso que desee utilizar.
-
(Opcional) Para cifrar los datos entre el sistema de archivos Amazon EFS y el host de Amazon ECS, o para utilizar la función de ejecución de tareas al montar el volumen, elija Advanced configurations (Configuraciones avanzadas) y, a continuación, configure lo siguiente:
-
Para cifrar los datos entre el sistema de archivos de Amazon EFS y el host de Amazon ECS, seleccione Transit encryption (Encriptación de tránsito) y, a continuación, introduzca el puerto que se utilizará al enviar datos cifrados entre el host de Amazon ECS y el servidor de Amazon EFS. Si no se especifica un puerto de cifrado en tránsito, se emplea la estrategia de selección de puertos que utiliza el ayudante de montaje de Amazon EFS. Para obtener más información, consulte Ayudante de montaje de EFS en la Guía del usuario de Amazon Elastic File System.
-
Para utilizar el rol de IAM de tarea de Amazon ECS definido en una definición de tarea al montar el sistema de archivos de Amazon EFS, seleccione IAM authorization (Autorización de IAM).
-
-
Elija Add mount point (Agregar punto de montaje) y, a continuación, configure lo siguiente:
-
Para Container (Contenedor), elija el contenedor para el punto de montaje.
-
Para Source volume (Volumen de origen), elija el volumen de datos que desea montar en el contenedor.
-
En Container path (Ruta del contenedor), ingrese la ruta del contenedor en el cual montar el volumen.
-
En Read only (Solo lectura), elija si desea que el volumen sea de solo lectura.
-
Para agregar puntos de montaje adicionales, utilice Add mount point (Agregar punto de montaje).
Docker
-
En Volume Type (Tipo de volumen), elija Docker volume (Volumen de Docker).
-
En Volume name (Nombre del volumen), ingrese un nombre para el volumen de datos. El nombre del volumen de datos se utiliza al crear un punto de montaje de contenedor.
-
En Driver (Controlador), introduzca la configuración del volumen de Docker. Los contenedores de Windows solo admiten el uso del controlador local. Para utilizar montajes vinculados, especifique un host.
-
En Scope (Alcance), elija el ciclo de vida del volumen.
-
Para que el ciclo de vida dure cuando la tarea se inicie y se detenga, elija Task (Tarea).
-
Para que el volumen persista después de que se detenga la tarea, elija Shared (Compartido).
-
-
Elija Add mount point (Agregar punto de montaje) y, a continuación, configure lo siguiente:
-
Para Container (Contenedor), elija el contenedor para el punto de montaje.
-
Para Source volume (Volumen de origen), elija el volumen de datos que desea montar en el contenedor.
-
En Container path (Ruta del contenedor), ingrese la ruta del contenedor en el cual montar el volumen.
-
En Read only (Solo lectura), elija si desea que el volumen sea de solo lectura.
-
Para agregar puntos de montaje adicionales, utilice Add mount point (Agregar punto de montaje).
FSx for Windows File Server -
En Tipo de volumen, seleccione FSx for Windows File Server.
-
En ID del sistema de archivos, elija el ID del sistema de archivos de FSx for Windows File Server.
-
En Directorio raíz, ingrese el directorio dentro del sistema de archivos de FSx for Windows File Server que se va a montar como directorio raíz dentro del host.
-
En Parámetro de credenciales, elija cómo se almacenarán las credenciales.
-
Para usar Secrets Manager, ingrese el nombre de recurso de Amazon (ARN) de un secreto de Secrets Manager.
-
Para usar Systems Manager, ingrese el nombre de recurso de Amazon (ARN) de un parámetro de Systems Manager.
-
-
En Dominio, ingrese el nombre del dominio completamente calificado que aloja un Microsoft AD (Active Directory) administrado por AWS Directory Service o un AD de EC2 con alojamiento propio.
-
Elija Add mount point (Agregar punto de montaje) y, a continuación, configure lo siguiente:
-
Para Container (Contenedor), elija el contenedor para el punto de montaje.
-
Para Source volume (Volumen de origen), elija el volumen de datos que desea montar en el contenedor.
-
En Container path (Ruta del contenedor), ingrese la ruta del contenedor en el cual montar el volumen.
-
En Read only (Solo lectura), elija si desea que el volumen sea de solo lectura.
-
Para agregar puntos de montaje adicionales, utilice Add mount point (Agregar punto de montaje).
-
-
(Opcional) Seleccione la opción Use log collection (Utilizar colección de registros) para especificar una configuración de registro. Para cada controlador de registro disponible, hay opciones de controladores de registro que se deben especificar. La opción predeterminada envía registros de contenedor a CloudWatch Logs. Las demás opciones del controlador de registro se configuran mediante AWS FireLens. Para obtener más información, consulte Enrutamiento de registros personalizados.
A continuación, se describe con más detalle cada uno de los destinos de registro de contenedor.
-
Amazon CloudWatch: configure la tarea para enviar registros de contenedor a CloudWatch Logs. Se proporcionan las opciones de controlador de registro predeterminadas que crean un grupo de registros de CloudWatch en su nombre. Para especificar otro nombre de grupo de registros, cambie los valores de las opciones del controlador.
-
Amazon Kinesis Data Firehose: configure la tarea para enviar registros de contenedor a Kinesis Data Firehose. Se proporcionan las opciones de controlador de registro predeterminadas que envían registros a un flujo de entrega de Kinesis Data Firehose. Para especificar un nombre de flujo de entrega distinto, cambie los valores de las opciones del controlador.
-
Amazon Kinesis Data Streams: configure la tarea para enviar registros de contenedores a Kinesis Data Streams. Se proporcionan las opciones de controlador de registro predeterminadas que envían registros a un flujo de Kinesis Data Streams. Para especificar otro nombre de transmisión, cambie los valores de las opciones del controlador.
-
Amazon OpenSearch Service: configure la tarea para enviar registros de contenedor a un dominio de OpenSearch Service. Se deben proporcionar las opciones del controlador de registros. Para obtener más información, consulte Reenvío de registros a un dominio de Amazon OpenSearch Service.
-
Amazon S3: configure la tarea para enviar registros de contenedor a un bucket de Amazon S3. Se proporcionan las opciones de controlador de registro predeterminadas, pero debe especificar un nombre de bucket de Amazon S3 válido.
-
-
(Opcional) Seleccione la opción Use trace collection (Utilizar colección de seguimiento) para configurar las tareas para enrutar los datos de seguimiento de la aplicación a AWS X-Ray. Cuando se selecciona esta opción, Amazon ECS crea un sidecar de contenedor Distro for OpenTelemetry de AWS que está preconfigurado para enviar los datos de seguimiento. Para obtener más información, consulte Recopilar datos de rastreo de aplicaciones.
importante Al usar la recopilación de seguimiento, la definición de tarea requiere un rol de IAM de tarea con los permisos requeridos. Para obtener más información, consulte Permisos de IAM necesarios para la integración AWS Distro for OpenTelemetry con AWS X-Ray.
-
(Opcional) Seleccione la opción Use metric collection (Utilizar colección de métricas) para recopilar y enviar métricas de sus tareas a Amazon CloudWatch o Amazon Managed Service for Prometheus. Cuando se selecciona esta opción, Amazon ECS crea un sidecar de contenedor de Distro for OpenTelemetry de AWS que está preconfigurado para enviar las métricas de la aplicación. Para obtener más información, consulte Recopilación de métricas de aplicaciones.
-
Cuando se selecciona Amazon CloudWatch, las métricas de aplicaciones personalizadas se enrutan a CloudWatch como métricas personalizadas. Para obtener más información, consulte Exportación de métricas de aplicaciones a Amazon CloudWatch.
importante Al exportar métricas de aplicaciones a Amazon CloudWatch, la definición de tarea requiere un rol de IAM de tarea con los permisos necesarios. Para obtener más información, consulte Permisos de IAM necesarios para la integración de AWS Distro for OpenTelemetry Amazon CloudWatch.
-
Cuando se selecciona Amazon Managed Service for Prometheus (Prometheus libraries instrumentation) (Amazon Managed Service for Prometheus [instrumentación de bibliotecas Prometheus]), las métricas de CPU, memoria, red y almacenamiento de nivel de tarea y las métricas de aplicaciones personalizadas se enrutan a Amazon Managed Service for Prometheus. En Workspace remote write endpoint (Punto de conexión de escritura remota del espacio de trabajo), ingrese la URL de punto de conexión de escritura remota para su espacio de trabajo de Prometheus. Para Scraping target (Objetivo de extracción), ingrese el host que el puerto del colector de AWS Distro for OpenTelemetry puede usar para extraer datos de métricas. Para obtener más información, consulte Exportación de métricas de aplicaciones a Amazon Managed Service for Prometheus.
importante Al exportar métricas de aplicaciones a Amazon Managed Service for Prometheus, la definición de tarea requiere un rol de IAM de tarea con los permisos necesarios. Para obtener más información, consulte Permisos de IAM necesarios para la integración de AWS Distro for OpenTelemetry con Amazon Managed Service for Prometheus.
-
Cuando selecciona Amazon Managed Service for Prometheus (instrumentación OpenTelemetry) (Amazon Managed Service for Prometheus [instrumentación OpenTelemetry]), las métricas de CPU, memoria, red y almacenamiento de nivel de tarea y las métricas de aplicaciones personalizadas se enrutan a Amazon Managed Service for Prometheus. En Workspace remote write endpoint (Punto de conexión de escritura remota del espacio de trabajo), ingrese la URL de punto de conexión de escritura remota para su espacio de trabajo de Prometheus. Para obtener más información, consulte Exportación de métricas de aplicaciones a Amazon Managed Service for Prometheus.
importante Al exportar métricas de aplicaciones a Amazon Managed Service for Prometheus, la definición de tarea requiere un rol de IAM de tarea con los permisos necesarios. Para obtener más información, consulte Permisos de IAM necesarios para la integración de AWS Distro for OpenTelemetry con Amazon Managed Service for Prometheus.
-
-
(Opcional) Expanda la sección Tags (Etiquetas) para agregar etiquetas, como pares clave-valor, a la definición de tarea.
Añada o elimine una etiqueta.
-
[Agregar una etiqueta] Seleccione Add tag (Agregar etiqueta), y, a continuación, haga lo siguiente:
-
En Key (Clave), escriba el nombre de la clave.
-
En Value (Valor), escriba el valor de la clave.
-
-
[Eliminar una etiqueta] Junto a la etiqueta, elija Remove tag (Quitar etiqueta).
-
-
Elija Next (Próximo) para revisar la definición de tareas.
-
En la página Review and create (Revisar y crear), revise cada sección de definición de tarea. Seleccione Edit (Editar) para realizar cambios. Una vez finalizada la definición de la tarea, elija Create (Crear) para registrar la definición de tareas.
- Amazon ECS console JSON editor
-
Abra la consola en https://console.aws.amazon.com/ecs/v2
. -
En el panel de navegación, elija Task Definitions (Definiciones de tareas).
-
Elija Create new task definition (Crear nueva definición de tarea) y Create new task definition with JSON (Crear nueva definición de tarea con JSON).
-
En el cuadro del editor de JSON, edite su archivo JSON,
El JSON debe pasar las comprobaciones de validación especificadas en Validación de JSON.
-
Seleccione Create (Crear).