❗ ❗ ❗ Tenga en cuenta que este proyecto ya no se mantiene activamente. Una mejor opción para las nuevas implementaciones de Fargate en AWS es la CLI de AWS Copilot, que tiene más funciones y es mantenida activamente por AWS. ❗ ❗ ❗
De forma predeterminada, fargate usa us-east-1 . La CLI acepta un parámetro --region y respetará la configuración del entorno AWS_REGION y AWS_DEFAULT_REGION . Tenga en cuenta que especificar una región donde todos los servicios requeridos no están disponibles generará un error.
Consulte la tabla de regiones para obtener un desglose de los servicios que están disponibles en cada región.
fargate se crea utilizando AWS SDK for Go, que busca credenciales en las siguientes ubicaciones:
Variables de entorno
Archivo de credenciales compartido
Perfil de instancia EC2
Para obtener más información, consulte Especificación de credenciales en la documentación de AWS SDK for Go.
Bandera | Por defecto | Descripción |
---|---|---|
--grupo | fargate | Nombre del clúster ECS |
--región | nosotros-este-1 | Región de AWS |
--sin color | FALSO | Desactivar salida de color |
--verboso | FALSO | Salida detallada |
Las tareas son ejecuciones únicas de su contenedor. Las instancias de su tarea se ejecutan hasta que las detiene manualmente a través de las API de AWS, la Consola de administración de AWS o fargate task stop
, o hasta que se interrumpen por cualquier motivo.
fargate task list
Listar grupos de tareas en ejecución
fargate task run <task-group-name> [--num <count>] [--cpu <cpu-units>] [--memory <MiB>]
[--image <docker-image>] [--env <key=value>]
[--task-role <task-role>] [--subnet-id <subnet-id>]
[--security-group-id <security-group-id>]
Ejecutar nuevas tareas
Debe especificar un nombre de grupo de tareas para poder interactuar con las tareas en comandos posteriores para ver registros, detener e inspeccionar tareas. Los nombres de los grupos de tareas no tienen que ser únicos: se pueden iniciar múltiples configuraciones de instancias de tareas con el mismo grupo de tareas.
Se pueden ejecutar varias instancias de una tarea especificando un número en el indicador --num. Si no se especifica ningún número, se ejecutará una única instancia de tarea.
Las configuraciones de CPU y memoria se pueden especificar opcionalmente como unidades de CPU y mebibytes respectivamente usando los indicadores --cpu y --memory. Cada 1024 unidades de CPU equivale a una sola vCPU. AWS Fargate solo admite determinadas combinaciones de configuraciones de CPU y memoria:
CPU (unidades CPU) | Memoria (MiB) |
---|---|
256 | 512, 1024 o 2048 |
512 | 1024 a 4096 en incrementos de 1GiB |
1024 | 2048 a 8192 en incrementos de 1GiB |
2048 | 4096 a 16384 en incrementos de 1GiB |
4096 | 8192 a 30720 en incrementos de 1GiB |
Si no se especifica, fargate iniciará tareas de tamaño mínimo con 0,25 vCPU (256 unidades de CPU) y 0,5 GB (512 MiB) de memoria.
La imagen del contenedor Docker que se usará en la tarea se puede especificar opcionalmente mediante la marca --image. Si no se especifica, fargate creará una nueva imagen de contenedor Docker desde el directorio de trabajo actual y la enviará a Amazon ECR en un repositorio denominado para el grupo de tareas. Si el directorio de trabajo actual es un repositorio git, la imagen del contenedor se etiquetará con la referencia corta de la confirmación HEAD. De lo contrario, se utilizará una marca de tiempo con el formato AAAAMMDDHHMMSS.
Las variables de entorno se pueden especificar mediante el indicador --env. Especifique --env con un parámetro clave=valor varias veces para agregar múltiples variables.
Opcionalmente, se pueden especificar grupos de seguridad para la tarea pasando el indicador --security-group-id con un ID de grupo de seguridad. Para agregar varios grupos de seguridad, pase --security-group-id con un ID de grupo de seguridad varias veces. Si se omite --security-group-id, se aplicará un grupo de seguridad permisivo a la tarea.
De forma predeterminada, la tarea se creará en la VPC predeterminada y se adjuntará a las subredes de la VPC predeterminada para cada zona de disponibilidad. Puede anular esto especificando subredes explícitas pasando el indicador --subnet-id con un ID de subred.
Opcionalmente, se puede especificar una función de tarea mediante el indicador --task-role proporcionando un ARN de función de IAM completo o el nombre de una función de IAM. Las tareas podrán asumir este rol.
fargate task info <task-group-name> [--task <task-id>]
Inspeccionar tareas
Muestra información ampliada para cada tarea en ejecución dentro de un grupo de tareas o para tareas específicas especificadas con el indicador --task. La información incluye variables de entorno que podrían diferir entre las tareas de un grupo de tareas. Para inspeccionar varias tareas específicas dentro de un grupo de tareas específico, tarea con un ID de tarea varias veces.
fargate task ps <task-group-name>
Listar tareas en ejecución
fargate task logs <task-group-name> [--follow] [--start <time-expression>] [--end <time-expression>]
[--filter <filter-expression>] [--task <task-id>]
Mostrar registros de tareas
Devuelve un segmento específico de registros de tareas o registros finales en tiempo real usando la opción --follow. Los registros tienen como prefijo el nombre de la secuencia de registros, que tiene el formato "fargate/<nombre-grupo-tareas>/<id-tarea>".
Seguir continuará ejecutándose y devolviendo registros hasta que Control-C lo interrumpa. Si se pasa --follow --end no se puede especificar.
Se pueden devolver registros para tareas específicas dentro de un grupo de tareas pasando un ID de tarea a través del indicador --task. Pase --task con un ID de tarea varias veces para recuperar registros de varias tareas específicas.
Se puede solicitar una ventana específica de registros pasando las opciones --start y --end con una expresión de tiempo. La expresión de tiempo puede ser una duración o una marca de tiempo:
Puede filtrar registros para un término específico pasando una expresión de filtro a través del indicador --filter. Pase un solo término para buscar ese término, pase varios términos para buscar mensajes de registro que incluyan todos los términos. Consulte la documentación de CloudWatch Logs para obtener más detalles.
fargate task stop <task-group-name> [--task <task-id>]
Detener tareas
Detiene todas las tareas dentro de un grupo de tareas si se ejecuta solo con un nombre de grupo de tareas o detiene tareas individuales si una o más tareas se pasan a través del indicador --task. Especifique --task con un parámetro de ID de tarea varias veces para detener varias tareas específicas.
Los servicios administran instancias de larga duración de sus contenedores que se ejecutan en AWS Fargate. Si su contenedor sale por algún motivo, el programador de servicios reiniciará sus contenedores y se asegurará de que su servicio tenga la cantidad deseada de tareas en ejecución. Los servicios se pueden utilizar junto con un equilibrador de carga para distribuir el tráfico entre las tareas de su servicio.
fargate service list
Listar servicios
fargate service create <service name> [--cpu <cpu units>] [--memory <MiB>] [--port <port-expression>]
[--lb <load-balancer-name>] [--rule <rule-expression>]
[--image <docker-image>] [--env <key=value>] [--num <count>]
[--task-role <task-role>] [--subnet-id <subnet-id>]
[--security-group-id <security-group-id>]
Crear un nuevo servicio
Las configuraciones de CPU y memoria se pueden especificar opcionalmente como unidades de CPU y mebibytes respectivamente usando los indicadores --cpu y --memory. Cada 1024 unidades de CPU equivale a una sola vCPU. AWS Fargate solo admite determinadas combinaciones de configuraciones de CPU y memoria:
CPU (unidades CPU) | Memoria (MiB) |
---|---|
256 | 512, 1024 o 2048 |
512 | 1024 a 4096 en incrementos de 1GiB |
1024 | 2048 a 8192 en incrementos de 1GiB |
2048 | 4096 a 16384 en incrementos de 1GiB |
4096 | 8192 a 30720 en incrementos de 1GiB |
Si no se especifica, fargate iniciará tareas de tamaño mínimo con 0,25 vCPU (256 unidades de CPU) y 0,5 GB (512 MiB) de memoria.
La imagen del contenedor Docker que se usará en el servicio se puede especificar opcionalmente mediante la marca --image. Si no se especifica, fargate creará una nueva imagen de contenedor Docker desde el directorio de trabajo actual y la enviará a Amazon ECR en un repositorio denominado para el grupo de tareas. Si el directorio de trabajo actual es un repositorio git, la imagen del contenedor se etiquetará con la referencia corta de la confirmación HEAD. De lo contrario, se utilizará una marca de tiempo con el formato AAAAMMDDHHMMSS.
Para utilizar el servicio con un equilibrador de carga, se debe especificar un puerto cuando se crea el servicio. Especifique un puerto pasando el indicador --port y una expresión de puerto de protocolo:número-puerto. Por ejemplo, si el servicio escucha en el puerto 80 y utiliza HTTP, especifique HTTP:80. Los protocolos válidos son HTTP, HTTPS y TCP. Sólo puede especificar un único puerto.
Opcionalmente, los servicios se pueden configurar para utilizar un equilibrador de carga. Para colocar un balanceador de carga delante de un servicio, pase el indicador --lb con el nombre de un balanceador de carga. Si especifica un equilibrador de carga, también debe especificar un puerto mediante el indicador --port al que el equilibrador de carga debe reenviar las solicitudes. Opcionalmente, los balanceadores de carga de aplicaciones se pueden configurar para enrutar el tráfico HTTP/HTTPS al servicio según una regla. Las reglas se configuran pasando una o más reglas especificando el indicador --rule junto con una expresión de regla. Las expresiones de regla tienen el formato TIPO=VALOR. El tipo puede ser RUTA o HOST. PATH coincide con la RUTA de la solicitud y HOST coincide con el nombre de host solicitado en la solicitud HTTP. Tanto el tipo PATH como el HOST pueden incluir hasta tres caracteres comodín: * para hacer coincidir varios caracteres y ? para que coincida con un solo carácter. Si se omiten las reglas, el servicio será la acción predeterminada del balanceador de carga.
Las variables de entorno se pueden especificar mediante el indicador --env. Especifique --env con un parámetro clave=valor varias veces para agregar múltiples variables.
Especifique el recuento deseado de tareas que el servicio debe mantener pasando el indicador --num con un número. Si omite este indicador, fargate configurará un servicio con una cantidad deseada de tareas de 1.
Opcionalmente, se pueden especificar grupos de seguridad para el servicio pasando el indicador --security-group-id con un ID de grupo de seguridad. Para agregar varios grupos de seguridad, pase --security-group-id con un ID de grupo de seguridad varias veces. Si se omite --security-group-id, se aplicará un grupo de seguridad permisivo al servicio.
De forma predeterminada, el servicio se creará en la VPC predeterminada y se conectará a las subredes de VPC predeterminadas para cada zona de disponibilidad. Puede anular esto especificando subredes explícitas pasando el indicador --subnet-id con un ID de subred.
Opcionalmente, se puede especificar una función de tarea mediante el indicador --task-role proporcionando un ARN de función de IAM completo o el nombre de una función de IAM. Las tareas ejecutadas por el servicio podrán asumir este rol.
fargate service deploy <service-name> [--image <docker-image>]
Implementar nueva imagen en el servicio
La imagen del contenedor Docker que se usará en el servicio se puede especificar opcionalmente mediante la marca --image. Si no se especifica, fargate creará una nueva imagen de contenedor Docker desde el directorio de trabajo actual y la enviará a Amazon ECR en un repositorio denominado para el grupo de tareas. Si el directorio de trabajo actual es un repositorio git, la imagen del contenedor se etiquetará con la referencia corta de la confirmación HEAD. De lo contrario, se utilizará una marca de tiempo con el formato AAAAMMDDHHMMSS.
fargate service info <service-name>
inspeccionar el servicio
Muestre información ampliada para un servicio, incluida la configuración del equilibrador de carga, implementaciones activas y variables de entorno.
Las implementaciones muestran versiones activas de su servicio que se están ejecutando. Se muestran varias implementaciones si un servicio está en transición debido a una implementación o actualización de la configuración, como CPU, memoria o variables de entorno.
fargate service logs <service-name> [--follow] [--start <time-expression>] [--end <time-expression>]
[--filter <filter-expression>] [--task <task-id>]
Mostrar registros de tareas en un servicio
Devuelva un segmento específico de registros de servicio o registros finales en tiempo real usando la opción --follow. Los registros tienen como prefijo el nombre de la secuencia de registro, que tiene el formato "fargate/<nombre-servicio>/<id-tarea>".
Seguir continuará ejecutándose y devolviendo registros hasta que Control-C lo interrumpa. Si se pasa --follow --end no se puede especificar.
Se pueden devolver registros para tareas específicas dentro de un servicio pasando un ID de tarea a través del indicador --task. Pase --task con un ID de tarea varias veces para recuperar registros de varias tareas específicas.
Se puede solicitar una ventana específica de registros pasando las opciones --start y --end con una expresión de tiempo. La expresión de tiempo puede ser una duración o una marca de tiempo:
Puede filtrar registros para un término específico pasando una expresión de filtro a través del indicador --filter. Pase un solo término para buscar ese término, pase varios términos para buscar mensajes de registro que incluyan todos los términos. Consulte la documentación de CloudWatch Logs para obtener más detalles.
fargate service ps <service-name>
Listar tareas en ejecución para un servicio
fargate service scale <service-name> <scale-expression>
Escalar el número de tareas en un servicio
Cambia el número de tareas deseadas que se ejecutarán en un servicio según la expresión de escala dada. Una expresión de escala puede ser un número absoluto o un delta especificado con un signo como +5 o -2.
fargate service env set <service-name> --env <key=value>
Establecer variables de entorno
Se debe especificar al menos una variable de entorno mediante el indicador --env. Especifique --env con un parámetro clave=valor varias veces para agregar múltiples variables.
fargate service env unset <service-name> --key <key-name>
Variables de entorno no configuradas
Desconfigura la variable de entorno especificada mediante el indicador --key. Especifique --key con un nombre de clave varias veces para desarmar múltiples variables.
fargate service env list <service-name>
Mostrar variables de entorno
fargate service update <service-name> [--cpu <cpu-units>] [--memory <MiB>]
Actualizar la configuración del servicio
Las configuraciones de CPU y memoria se especifican como unidades de CPU y mebibytes respectivamente usando los indicadores --cpu y --memory. Cada 1024 unidades de CPU equivale a una sola vCPU. AWS Fargate solo admite determinadas combinaciones de configuraciones de CPU y memoria:
CPU (unidades CPU) | Memoria (MiB) |
---|---|
256 | 512, 1024 o 2048 |
512 | 1024 a 4096 en incrementos de 1GiB |
1024 | 2048 a 8192 en incrementos de 1GiB |
2048 | 4096 a 16384 en incrementos de 1GiB |
4096 | 8192 a 30720 en incrementos de 1GiB |
Se debe especificar al menos uno de --cpu o --memory.
fargate service restart <service-name>
Reiniciar servicio
Crea un nuevo conjunto de tareas para el servicio y detiene las tareas anteriores. Esto es útil si su servicio necesita recargar datos almacenados en caché desde una fuente externa, por ejemplo.
fargate service destroy <service-name>
servicio de destrucción
Para destruir un servicio, primero se debe escalar a 0 tareas en ejecución.
Los balanceadores de carga distribuyen el tráfico entrante entre las tareas dentro de un servicio para aplicaciones HTTP/HTTPS y TCP. Los balanceadores de carga HTTP/HTTPS pueden enrutar a múltiples servicios según las reglas que especifique al crear un nuevo servicio.
fargate lb list
Listar balanceadores de carga
fargate lb create <load-balancer-name> --port <port-expression> [--certificate <certificate-name>]
[--subnet-id <subnet-id>] [--security-group-id <security-group-id>]
[--scheme <lb-scheme>]
Crear un equilibrador de carga
Se debe especificar al menos un puerto para el escucha del balanceador de carga mediante el indicador --port y una expresión de puerto de protocolo:número-de-puerto. Por ejemplo, si desea que un equilibrador de carga HTTP escuche en el puerto 80, deberá especificar HTTP:80. Los protocolos válidos son HTTP, HTTPS y TCP. Puede especificar varios oyentes pasando el indicador --port con una expresión de puerto varias veces. No puede combinar puertos TCP con puertos HTTP/HTTPS en un único equilibrador de carga.
Opcionalmente, puede incluir certificados para proteger los puertos HTTPS pasando el indicador --certificate junto con un nombre de certificado. Esta opción se puede especificar varias veces para agregar certificados adicionales a un único equilibrador de carga que utiliza la identificación del nombre del servicio (SNI) para seleccionar el certificado apropiado para la solicitud.
De forma predeterminada, el equilibrador de carga se creará en la VPC predeterminada y se conectará a las subredes de la VPC predeterminada para cada zona de disponibilidad. Puede anular esto especificando subredes explícitas pasando el indicador --subnet-id con un ID de subred. Los balanceadores de carga HTTP/HTTPS requieren al menos dos subredes conectadas, mientras que un balanceador de carga TCP requiere solo una. Solo puede especificar una única subred de cada zona de disponibilidad.
Opcionalmente, se pueden especificar grupos de seguridad para balanceadores de carga HTTP/HTTPS pasando el indicador --security-group-id con un ID de grupo de seguridad. Para agregar varios grupos de seguridad, pase --security-group-id con un ID de grupo de seguridad varias veces. Si se omite --security-group-id, se aplicará un grupo de seguridad permisivo al balanceador de carga.
También puede elegir el tipo de esquema para el balanceador de carga mediante el indicador --scheme. De forma predeterminada, los balanceadores de carga están orientados a Internet.
fargate lb destroy <load-balancer-name>
Destruir el equilibrador de carga
fargate lb alias <load-balancer-name> <hostname>
Crear un registro de alias de equilibrador de carga
Cree un registro de alias para el balanceador de carga para dominios alojados en Amazon Route 53 y dentro de la misma cuenta de AWS. Si utiliza otro proveedor de DNS o aloja sus dominios en una cuenta diferente, deberá crear este registro manualmente.
fargate lb info <load-balancer-name>
Inspeccionar el equilibrador de carga
Devuelve información ampliada sobre un equilibrador de carga, incluida una lista de escuchas, reglas y certificados que utiliza el equilibrador de carga.
Los certificados son certificados TLS emitidos o importados en AWS Certificate Manager para su uso para proteger el tráfico entre los balanceadores de carga y los usuarios finales. ACM proporciona certificados TLS de forma gratuita para su uso dentro de los recursos de AWS.
fargate certificate list
Listar certificados
fargate certificate import <domain-name> --certificate <filename> --key <filename> [--chain <filename>]
Importar un certificado
Cargue un certificado desde un archivo de certificado, un archivo de clave privada y, opcionalmente, un archivo de cadena de certificados intermedio. Los archivos deben estar codificados con PEM y la clave privada no debe estar cifrada ni protegida mediante una frase de contraseña. Consulte la documentación de AWS Certificate Manager para obtener más detalles.
fargate certificate request <domain-name> [--alias <domain-name>]
Solicitar un certificado
Los certificados pueden ser para un nombre de dominio completo (por ejemplo, www.example.com) o un nombre de dominio comodín (por ejemplo, *.example.com). Puede agregar alias a un certificado especificando nombres de dominio adicionales mediante el indicador --alias. Para agregar varios alias, pase --alias varias veces. De forma predeterminada, AWS Certificate Manager tiene un límite de 10 nombres de dominio por certificado, pero el soporte de AWS puede aumentar este límite.
fargate certificate info <domain-name>
inspeccionar certificado
Mostrar información ampliada de un certificado. Incluye cada validación del certificado que muestra los registros DNS que deben crearse para validar la propiedad del dominio.
fargate certificate validate <domain-name>
Validar la propiedad del certificado
fargate creará automáticamente un registro de validación de DNS para verificar la propiedad de cualquier nombre de dominio alojado en Amazon Route 53. Si su certificado tiene alias, se intentará crear un registro de validación por alias. Cualquier registro cuyos dominios estén alojados en otros proveedores de alojamiento DNS o en otras cuentas DNS y no puedan validarse automáticamente tendrá los registros necesarios. Estos registros también están disponibles en fargate certificate info <domain-name>
.
AWS Certificate Manager puede tardar hasta varias horas después de que se crean los registros DNS para completar la validación y emitir el certificado.
fargate certificate destroy <domain-name>
Destruir certificado
Para destruir un certificado, no debe estar siendo utilizado por ningún balanceador de carga ni por ningún otro recurso de AWS.