ECSEjemplos de Amazon que utilizan AWS CLI - AWS SDKEjemplos de código

Hay más AWS SDK ejemplos disponibles en el GitHub repositorio de AWS Doc SDK Examples.

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.

ECSEjemplos de Amazon que utilizan AWS CLI

En los siguientes ejemplos de código, se muestra cómo realizar acciones e implementar situaciones comunes AWS Command Line Interface con AmazonECS.

Las acciones son extractos de código de programas más grandes y deben ejecutarse en contexto. Mientras las acciones muestran cómo llamar a las funciones de servicio individuales, es posible ver las acciones en contexto en los escenarios relacionados.

Cada ejemplo incluye un enlace al código fuente completo, donde puede encontrar instrucciones sobre cómo configurar y ejecutar el código en su contexto.

Acciones

En el siguiente ejemplo de código se muestra cómo usar create-capacity-provider.

AWS CLI

Para crear un proveedor de capacidad

El siguiente create-capacity-provider ejemplo crea un proveedor de capacidad que usa un grupo de Auto Scaling denominado My ASG y que tiene habilitada la protección de escalado administrado y terminación administrada. Esta configuración se usa para el escalado automático de ECS clústeres de Amazon.

aws ecs create-capacity-provider \ --name "MyCapacityProvider" \ --auto-scaling-group-provider "autoScalingGroupArn=arn:aws:autoscaling:us-east-1:123456789012:autoScalingGroup:57ffcb94-11f0-4d6d-bf60-3bac5EXAMPLE:autoScalingGroupName/MyASG,managedScaling={status=ENABLED,targetCapacity=100},managedTerminationProtection=ENABLED"

Salida:

{ "capacityProvider": { "capacityProviderArn": "arn:aws:ecs:us-east-1:123456789012:capacity-provider/MyCapacityProvider", "name": "MyCapacityProvider", "status": "ACTIVE", "autoScalingGroupProvider": { "autoScalingGroupArn": "arn:aws:autoscaling:us-east-1:132456789012:autoScalingGroup:57ffcb94-11f0-4d6d-bf60-3bac5EXAMPLE:autoScalingGroupName/MyASG", "managedScaling": { "status": "ENABLED", "targetCapacity": 100, "minimumScalingStepSize": 1, "maximumScalingStepSize": 10000, "instanceWarmupPeriod": 300 }, "managedTerminationProtection": "ENABLED" }, "tags": [] }

Para obtener más información, consulta el escalado automático de ECS clústeres de Amazon en la Guía para ECS desarrolladores de Amazon.

En el siguiente ejemplo de código se muestra cómo usar create-cluster.

AWS CLI

Ejemplo 1: creación de un clúster nuevo

En el siguiente ejemplo de create-cluster se crea un clúster.

aws ecs create-cluster \ --cluster-name MyCluster

Salida:

{ "cluster": { "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster", "clusterName": "MyCluster", "status": "ACTIVE", "registeredContainerInstancesCount": 0, "pendingTasksCount": 0, "runningTasksCount": 0, "activeServicesCount": 0, "statistics": [], "tags": [] } }

Para obtener más información, consulte Creación de un clúster en la Guía para ECS desarrolladores de Amazon.

Ejemplo 2: Creación de un clúster nuevo con proveedores de capacidad

En el siguiente ejemplo de create-cluster se crea un clúster y se le asocian dos proveedores de capacidad existentes. El comando create-capacity-provider se utiliza para crear un proveedor de capacidad. La especificación de una estrategia predeterminada de proveedor de capacidad es opcional, pero se recomienda. En este ejemplo, creamos un clúster denominado MyCluster y le asociamos los proveedores de capacidad MyCapacityProvider1 y MyCapacityProvider2. Se especifica una estrategia predeterminada de proveedor de capacidad que distribuye las tareas de manera uniforme entre ambos proveedores de capacidad.

aws ecs create-cluster --cluster-name MyCluster --capacity providers 1 2 — default-capacity-provider-strategy capacityProvider = 1, MyCapacityProvider peso=1 = MyCapacityProvider 2, peso=1 MyCapacityProvider capacityProvider MyCapacityProvider

Salida:

{ "cluster": { "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster", "clusterName": "MyCluster", "status": "PROVISIONING", "registeredContainerInstancesCount": 0, "pendingTasksCount": 0, "runningTasksCount": 0, "activeServicesCount": 0, "statistics": [], "settings": [ { "name": "containerInsights", "value": "enabled" } ], "capacityProviders": [ "MyCapacityProvider1", "MyCapacityProvider2" ], "defaultCapacityProviderStrategy": [ { "capacityProvider": "MyCapacityProvider1", "weight": 1, "base": 0 }, { "capacityProvider": "MyCapacityProvider2", "weight": 1, "base": 0 } ], "attachments": [ { "id": "0fb0c8f4-6edd-4de1-9b09-17e470ee1918", "type": "asp", "status": "PRECREATED", "details": [ { "name": "capacityProviderName", "value": "MyCapacityProvider1" }, { "name": "scalingPlanName", "value": "ECSManagedAutoScalingPlan-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" } ] }, { "id": "ae592060-2382-4663-9476-b015c685593c", "type": "asp", "status": "PRECREATED", "details": [ { "name": "capacityProviderName", "value": "MyCapacityProvider2" }, { "name": "scalingPlanName", "value": "ECSManagedAutoScalingPlan-a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" } ] } ], "attachmentsStatus": "UPDATE_IN_PROGRESS" } }

Para obtener más información, consulte Proveedores de capacidad de clúster en la Guía para ECS desarrolladores de Amazon.

Ejemplo 3: Creación de un clúster nuevo con varias etiquetas

En el siguiente ejemplo de create-cluster se crea un clúster con varias etiquetas. Para obtener más información sobre cómo añadir etiquetas mediante una sintaxis abreviada, consulte Uso de la sintaxis abreviada con la interfaz de línea de AWS comandos en la Guía del usuario.AWS CLI

aws ecs create-cluster \ --cluster-name MyCluster \ --tags key=key1,value=value1 key=key2,value=value2 key=key3,value=value3

Salida:

{ "cluster": { "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster", "clusterName": "MyCluster", "status": "ACTIVE", "registeredContainerInstancesCount": 0, "pendingTasksCount": 0, "runningTasksCount": 0, "activeServicesCount": 0, "statistics": [], "tags": [ { "key": "key1", "value": "value1" }, { "key": "key2", "value": "value2" }, { "key": "key3", "value": "value3" } ] } }

Para obtener más información, consulte Creación de un clúster en la Guía para ECS desarrolladores de Amazon.

  • Para API obtener más información, consulte CreateClusterla Referencia de AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar create-service.

AWS CLI

Ejemplo 1: creación de un servicio con una tarea de Fargate

En el siguiente ejemplo de create-service se muestra cómo crear un servicio mediante una tarea de Fargate.

aws ecs create-service \ --cluster MyCluster \ --service-name MyService \ --task-definition sample-fargate:1 \ --desired-count 2 \ --launch-type FARGATE \ --platform-version LATEST \ --network-configuration "awsvpcConfiguration={subnets=[subnet-12344321],securityGroups=[sg-12344321],assignPublicIp=ENABLED}" \ --tags key=key1,value=value1 key=key2,value=value2 key=key3,value=value3

Salida:

{ "service": { "serviceArn": "arn:aws:ecs:us-west-2:123456789012:service/MyCluster/MyService", "serviceName": "MyService", "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster", "loadBalancers": [], "serviceRegistries": [], "status": "ACTIVE", "desiredCount": 2, "runningCount": 0, "pendingCount": 0, "launchType": "FARGATE", "platformVersion": "LATEST", "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/sample-fargate:1", "deploymentConfiguration": { "maximumPercent": 200, "minimumHealthyPercent": 100 }, "deployments": [ { "id": "ecs-svc/1234567890123456789", "status": "PRIMARY", "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/sample-fargate:1", "desiredCount": 2, "pendingCount": 0, "runningCount": 0, "createdAt": 1557119253.821, "updatedAt": 1557119253.821, "launchType": "FARGATE", "platformVersion": "1.3.0", "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "subnet-12344321" ], "securityGroups": [ "sg-12344321" ], "assignPublicIp": "ENABLED" } } } ], "roleArn": "arn:aws:iam::123456789012:role/aws-service-role/ecs.amazonaws.com/AWSServiceRoleForECS", "events": [], "createdAt": 1557119253.821, "placementConstraints": [], "placementStrategy": [], "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "subnet-12344321" ], "securityGroups": [ "sg-12344321" ], "assignPublicIp": "ENABLED" } }, "schedulingStrategy": "REPLICA", "tags": [ { "key": "key1", "value": "value1" }, { "key": "key2", "value": "value2" }, { "key": "key3", "value": "value3" } ], "enableECSManagedTags": false, "propagateTags": "NONE" } }

Ejemplo 2: Para crear un servicio mediante el tipo de EC2 lanzamiento

El siguiente create-service ejemplo muestra cómo crear un servicio llamado ecs-simple-service con una tarea que utilice el tipo de EC2 lanzamiento. El servicio utiliza la definición de la tarea sleep360 y mantiene 1 instancia de la tarea.

aws ecs create-service \ --cluster MyCluster \ --service-name ecs-simple-service \ --task-definition sleep360:2 \ --desired-count 1

Salida:

{ "service": { "serviceArn": "arn:aws:ecs:us-west-2:123456789012:service/MyCluster/ecs-simple-service", "serviceName": "ecs-simple-service", "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster", "loadBalancers": [], "serviceRegistries": [], "status": "ACTIVE", "desiredCount": 1, "runningCount": 0, "pendingCount": 0, "launchType": "EC2", "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/sleep360:2", "deploymentConfiguration": { "maximumPercent": 200, "minimumHealthyPercent": 100 }, "deployments": [ { "id": "ecs-svc/1234567890123456789", "status": "PRIMARY", "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/sleep360:2", "desiredCount": 1, "pendingCount": 0, "runningCount": 0, "createdAt": 1557206498.798, "updatedAt": 1557206498.798, "launchType": "EC2" } ], "events": [], "createdAt": 1557206498.798, "placementConstraints": [], "placementStrategy": [], "schedulingStrategy": "REPLICA", "enableECSManagedTags": false, "propagateTags": "NONE" } }

Ejemplo 3: Creación de un servicio que utilice un controlador de implementación externo

En el siguiente ejemplo de create-service se crea un servicio que utiliza un controlador de implementación externo.

aws ecs create-service \ --cluster MyCluster \ --service-name MyService \ --deployment-controller type=EXTERNAL \ --desired-count 1

Salida:

{ "service": { "serviceArn": "arn:aws:ecs:us-west-2:123456789012:service/MyCluster/MyService", "serviceName": "MyService", "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster", "loadBalancers": [], "serviceRegistries": [], "status": "ACTIVE", "desiredCount": 1, "runningCount": 0, "pendingCount": 0, "launchType": "EC2", "deploymentConfiguration": { "maximumPercent": 200, "minimumHealthyPercent": 100 }, "taskSets": [], "deployments": [], "roleArn": "arn:aws:iam::123456789012:role/aws-service-role/ecs.amazonaws.com/AWSServiceRoleForECS", "events": [], "createdAt": 1557128207.101, "placementConstraints": [], "placementStrategy": [], "schedulingStrategy": "REPLICA", "deploymentController": { "type": "EXTERNAL" }, "enableECSManagedTags": false, "propagateTags": "NONE" } }

Ejemplo 4: Creación de un nuevo servicio detrás de un equilibrador de carga

En el siguiente ejemplo de create-service se muestra cómo crear un servicio que se encuentra detrás de un equilibrador de carga. Debe tener un equilibrador de carga configurado en la misma región que la instancia de contenedor. En este ejemplo, se utiliza la --cli-input-json opción y un archivo de JSON entrada llamado ecs-simple-service-elb.json con el siguiente contenido:

{ "serviceName": "ecs-simple-service-elb", "taskDefinition": "ecs-demo", "loadBalancers": [ { "loadBalancerName": "EC2Contai-EcsElast-123456789012", "containerName": "simple-demo", "containerPort": 80 } ], "desiredCount": 10, "role": "ecsServiceRole" }

Comando:

aws ecs create-service \ --cluster MyCluster \ --service-name ecs-simple-service-elb \ --cli-input-json file://ecs-simple-service-elb.json

Salida:

{ "service": { "status": "ACTIVE", "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/ecs-demo:1", "pendingCount": 0, "loadBalancers": [ { "containerName": "ecs-demo", "containerPort": 80, "loadBalancerName": "EC2Contai-EcsElast-123456789012" } ], "roleArn": "arn:aws:iam::123456789012:role/ecsServiceRole", "desiredCount": 10, "serviceName": "ecs-simple-service-elb", "clusterArn": "arn:aws:ecs:<us-west-2:123456789012:cluster/MyCluster", "serviceArn": "arn:aws:ecs:us-west-2:123456789012:service/ecs-simple-service-elb", "deployments": [ { "status": "PRIMARY", "pendingCount": 0, "createdAt": 1428100239.123, "desiredCount": 10, "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/ecs-demo:1", "updatedAt": 1428100239.123, "id": "ecs-svc/1234567890123456789", "runningCount": 0 } ], "events": [], "runningCount": 0 } }

Para obtener más información, consulta Crear un servicio en la Guía para ECS desarrolladores de Amazon.

  • Para API obtener más información, consulte CreateServicela Referencia de AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar create-task-set.

AWS CLI

Para crear un conjunto de tareas

En el siguiente create-task-set ejemplo, se crea un conjunto de tareas en un servicio que utiliza un controlador de despliegue externo.

aws ecs create-task-set \ --cluster MyCluster \ --service MyService \ --task-definition MyTaskDefinition:2 \ --network-configuration "awsvpcConfiguration={subnets=[subnet-12344321],securityGroups=[sg-12344321]}"

Salida:

{ "taskSet": { "id": "ecs-svc/1234567890123456789", "taskSetArn": "arn:aws:ecs:us-west-2:123456789012:task-set/MyCluster/MyService/ecs-svc/1234567890123456789", "status": "ACTIVE", "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/MyTaskDefinition:2", "computedDesiredCount": 0, "pendingCount": 0, "runningCount": 0, "createdAt": 1557128360.711, "updatedAt": 1557128360.711, "launchType": "EC2", "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "subnet-12344321" ], "securityGroups": [ "sg-12344321" ], "assignPublicIp": "DISABLED" } }, "loadBalancers": [], "serviceRegistries": [], "scale": { "value": 0.0, "unit": "PERCENT" }, "stabilityStatus": "STABILIZING", "stabilityStatusAt": 1557128360.711 } }
  • Para API obtener más información, consulte CreateTaskSetla Referencia de AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar delete-account-setting.

AWS CLI

Para eliminar la configuración de la cuenta de un IAM usuario o IAM rol específico

En el siguiente ejemplo, delete-account-setting se elimina la configuración de la cuenta para el IAM usuario o IAM rol específico.

aws ecs delete-account-setting \ --name serviceLongArnFormat \ --principal-arn arn:aws:iam::123456789012:user/MyUser

Salida:

{ "setting": { "name": "serviceLongArnFormat", "value": "enabled", "principalArn": "arn:aws:iam::123456789012:user/MyUser" } }

Para obtener más información, consulte Amazon Resource Names (ARNs) y IDs en la Guía para ECS desarrolladores de Amazon.

  • Para API obtener más información, consulte DeleteAccountSettingla Referencia de AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar delete-attributes.

AWS CLI

Para eliminar uno o más atributos personalizados de un ECS recurso de Amazon

Lo siguiente delete-attributes elimina un atributo con el nombre stack de una instancia de contenedor.

aws ecs delete-attributes \ --attributes name=stack,targetId=arn:aws:ecs:us-west-2:130757420319:container-instance/1c3be8ed-df30-47b4-8f1e-6e68ebd01f34

Salida:

{ "attributes": [ { "name": "stack", "targetId": "arn:aws:ecs:us-west-2:130757420319:container-instance/1c3be8ed-df30-47b4-8f1e-6e68ebd01f34", "value": "production" } ] }
  • Para API obtener más información, consulte DeleteAttributesla Referencia de AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar delete-capacity-provider.

AWS CLI

Ejemplo 1: Para eliminar un proveedor de capacidad mediante el nombre de recurso de Amazon (ARN)

En el siguiente delete-capacity-provider ejemplo, se elimina un proveedor de capacidad especificando el nombre de recurso de Amazon (ARN) del proveedor de capacidad. La eliminación del proveedor de capacidad, así ARN como el estado de la misma, se pueden recuperar mediante el describe-capacity-providers comando.

aws ecs delete-capacity-provider \ --capacity-provider arn:aws:ecs:us-west-2:123456789012:capacity-provider/ExampleCapacityProvider

Salida:

{ "capacityProvider": { "capacityProviderArn": "arn:aws:ecs:us-west-2:123456789012:capacity-provider/ExampleCapacityProvider", "name": "ExampleCapacityProvider", "status": "ACTIVE", "autoScalingGroupProvider": { "autoScalingGroupArn": "arn:aws:autoscaling:us-west-2:123456789012:autoScalingGroup:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111:autoScalingGroupName/MyAutoScalingGroup", "managedScaling": { "status": "ENABLED", "targetCapacity": 100, "minimumScalingStepSize": 1, "maximumScalingStepSize": 10000 }, "managedTerminationProtection": "DISABLED" }, "updateStatus": "DELETE_IN_PROGRESS", "tags": [] } }

Para obtener más información, consulte Proveedores de capacidad de clúster en la Guía para ECS desarrolladores de Amazon.

Ejemplo 2: Para eliminar un proveedor de capacidad utilizando el nombre

En el siguiente delete-capacity-provider ejemplo, se elimina un proveedor de capacidad especificando su nombre abreviado. El nombre abreviado y el estado de la eliminación del proveedor de capacidad se pueden recuperar mediante el describe-capacity-providers comando.

aws ecs delete-capacity-provider \ --capacity-provider ExampleCapacityProvider

Salida:

{ "capacityProvider": { "capacityProviderArn": "arn:aws:ecs:us-west-2:123456789012:capacity-provider/ExampleCapacityProvider", "name": "ExampleCapacityProvider", "status": "ACTIVE", "autoScalingGroupProvider": { "autoScalingGroupArn": "arn:aws:autoscaling:us-west-2:123456789012:autoScalingGroup:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111:autoScalingGroupName/MyAutoScalingGroup", "managedScaling": { "status": "ENABLED", "targetCapacity": 100, "minimumScalingStepSize": 1, "maximumScalingStepSize": 10000 }, "managedTerminationProtection": "DISABLED" }, "updateStatus": "DELETE_IN_PROGRESS", "tags": [] } }

Para obtener más información, consulte Proveedores de capacidad de clúster en la Guía para ECS desarrolladores de Amazon.

En el siguiente ejemplo de código se muestra cómo usar delete-cluster.

AWS CLI

Eliminación de un clúster vacío

En el siguiente ejemplo de delete-cluster se elimina el clúster vacío especificado.

aws ecs delete-cluster --cluster MyCluster

Salida:

{ "cluster": { "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster", "status": "INACTIVE", "clusterName": "MyCluster", "registeredContainerInstancesCount": 0, "pendingTasksCount": 0, "runningTasksCount": 0, "activeServicesCount": 0 "statistics": [], "tags": [] } }

Para obtener más información, consulta Eliminar un clúster en la Guía para ECS desarrolladores de Amazon.

  • Para API obtener más información, consulte DeleteClusterla Referencia de AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar delete-service.

AWS CLI

Eliminación de un servicio

En el siguiente ejemplo de ecs delete-service se elimina el servicio especificado de un clúster. Puede incluir el parámetro --force para eliminar un servicio aunque no se haya escalado a cero tareas.

aws ecs delete-service --cluster MyCluster --service MyService1 --force

Para obtener más información, consulta Eliminar un servicio en la Guía para ECS desarrolladores de Amazon.

  • Para API obtener más información, consulte DeleteServicela Referencia de AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar delete-task-definitions.

AWS CLI

Para eliminar una definición de tarea

En el siguiente delete-task-definitions ejemplo, se elimina una definición de INACTIVE tarea.

aws ecs delete-task-definitions \ --task-definition curltest:1

Salida:

{ "taskDefinitions": [ { "taskDefinitionArn": "arn:aws:ecs:us-east-1:123456789012:task-definition/curltest:1", "containerDefinitions": [ { "name": "ctest", "image": "mreferre/eksutils", "cpu": 0, "portMappings": [], "essential": true, "entryPoint": [ "sh", "-c" ], "command": [ "curl ${ECS_CONTAINER_METADATA_URI_V4}/task" ], "environment": [], "mountPoints": [], "volumesFrom": [], "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-create-group": "true", "awslogs-group": "/ecs/curltest", "awslogs-region": "us-east-1", "awslogs-stream-prefix": "ecs" } } } ], "family": "curltest", "taskRoleArn": "arn:aws:iam::123456789012:role/ecsTaskExecutionRole", "executionRoleArn": "arn:aws:iam::123456789012:role/ecsTaskExecutionRole", "networkMode": "awsvpc", "revision": 1, "volumes": [], "status": "DELETE_IN_PROGRESS", "compatibilities": [ "EC2", "FARGATE" ], "requiresCompatibilities": [ "FARGATE" ], "cpu": "256", "memory": "512", "registeredAt": "2021-09-10T12:56:24.704000+00:00", "deregisteredAt": "2023-03-14T15:20:59.419000+00:00", "registeredBy": "arn:aws:sts::123456789012:assumed-role/Admin/jdoe" } ], "failures": [] }

Para obtener más información, consulte Definiciones de ECS tareas de Amazon en la Guía para ECS desarrolladores de Amazon.

En el siguiente ejemplo de código se muestra cómo usar delete-task-set.

AWS CLI

Para eliminar un conjunto de tareas

El siguiente delete-task-set ejemplo muestra cómo eliminar un conjunto de tareas. Puede incluir el --force parámetro para eliminar un conjunto de tareas aunque no se haya escalado a cero.

aws ecs delete-task-set \ --cluster MyCluster \ --service MyService \ --task-set arn:aws:ecs:us-west-2:123456789012:task-set/MyCluster/MyService/ecs-svc/1234567890123456789 \ --force

Salida:

{ "taskSet": { "id": "ecs-svc/1234567890123456789", "taskSetArn": "arn:aws:ecs:us-west-2:123456789012:task-set/MyCluster/MyService/ecs-svc/1234567890123456789", "status": "DRAINING", "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/sample-fargate:2", "computedDesiredCount": 0, "pendingCount": 0, "runningCount": 0, "createdAt": 1557130260.276, "updatedAt": 1557130290.707, "launchType": "EC2", "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "subnet-12345678" ], "securityGroups": [ "sg-12345678" ], "assignPublicIp": "DISABLED" } }, "loadBalancers": [], "serviceRegistries": [], "scale": { "value": 0.0, "unit": "PERCENT" }, "stabilityStatus": "STABILIZING", "stabilityStatusAt": 1557130290.707 } }
  • Para API obtener más información, consulte DeleteTaskSetla Referencia de AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar deregister-container-instance.

AWS CLI

Para anular el registro de una instancia de contenedor de un clúster

En el siguiente deregister-container-instance ejemplo, se anula el registro de una instancia contenedora del clúster especificado. Si aún hay tareas en ejecución en la instancia contenedora, debes detenerlas antes de anular el registro o usar la opción. --force

aws ecs deregister-container-instance \ --cluster arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster \ --container-instance arn:aws:ecs:us-west-2:123456789012:container-instance/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE \ --force

Salida:

{ "containerInstance": { "remainingResources": [ { "integerValue": 1024, "doubleValue": 0.0, "type": "INTEGER", "longValue": 0, "name": "CPU" }, { "integerValue": 985, "doubleValue": 0.0, "type": "INTEGER", "longValue": 0, "name": "MEMORY" }, { "type": "STRINGSET", "integerValue": 0, "name": "PORTS", "stringSetValue": [ "22", "2376", "2375", "51678", "51679" ], "longValue": 0, "doubleValue": 0.0 }, { "type": "STRINGSET", "integerValue": 0, "name": "PORTS_UDP", "stringSetValue": [], "longValue": 0, "doubleValue": 0.0 } ], "agentConnected": true, "attributes": [ { "name": "ecs.capability.secrets.asm.environment-variables" }, { "name": "com.amazonaws.ecs.capability.logging-driver.syslog" }, { "value": "ami-01a82c3fce2c3ba58", "name": "ecs.ami-id" }, { "name": "ecs.capability.secrets.asm.bootstrap.log-driver" }, { "name": "com.amazonaws.ecs.capability.logging-driver.none" }, { "name": "ecs.capability.ecr-endpoint" }, { "name": "com.amazonaws.ecs.capability.logging-driver.json-file" }, { "value": "vpc-1234567890123467", "name": "ecs.vpc-id" }, { "name": "ecs.capability.execution-role-awslogs" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.17" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.18" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.19" }, { "name": "ecs.capability.docker-plugin.local" }, { "name": "ecs.capability.task-eni" }, { "name": "ecs.capability.task-cpu-mem-limit" }, { "name": "ecs.capability.secrets.ssm.bootstrap.log-driver" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.30" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.31" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.32" }, { "name": "ecs.capability.execution-role-ecr-pull" }, { "name": "ecs.capability.container-health-check" }, { "value": "subnet-1234567890123467", "name": "ecs.subnet-id" }, { "value": "us-west-2a", "name": "ecs.availability-zone" }, { "value": "t2.micro", "name": "ecs.instance-type" }, { "name": "com.amazonaws.ecs.capability.task-iam-role-network-host" }, { "name": "ecs.capability.aws-appmesh" }, { "name": "com.amazonaws.ecs.capability.logging-driver.awslogs" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.24" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.25" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.26" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.27" }, { "name": "com.amazonaws.ecs.capability.privileged-container" }, { "name": "ecs.capability.container-ordering" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.28" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.29" }, { "value": "x86_64", "name": "ecs.cpu-architecture" }, { "value": "93f43776-2018.10.0", "name": "ecs.capability.cni-plugin-version" }, { "name": "ecs.capability.secrets.ssm.environment-variables" }, { "name": "ecs.capability.pid-ipc-namespace-sharing" }, { "name": "com.amazonaws.ecs.capability.ecr-auth" }, { "value": "linux", "name": "ecs.os-type" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.20" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.21" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.22" }, { "name": "ecs.capability.task-eia" }, { "name": "ecs.capability.private-registry-authentication.secretsmanager" }, { "name": "com.amazonaws.ecs.capability.task-iam-role" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.23" } ], "pendingTasksCount": 0, "tags": [], "containerInstanceArn": "arn:aws:ecs:us-west-2:123456789012:container-instance/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "registeredResources": [ { "integerValue": 1024, "doubleValue": 0.0, "type": "INTEGER", "longValue": 0, "name": "CPU" }, { "integerValue": 985, "doubleValue": 0.0, "type": "INTEGER", "longValue": 0, "name": "MEMORY" }, { "type": "STRINGSET", "integerValue": 0, "name": "PORTS", "stringSetValue": [ "22", "2376", "2375", "51678", "51679" ], "longValue": 0, "doubleValue": 0.0 }, { "type": "STRINGSET", "integerValue": 0, "name": "PORTS_UDP", "stringSetValue": [], "longValue": 0, "doubleValue": 0.0 } ], "status": "INACTIVE", "registeredAt": 1557768075.681, "version": 4, "versionInfo": { "agentVersion": "1.27.0", "agentHash": "aabe65ee", "dockerVersion": "DockerVersion: 18.06.1-ce" }, "attachments": [], "runningTasksCount": 0, "ec2InstanceId": "i-12345678901234678" } }

Para obtener más información, consulte Anular el registro de una instancia de contenedor en la Guía para desarrolladores. ECS

En el siguiente ejemplo de código se muestra cómo usar deregister-task-definition.

AWS CLI

Para anular el registro de una definición de tarea

En el siguiente deregister-task-definition ejemplo, se anula el registro de la primera revisión de la definición de curler tarea en la región predeterminada.

aws ecs deregister-task-definition --task-definition curler:1

Tenga en cuenta que en el resultado resultante, el estado de la definición de la tarea muestra: INACTIVE

{ "taskDefinition": { "status": "INACTIVE", "family": "curler", "volumes": [], "taskDefinitionArn": "arn:aws:ecs:us-west-2:123456789012:task-definition/curler:1", "containerDefinitions": [ { "environment": [], "name": "curler", "mountPoints": [], "image": "curl:latest", "cpu": 100, "portMappings": [], "entryPoint": [], "memory": 256, "command": [ "curl -v http://example.com/" ], "essential": true, "volumesFrom": [] } ], "revision": 1 } }

Para obtener más información, consulte Definiciones de ECS tareas de Amazon en la Guía para ECS desarrolladores de Amazon.

En el siguiente ejemplo de código se muestra cómo usar describe-capacity-providers.

AWS CLI

Ejemplo 1: Para describir todos los proveedores de capacidad

El siguiente describe-capacity-providers ejemplo recupera detalles sobre todos los proveedores de capacidad.

aws ecs describe-capacity-providers

Salida:

{ "capacityProviders": [ { "capacityProviderArn": "arn:aws:ecs:us-west-2:123456789012:capacity-provider/MyCapacityProvider", "name": "MyCapacityProvider", "status": "ACTIVE", "autoScalingGroupProvider": { "autoScalingGroupArn": "arn:aws:autoscaling:us-west-2:123456789012:autoScalingGroup:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111:autoScalingGroupName/MyAutoScalingGroup", "managedScaling": { "status": "ENABLED", "targetCapacity": 100, "minimumScalingStepSize": 1, "maximumScalingStepSize": 1000 }, "managedTerminationProtection": "ENABLED" }, "tags": [] }, { "capacityProviderArn": "arn:aws:ecs:us-west-2:123456789012:capacity-provider/FARGATE", "name": "FARGATE", "status": "ACTIVE", "tags": [] }, { "capacityProviderArn": "arn:aws:ecs:us-west-2:123456789012:capacity-provider/FARGATE_SPOT", "name": "FARGATE_SPOT", "status": "ACTIVE", "tags": [] } ] }

Para obtener más información, consulte Proveedores de capacidad de clúster en la Guía para ECS desarrolladores de Amazon.

Ejemplo 2: Para describir un proveedor de capacidad específico

El siguiente describe-capacity-providers ejemplo recupera detalles sobre un proveedor de capacidad específico. Si se utiliza el --include TAGS parámetro, se añadirán a la salida las etiquetas asociadas al proveedor de capacidad.

aws ecs describe-capacity-providers \ --capacity-providers MyCapacityProvider \ --include TAGS

Salida:

{ "capacityProviders": [ { "capacityProviderArn": "arn:aws:ecs:us-west-2:123456789012:capacity-provider/MyCapacityProvider", "name": "MyCapacityProvider", "status": "ACTIVE", "autoScalingGroupProvider": { "autoScalingGroupArn": "arn:aws:autoscaling:us-west-2:123456789012:autoScalingGroup:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111:autoScalingGroupName/MyAutoScalingGroup", "managedScaling": { "status": "ENABLED", "targetCapacity": 100, "minimumScalingStepSize": 1, "maximumScalingStepSize": 1000 }, "managedTerminationProtection": "ENABLED" }, "tags": [ { "key": "environment", "value": "production" } ] } ] }

Para obtener más información, consulte Proveedores de capacidad de clúster en la Guía para ECS desarrolladores de Amazon.

En el siguiente ejemplo de código se muestra cómo usar describe-clusters.

AWS CLI

Ejemplo 1: Descripción de un clúster

En el siguiente ejemplo de describe-clusters se recuperan los detalles sobre el clúster especificado.

aws ecs describe-clusters \ --cluster default

Salida:

{ "clusters": [ { "status": "ACTIVE", "clusterName": "default", "registeredContainerInstancesCount": 0, "pendingTasksCount": 0, "runningTasksCount": 0, "activeServicesCount": 1, "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/default" } ], "failures": [] }

Para obtener más información, consulte Amazon ECS Clusters en la Guía para ECS desarrolladores de Amazon.

Ejemplo 2: Descripción de un clúster con la opción de adjuntar

En el siguiente describe-clusters ejemplo se especifica la ATTACHMENTS opción. Recupera detalles sobre el clúster especificado y una lista de los recursos adjuntos al clúster en forma de archivos adjuntos. Cuando se utiliza un proveedor de capacidad con un clúster, los recursos, ya sean AutoScaling planes o políticas de escalado, se representarán como asp o ATTACHMENTS as_policy.

aws ecs describe-clusters \ --include ATTACHMENTS \ --clusters sampleCluster

Salida:

{ "clusters": [ { "clusterArn": "arn:aws:ecs:af-south-1:123456789222:cluster/sampleCluster", "clusterName": "sampleCluster", "status": "ACTIVE", "registeredContainerInstancesCount": 0, "runningTasksCount": 0, "pendingTasksCount": 0, "activeServicesCount": 0, "statistics": [], "tags": [], "settings": [], "capacityProviders": [ "sampleCapacityProvider" ], "defaultCapacityProviderStrategy": [], "attachments": [ { "id": "a1b2c3d4-5678-901b-cdef-EXAMPLE22222", "type": "as_policy", "status": "CREATED", "details": [ { "name": "capacityProviderName", "value": "sampleCapacityProvider" }, { "name": "scalingPolicyName", "value": "ECSManagedAutoScalingPolicy-3048e262-fe39-4eaf-826d-6f975d303188" } ] } ], "attachmentsStatus": "UPDATE_COMPLETE" } ], "failures": [] }

Para obtener más información, consulte Amazon ECS Clusters en la Guía para ECS desarrolladores de Amazon.

  • Para API obtener más información, consulte DescribeClustersla Referencia de AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar describe-container-instances.

AWS CLI

Para describir la instancia contenedora

En el siguiente describe-container-instances ejemplo, se recuperan los detalles de una instancia contenedora del update clúster, utilizando la instancia contenedora UUID como identificador.

aws ecs describe-container-instances \ --cluster update \ --container-instances a1b2c3d4-5678-90ab-cdef-11111EXAMPLE

Salida:

{ "failures": [], "containerInstances": [ { "status": "ACTIVE", "registeredResources": [ { "integerValue": 2048, "longValue": 0, "type": "INTEGER", "name": "CPU", "doubleValue": 0.0 }, { "integerValue": 3955, "longValue": 0, "type": "INTEGER", "name": "MEMORY", "doubleValue": 0.0 }, { "name": "PORTS", "longValue": 0, "doubleValue": 0.0, "stringSetValue": [ "22", "2376", "2375", "51678" ], "type": "STRINGSET", "integerValue": 0 } ], "ec2InstanceId": "i-A1B2C3D4", "agentConnected": true, "containerInstanceArn": "arn:aws:ecs:us-west-2:123456789012:container-instance/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "pendingTasksCount": 0, "remainingResources": [ { "integerValue": 2048, "longValue": 0, "type": "INTEGER", "name": "CPU", "doubleValue": 0.0 }, { "integerValue": 3955, "longValue": 0, "type": "INTEGER", "name": "MEMORY", "doubleValue": 0.0 }, { "name": "PORTS", "longValue": 0, "doubleValue": 0.0, "stringSetValue": [ "22", "2376", "2375", "51678" ], "type": "STRINGSET", "integerValue": 0 } ], "runningTasksCount": 0, "versionInfo": { "agentVersion": "1.0.0", "agentHash": "4023248", "dockerVersion": "DockerVersion: 1.5.0" } } ] }

Para obtener más información, consulte Amazon ECS Container Instances en la Guía para ECS desarrolladores de Amazon.

En el siguiente ejemplo de código se muestra cómo usar describe-services.

AWS CLI

Para describir un servicio

En el siguiente describe-services ejemplo, se recuperan los detalles del my-http-service servicio en el clúster predeterminado.

aws ecs describe-services --services my-http-service

Salida:

{ "services": [ { "status": "ACTIVE", "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/amazon-ecs-sample:1", "pendingCount": 0, "loadBalancers": [], "desiredCount": 10, "createdAt": 1466801808.595, "serviceName": "my-http-service", "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/default", "serviceArn": "arn:aws:ecs:us-west-2:123456789012:service/my-http-service", "deployments": [ { "status": "PRIMARY", "pendingCount": 0, "createdAt": 1466801808.595, "desiredCount": 10, "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/amazon-ecs-sample:1", "updatedAt": 1428326312.703, "id": "ecs-svc/1234567890123456789", "runningCount": 10 } ], "events": [ { "message": "(service my-http-service) has reached a steady state.", "id": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "createdAt": 1466801812.435 } ], "runningCount": 10 } ], "failures": [] }

Para obtener más información, consulta Servicios en la Guía para ECS desarrolladores de Amazon.

  • Para API obtener más información, consulte DescribeServicesla Referencia de AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar describe-task-definition.

AWS CLI

Para describir una definición de tarea

En el siguiente describe-task-definition ejemplo, se recuperan los detalles de una definición de tarea.

aws ecs describe-task-definition \ --task-definition hello_world:8

Salida:

{ "taskDefinition": { "taskDefinitionArn": "arn:aws:ecs:us-east-1:012345678910:task-definition/hello_world:8", "containerDefinitions": [ { "cpu": 10, "environment": [], "essential": true, "image": "wordpress", "links": [ "mysql" ] , "memory": 500, "mountPoints": [], "name": "wordpress", "portMappings": [ { "containerPort": 80, "hostPort": 80 } ], "volumesFrom": [] }, { "cpu": 10, "environment": [ { "name": "MYSQL_ROOT_PASSWORD", "value": "password" } ], "essential": true, "image": "mysql", "memory": 500, "mountPoints": [], "name": "mysql", "portMappings": [], "volumesFrom": [] } ], "family": "hello_world", "revision": 8, "volumes": [], "status": "ACTIVE", "placementConstraints": [], "compatibilities": [ "EXTERNAL", "EC2" ], "registeredAt": "2024-06-21T11:15:12.669000-05:00", "registeredBy": "arn:aws:sts::012345678910:assumed-role/demo-role/jane-doe" }, "tags": [] }

Para obtener más información, consulte Definiciones de ECS tareas de Amazon en la Guía para ECS desarrolladores de Amazon.

En el siguiente ejemplo de código se muestra cómo usar describe-task-sets.

AWS CLI

Para describir un conjunto de tareas

El siguiente describe-task-sets ejemplo describe un conjunto de tareas en un servicio que utiliza un implementador externo.

aws ecs describe-task-sets \ --cluster MyCluster \ --service MyService \ --task-sets arn:aws:ecs:us-west-2:123456789012:task-set/MyCluster/MyService/ecs-svc/1234567890123456789

Salida:

{ "taskSets": [ { "id": "ecs-svc/1234567890123456789", "taskSetArn": "arn:aws:ecs:us-west-2:123456789012:task-set/MyCluster/MyService/ecs-svc/1234567890123456789", "status": "ACTIVE", "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/sample-fargate:2", "computedDesiredCount": 0, "pendingCount": 0, "runningCount": 0, "createdAt": 1557207715.195, "updatedAt": 1557207740.014, "launchType": "EC2", "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "subnet-12344321" ], "securityGroups": [ "sg-1234431" ], "assignPublicIp": "DISABLED" } }, "loadBalancers": [], "serviceRegistries": [], "scale": { "value": 0.0, "unit": "PERCENT" }, "stabilityStatus": "STEADY_STATE", "stabilityStatusAt": 1557207740.014 } ], "failures": [] }
  • Para API obtener más información, consulte DescribeTaskSetsla Referencia de AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar describe-tasks.

AWS CLI

Ejemplo 1: Descripción de una sola tarea

En el siguiente ejemplo de describe-tasks se recuperan los detalles de una tarea de un clúster. Puede especificar la tarea utilizando el identificador o la totalidad ARN de la tarea. En este ejemplo, se utiliza la totalidad ARN de la tarea.

aws ecs describe-tasks \ --cluster MyCluster \ --tasks arn:aws:ecs:us-east-1:123456789012:task/MyCluster/4d590253bb114126b7afa7b58EXAMPLE

Salida:

{ "tasks": [ { "attachments": [], "attributes": [ { "name": "ecs.cpu-architecture", "value": "x86_64" } ], "availabilityZone": "us-east-1b", "clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/MyCluster", "connectivity": "CONNECTED", "connectivityAt": "2021-08-11T12:21:26.681000-04:00", "containerInstanceArn": "arn:aws:ecs:us-east-1:123456789012:container-instance/test/025c7e2c5e054a6790a29fc1fEXAMPLE", "containers": [ { "containerArn": "arn:aws:ecs:us-east-1:123456789012:container/MyCluster/4d590253bb114126b7afa7b58eea9221/a992d1cc-ea46-474a-b6e8-24688EXAMPLE", "taskArn": "arn:aws:ecs:us-east-1:123456789012:task/MyCluster/4d590253bb114126b7afa7b58EXAMPLE", "name": "simple-app", "image": "httpd:2.4", "runtimeId": "91251eed27db90006ad67b1a08187290869f216557717dd5c39b37c94EXAMPLE", "lastStatus": "RUNNING", "networkBindings": [ { "bindIP": "0.0.0.0", "containerPort": 80, "hostPort": 80, "protocol": "tcp" } ], "networkInterfaces": [], "healthStatus": "UNKNOWN", "cpu": "10", "memory": "300" } ], "cpu": "10", "createdAt": "2021-08-11T12:21:26.681000-04:00", "desiredStatus": "RUNNING", "enableExecuteCommand": false, "group": "service:testupdate", "healthStatus": "UNKNOWN", "lastStatus": "RUNNING", "launchType": "EC2", "memory": "300", "overrides": { "containerOverrides": [ { "name": "simple-app" } ], "inferenceAcceleratorOverrides": [] }, "pullStartedAt": "2021-08-11T12:21:28.234000-04:00", "pullStoppedAt": "2021-08-11T12:21:33.793000-04:00", "startedAt": "2021-08-11T12:21:34.945000-04:00", "startedBy": "ecs-svc/968695068243EXAMPLE", "tags": [], "taskArn": "arn:aws:ecs:us-east-1:123456789012:task/MyCluster/4d590253bb114126b7afa7b58eea9221", "taskDefinitionArn": "arn:aws:ecs:us-east-1:123456789012:task-definition/console-sample-app-static2:1", "version": 2 } ], "failures": [] }

Para obtener más información, consulte Definiciones de ECS tareas de Amazon en la Guía para ECS desarrolladores de Amazon.

Ejemplo 2: Descripción de varias tareas

En el siguiente ejemplo de describe-tasks se recuperan los detalles de varias tareas de un clúster. Puede especificar la tarea utilizando el ID o la totalidad ARN de la tarea. En este ejemplo, se utilizan todas IDs las tareas.

aws ecs describe-tasks \ --cluster MyCluster \ --tasks "74de0355a10a4f979ac495c14EXAMPLE" "d789e94343414c25b9f6bd59eEXAMPLE"

Salida:

{ "tasks": [ { "attachments": [ { "id": "d9e7735a-16aa-4128-bc7a-b2d51EXAMPLE", "type": "ElasticNetworkInterface", "status": "ATTACHED", "details": [ { "name": "subnetId", "value": "subnet-0d0eab1bb3EXAMPLE" }, { "name": "networkInterfaceId", "value": "eni-0fa40520aeEXAMPLE" }, { "name": "macAddress", "value": "0e:89:76:28:07:b3" }, { "name": "privateDnsName", "value": "ip-10-0-1-184.ec2.internal" }, { "name": "privateIPv4Address", "value": "10.0.1.184" } ] } ], "attributes": [ { "name": "ecs.cpu-architecture", "value": "x86_64" } ], "availabilityZone": "us-east-1b", "clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/MyCluster", "connectivity": "CONNECTED", "connectivityAt": "2021-12-20T12:13:37.875000-05:00", "containers": [ { "containerArn": "arn:aws:ecs:us-east-1:123456789012:container/MyCluster/74de0355a10a4f979ac495c14EXAMPLE/aad3ba00-83b3-4dac-84d4-11f8cEXAMPLE", "taskArn": "arn:aws:ecs:us-east-1:123456789012:task/MyCluster/74de0355a10a4f979ac495c14EXAMPLE", "name": "web", "image": "nginx", "runtimeId": "74de0355a10a4f979ac495c14EXAMPLE-265927825", "lastStatus": "RUNNING", "networkBindings": [], "networkInterfaces": [ { "attachmentId": "d9e7735a-16aa-4128-bc7a-b2d51EXAMPLE", "privateIpv4Address": "10.0.1.184" } ], "healthStatus": "UNKNOWN", "cpu": "99", "memory": "100" } ], "cpu": "256", "createdAt": "2021-12-20T12:13:20.226000-05:00", "desiredStatus": "RUNNING", "enableExecuteCommand": false, "group": "service:tdsevicetag", "healthStatus": "UNKNOWN", "lastStatus": "RUNNING", "launchType": "FARGATE", "memory": "512", "overrides": { "containerOverrides": [ { "name": "web" } ], "inferenceAcceleratorOverrides": [] }, "platformVersion": "1.4.0", "platformFamily": "Linux", "pullStartedAt": "2021-12-20T12:13:42.665000-05:00", "pullStoppedAt": "2021-12-20T12:13:46.543000-05:00", "startedAt": "2021-12-20T12:13:48.086000-05:00", "startedBy": "ecs-svc/988401040018EXAMPLE", "tags": [], "taskArn": "arn:aws:ecs:us-east-1:123456789012:task/MyCluster/74de0355a10a4f979ac495c14EXAMPLE", "taskDefinitionArn": "arn:aws:ecs:us-east-1:123456789012:task-definition/webserver:2", "version": 3, "ephemeralStorage": { "sizeInGiB": 20 } }, { "attachments": [ { "id": "214eb5a9-45cd-4bf8-87bc-57fefEXAMPLE", "type": "ElasticNetworkInterface", "status": "ATTACHED", "details": [ { "name": "subnetId", "value": "subnet-0d0eab1bb3EXAMPLE" }, { "name": "networkInterfaceId", "value": "eni-064c7766daEXAMPLE" }, { "name": "macAddress", "value": "0e:76:83:01:17:a9" }, { "name": "privateDnsName", "value": "ip-10-0-1-41.ec2.internal" }, { "name": "privateIPv4Address", "value": "10.0.1.41" } ] } ], "attributes": [ { "name": "ecs.cpu-architecture", "value": "x86_64" } ], "availabilityZone": "us-east-1b", "clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/MyCluster", "connectivity": "CONNECTED", "connectivityAt": "2021-12-20T12:13:35.243000-05:00", "containers": [ { "containerArn": "arn:aws:ecs:us-east-1:123456789012:container/MyCluster/d789e94343414c25b9f6bd59eEXAMPLE/9afef792-609b-43a5-bb6a-3efdbEXAMPLE", "taskArn": "arn:aws:ecs:us-east-1:123456789012:task/MyCluster/d789e94343414c25b9f6bd59eEXAMPLE", "name": "web", "image": "nginx", "runtimeId": "d789e94343414c25b9f6bd59eEXAMPLE-265927825", "lastStatus": "RUNNING", "networkBindings": [], "networkInterfaces": [ { "attachmentId": "214eb5a9-45cd-4bf8-87bc-57fefEXAMPLE", "privateIpv4Address": "10.0.1.41" } ], "healthStatus": "UNKNOWN", "cpu": "99", "memory": "100" } ], "cpu": "256", "createdAt": "2021-12-20T12:13:20.226000-05:00", "desiredStatus": "RUNNING", "enableExecuteCommand": false, "group": "service:tdsevicetag", "healthStatus": "UNKNOWN", "lastStatus": "RUNNING", "launchType": "FARGATE", "memory": "512", "overrides": { "containerOverrides": [ { "name": "web" } ], "inferenceAcceleratorOverrides": [] }, "platformVersion": "1.4.0", "platformFamily": "Linux", "pullStartedAt": "2021-12-20T12:13:44.611000-05:00", "pullStoppedAt": "2021-12-20T12:13:48.251000-05:00", "startedAt": "2021-12-20T12:13:49.326000-05:00", "startedBy": "ecs-svc/988401040018EXAMPLE", "tags": [], "taskArn": "arn:aws:ecs:us-east-1:123456789012:task/MyCluster/d789e94343414c25b9f6bd59eEXAMPLE", "taskDefinitionArn": "arn:aws:ecs:us-east-1:123456789012:task-definition/webserver:2", "version": 3, "ephemeralStorage": { "sizeInGiB": 20 } } ], "failures": [] }

Para obtener más información, consulte Definiciones de ECS tareas de Amazon en la Guía para ECS desarrolladores de Amazon.

  • Para API obtener más información, consulte DescribeTasksla Referencia de AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar execute-command.

AWS CLI

Para ejecutar un interactive /bin/sh comando

En el siguiente execute-command ejemplo, se ejecuta un interactive /bin/sh comando en un contenedor con MyContainer el nombre de una tarea con un identificador dearn:aws:ecs:us-east-1:123456789012:task/MyCluster/d789e94343414c25b9f6bd59eEXAMPLE.

aws ecs execute-command \ --cluster MyCluster \ --task arn:aws:ecs:us-east-1:123456789012:task/MyCluster/d789e94343414c25b9f6bd59eEXAMPLE \ --container MyContainer \ --interactive \ --command "/bin/sh"

Este comando no genera ninguna salida.

Para obtener más información, consulte Uso de Amazon ECS Exec para la depuración en la Guía para ECSdesarrolladores de Amazon.

  • Para API obtener más información, consulte la Referencia ExecuteCommandde AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar list-account-settings.

AWS CLI

Ejemplo 1: Para ver la configuración de una cuenta

En el siguiente list-account-settings ejemplo, se muestra la configuración de cuenta efectiva de una cuenta.

aws ecs list-account-settings --effective-settings

Salida:

{ "settings": [ { "name": "containerInstanceLongArnFormat", "value": "enabled", "principalArn": "arn:aws:iam::123456789012:root" }, { "name": "serviceLongArnFormat", "value": "enabled", "principalArn": "arn:aws:iam::123456789012:root" }, { "name": "taskLongArnFormat", "value": "enabled", "principalArn": "arn:aws:iam::123456789012:root" } ] }

Ejemplo 2: Para ver la configuración de la cuenta de un IAM usuario o IAM rol específico

En el siguiente list-account-settings ejemplo, se muestra la configuración de la cuenta para el IAM usuario o IAM rol especificado.

aws ecs list-account-settings --principal-arn arn:aws:iam::123456789012:user/MyUser

Salida:

{ "settings": [ { "name": "serviceLongArnFormat", "value": "enabled", "principalArn": "arn:aws:iam::123456789012:user/MyUser" } ] }

Para obtener más información, consulte Amazon Resource Names (ARNs) y IDs en la Guía para ECS desarrolladores de Amazon.

  • Para API obtener más información, consulte ListAccountSettingsla Referencia de AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar list-attributes.

AWS CLI

Para enumerar las instancias de contenedor que contienen un atributo específico

En el siguiente ejemplo, se enumeran los atributos de las instancias de contenedor que tienen el stack=production atributo en el clúster predeterminado.

aws ecs list-attributes \ --target-type container-instance \ --attribute-name stack \ --attribute-value production \ --cluster default

Salida:

{ "attributes": [ { "name": "stack", "targetId": "arn:aws:ecs:us-west-2:130757420319:container-instance/1c3be8ed-df30-47b4-8f1e-6e68ebd01f34", "value": "production" } ] }

Para obtener más información, consulte Configuración de Amazon ECS Container Agent en la Guía para ECS desarrolladores de Amazon.

  • Para API obtener más información, consulte ListAttributesla Referencia de AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar list-clusters.

AWS CLI

Creación de una lista de los clústeres disponibles

En el siguiente ejemplo de list-clusters se enumeran todos los clústeres disponibles.

aws ecs list-clusters

Salida:

{ "clusterArns": [ "arn:aws:ecs:us-west-2:123456789012:cluster/MyECSCluster1", "arn:aws:ecs:us-west-2:123456789012:cluster/AnotherECSCluster" ] }

Para obtener más información, consulte Amazon ECS Clusters en la Guía para ECS desarrolladores de Amazon.

  • Para API obtener más información, consulte ListClustersla Referencia de AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar list-container-instances.

AWS CLI

Para enumerar las instancias contenedoras de un clúster

En el siguiente list-container-instances ejemplo, se enumeran todas las instancias de contenedor disponibles en un clúster.

aws ecs list-container-instances --cluster MyCluster

Salida:

{ "containerInstanceArns": [ "arn:aws:ecs:us-west-2:123456789012:container-instance/MyCluster/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "arn:aws:ecs:us-west-2:123456789012:container-instance/MyCluster/a1b2c3d4-5678-90ab-cdef-22222EXAMPLE" ] }

Para obtener más información, consulte Amazon ECS Container Instances en la Guía para ECS desarrolladores de Amazon.

En el siguiente ejemplo de código se muestra cómo usar list-services-by-namespace.

AWS CLI

Para enumerar los servicios de un espacio de nombres

En el siguiente list-services-by-namespace ejemplo, se enumeran todos los servicios configurados para el espacio de nombres especificado en la región predeterminada.

aws ecs list-services-by-namespace \ --namespace service-connect

Salida:

{ "serviceArns": [ "arn:aws:ecs:us-west-2:123456789012:service/MyCluster/MyService", "arn:aws:ecs:us-west-2:123456789012:service/tutorial/service-connect-nginx-service" ] }

Para obtener más información, consulte Service Connect en la Guía para ECS desarrolladores de Amazon.

En el siguiente ejemplo de código se muestra cómo usar list-services.

AWS CLI

Creación de una lista de los servicios de un clúster

En el siguiente ejemplo de list-services se muestra cómo enumerar los servicios que se ejecutan en un clúster.

aws ecs list-services --cluster MyCluster

Salida:

{ "serviceArns": [ "arn:aws:ecs:us-west-2:123456789012:service/MyCluster/MyService" ] }

Para obtener más información, consulta Servicios en la Guía para ECS desarrolladores de Amazon.

  • Para API obtener más información, consulte ListServicesla Referencia de AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar list-tags-for-resource.

AWS CLI

Para enumerar las etiquetas de un recurso

En el siguiente list-tags-for-resource ejemplo, se enumeran las etiquetas de un clúster específico.

aws ecs list-tags-for-resource \ --resource-arn arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster

Salida:

{ "tags": [ { "key": "key1", "value": "value1" }, { "key": "key2", "value": "value2" }, { "key": "key3", "value": "value3" } ] }
  • Para API obtener más información, consulte ListTagsForResourcela Referencia de AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar list-task-definition-families.

AWS CLI

Ejemplo 1: Para enumerar las familias de definiciones de tareas registradas

En el siguiente list-task-definition-families ejemplo, se enumeran todas las familias de definiciones de tareas registradas.

aws ecs list-task-definition-families

Salida:

{ "families": [ "node-js-app", "web-timer", "hpcc", "hpcc-c4-8xlarge" ] }

Ejemplo 2: Para filtrar las familias de definiciones de tareas registradas

En el siguiente list-task-definition-families ejemplo, se enumeran las revisiones de la definición de tareas que comienzan por «hpcc».

aws ecs list-task-definition-families --family-prefix hpcc

Salida:

{ "families": [ "hpcc", "hpcc-c4-8xlarge" ] }

Para obtener más información, consulte Parámetros de definición de tareas en la Guía para ECS desarrolladores de Amazon.

En el siguiente ejemplo de código se muestra cómo usar list-task-definitions.

AWS CLI

Ejemplo 1: Para enumerar las definiciones de tareas registradas

En el siguiente list-task-definitions ejemplo, se enumeran todas las definiciones de tareas registradas.

aws ecs list-task-definitions

Salida:

{ "taskDefinitionArns": [ "arn:aws:ecs:us-west-2:123456789012:task-definition/sleep300:2", "arn:aws:ecs:us-west-2:123456789012:task-definition/sleep360:1", "arn:aws:ecs:us-west-2:123456789012:task-definition/wordpress:3", "arn:aws:ecs:us-west-2:123456789012:task-definition/wordpress:4", "arn:aws:ecs:us-west-2:123456789012:task-definition/wordpress:5", "arn:aws:ecs:us-west-2:123456789012:task-definition/wordpress:6" ] }

Ejemplo 2: Para enumerar las definiciones de tareas registradas en una familia

En el siguiente list-task-definitions ejemplo, se enumeran las revisiones de las definiciones de tareas de una familia específica.

aws ecs list-task-definitions --family-prefix wordpress

Salida:

{ "taskDefinitionArns": [ "arn:aws:ecs:us-west-2:123456789012:task-definition/wordpress:3", "arn:aws:ecs:us-west-2:123456789012:task-definition/wordpress:4", "arn:aws:ecs:us-west-2:123456789012:task-definition/wordpress:5", "arn:aws:ecs:us-west-2:123456789012:task-definition/wordpress:6" ] }

Para obtener más información, consulte Definiciones de ECS tareas de Amazon en la Guía para ECS desarrolladores de Amazon.

  • Para API obtener más información, consulte ListTaskDefinitionsla Referencia de AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar list-tasks.

AWS CLI

Ejemplo 1: Creación de una lista de las tareas de un clúster

En el siguiente ejemplo de list-tasks se muestran todas las tareas de un clúster.

aws ecs list-tasks --cluster default

Salida:

{ "taskArns": [ "arn:aws:ecs:us-west-2:123456789012:task/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "arn:aws:ecs:us-west-2:123456789012:task/a1b2c3d4-5678-90ab-cdef-22222EXAMPLE" ] }

Ejemplo 2: Creación de una lista de las tareas de una instancia de contenedor concreta

En el siguiente list-tasks ejemplo, se enumeran las tareas de una instancia contenedora, utilizando la instancia contenedora UUID como filtro.

aws ecs list-tasks --cluster default --container-instance a1b2c3d4-5678-90ab-cdef-33333EXAMPLE

Salida:

{ "taskArns": [ "arn:aws:ecs:us-west-2:123456789012:task/a1b2c3d4-5678-90ab-cdef-44444EXAMPLE" ] }

Para obtener más información, consulte Definiciones de ECS tareas de Amazon en la Guía para ECS desarrolladores de Amazon.

  • Para API obtener más información, consulte ListTasksla Referencia de AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar put-account-setting-default.

AWS CLI

Para modificar la configuración de la cuenta por defecto

En el siguiente put-account-setting-default ejemplo, se modifica la configuración de cuenta predeterminada para todos IAM los usuarios o roles de la cuenta. Estos cambios se aplican a toda la AWS cuenta, a menos que un IAM usuario o rol anule explícitamente esta configuración por sí mismo.

aws ecs put-account-setting-default --name serviceLongArnFormat --value enabled

Salida:

{ "setting": { "name": "serviceLongArnFormat", "value": "enabled", "principalArn": "arn:aws:iam::123456789012:root" } }

Para obtener más información, consulte Amazon Resource Names (ARNs) y IDs en la Guía para ECS desarrolladores de Amazon.

En el siguiente ejemplo de código se muestra cómo usar put-account-setting.

AWS CLI

Para modificar la configuración de su cuenta IAM de usuario

El siguiente put-account-setting ejemplo habilita la serviceLongArnFormat configuración de la cuenta IAM de usuario.

aws ecs put-account-setting --name serviceLongArnFormat --value enabled

Salida:

{ "setting": { "name": "serviceLongArnFormat", "value": "enabled", "principalArn": "arn:aws:iam::130757420319:user/your_username" } }

Para obtener más información, consulte Modificación de la configuración de la cuenta en la Guía para ECS desarrolladores de Amazon.

  • Para API obtener más información, consulte PutAccountSettingla Referencia de AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar put-account-settings.

AWS CLI

Para modificar la configuración de la cuenta de un IAM usuario o IAM rol

En el siguiente put-account-setting ejemplo, se modifica la configuración de la cuenta para el IAM usuario o IAM rol especificado.

aws ecs put-account-setting \ --name serviceLongArnFormat \ --value enabled \ --principal-arn arn:aws:iam::123456789012:user/MyUser

Salida:

{ "setting": { "name": "serviceLongArnFormat", "value": "enabled", "principalArn": "arn:aws:iam::123456789012:user/MyUser" } }
  • Para API obtener más información, consulte PutAccountSettingsla Referencia de AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar put-attributes.

AWS CLI

Para crear un atributo y asociarlo a un ECS recurso de Amazon

A continuación, put-attributes se aplica un atributo con la pila de nombres y el valor production a una instancia de contenedor.

aws ecs put-attributes \ --attributes name=stack,value=production,targetId=arn:aws:ecs:us-west-2:130757420319:container-instance/1c3be8ed-df30-47b4-8f1e-6e68ebd01f34

Salida:

{ "attributes": [ { "name": "stack", "targetId": "arn:aws:ecs:us-west-2:130757420319:container-instance/1c3be8ed-df30-47b4-8f1e-6e68ebd01f34", "value": "production" } ] }
  • Para API obtener más información, consulte PutAttributesla Referencia de AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar put-cluster-capacity-providers.

AWS CLI

Ejemplo 1: Para añadir un proveedor de capacidad existente a un clúster

El siguiente put-cluster-capacity-providers ejemplo agrega un proveedor de capacidad existente a un clúster. El comando create-capacity-provider se utiliza para crear un proveedor de capacidad. El describe-clusters comando se utiliza para describir los proveedores de capacidad actuales y la estrategia del proveedor de capacidad predeterminado asociada a un clúster. Al agregar un nuevo proveedor de capacidad a un clúster, debe especificar todos los proveedores de capacidad existentes además del nuevo proveedor de capacidad que desee asociar al clúster. También debe especificar la estrategia del proveedor de capacidad predeterminado para asociarla al clúster. En este ejemplo, el MyCluster clúster tiene un proveedor de MyCapacityProvider1 capacidad asociado y usted quiere agregar el proveedor de MyCapacityProvider2 capacidad e incluirlo en la estrategia de proveedor de capacidad predeterminada para que las tareas se distribuyan de manera uniforme entre ambos proveedores de capacidad.

aws ecs put-cluster-capacity-providers \ --cluster MyCluster \ --capacity-providers MyCapacityProvider1 MyCapacityProvider2 \ --default-capacity-provider-strategy capacityProvider=MyCapacityProvider1,weight=1 capacityProvider=MyCapacityProvider2,weight=1

Salida:

{ "cluster": { "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster", "clusterName": "MyCluster", "status": "ACTIVE", "registeredContainerInstancesCount": 0, "runningTasksCount": 0, "pendingTasksCount": 0, "activeServicesCount": 0, "statistics": [], "tags": [], "settings": [ { "name": "containerInsights", "value": "enabled" } ], "capacityProviders": [ "MyCapacityProvider1", "MyCapacityProvider2" ], "defaultCapacityProviderStrategy": [ { "capacityProvider": "MyCapacityProvider1", "weight": 1, "base": 0 }, { "capacityProvider": "MyCapacityProvider2", "weight": 1, "base": 0 } ], "attachments": [ { "id": "0fb0c8f4-6edd-4de1-9b09-17e470ee1918", "type": "as_policy", "status": "ACTIVE", "details": [ { "name": "capacityProviderName", "value": "MyCapacityProvider1" }, { "name": "scalingPolicyName", "value": "ECSManagedAutoScalingPolicy-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" } ] }, { "id": "ae592060-2382-4663-9476-b015c685593c", "type": "as_policy", "status": "ACTIVE", "details": [ { "name": "capacityProviderName", "value": "MyCapacityProvider2" }, { "name": "scalingPolicyName", "value": "ECSManagedAutoScalingPolicy-a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" } ] } ], "attachmentsStatus": "UPDATE_IN_PROGRESS" } }

Para obtener más información, consulte Proveedores de capacidad de clúster en la Guía para ECS desarrolladores de Amazon.

Ejemplo 2: Para eliminar un proveedor de capacidad de un clúster

El siguiente put-cluster-capacity-providers ejemplo elimina un proveedor de capacidad de un clúster. El describe-clusters comando se utiliza para describir los proveedores de capacidad actuales asociados a un clúster. Al eliminar un proveedor de capacidad de un clúster, debe especificar los proveedores de capacidad que desea que permanezcan asociados al clúster, así como la estrategia predeterminada del proveedor de capacidad para asociarlos al clúster. En este ejemplo, el clúster tiene asociados los proveedores de MyCapacityProvider2 capacidad MyCapacityProvider1 y, si desea eliminarlos, debe especificarlo únicamente MyCapacityProvider1 en el comando junto con la estrategia actualizada del proveedor de capacidad predeterminado. MyCapacityProvider2

aws ecs put-cluster-capacity-providers \ --cluster MyCluster \ --capacity-providers MyCapacityProvider1 \ --default-capacity-provider-strategy capacityProvider=MyCapacityProvider1,weight=1,base=0

Salida:

{ "cluster": { "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster", "clusterName": "MyCluster", "status": "ACTIVE", "registeredContainerInstancesCount": 0, "runningTasksCount": 0, "pendingTasksCount": 0, "activeServicesCount": 0, "statistics": [], "tags": [], "settings": [ { "name": "containerInsights", "value": "enabled" } ], "capacityProviders": [ "MyCapacityProvider1" ], "defaultCapacityProviderStrategy": [ "capacityProvider": "MyCapacityProvider1", "weight": 1, "base": 0 ], "attachments": [ { "id": "0fb0c8f4-6edd-4de1-9b09-17e470ee1918", "type": "as_policy", "status": "ACTIVE", "details": [ { "name": "capacityProviderName", "value": "MyCapacityProvider1" }, { "name": "scalingPolicyName", "value": "ECSManagedAutoScalingPolicy-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" } ] }, { "id": "ae592060-2382-4663-9476-b015c685593c", "type": "as_policy", "status": "DELETING", "details": [ { "name": "capacityProviderName", "value": "MyCapacityProvider2" }, { "name": "scalingPolicyName", "value": "ECSManagedAutoScalingPolicy-a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" } ] } ], "attachmentsStatus": "UPDATE_IN_PROGRESS" } }

Para obtener más información, consulte Proveedores de capacidad de clúster en la Guía para ECS desarrolladores de Amazon.

Ejemplo 3: Eliminar todos los proveedores de capacidad de un clúster

El siguiente put-cluster-capacity-providers ejemplo elimina todos los proveedores de capacidad existentes del clúster.

aws ecs put-cluster-capacity-providers \ --cluster MyCluster \ --capacity-providers [] \ --default-capacity-provider-strategy []

Salida:

{ "cluster": { "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster", "clusterName": "MyCluster", "status": "ACTIVE", "registeredContainerInstancesCount": 0, "runningTasksCount": 0, "pendingTasksCount": 0, "activeServicesCount": 0, "statistics": [], "tags": [], "settings": [ { "name": "containerInsights", "value": "enabled" } ], "capacityProviders": [], "defaultCapacityProviderStrategy": [], "attachments": [ { "id": "0fb0c8f4-6edd-4de1-9b09-17e470ee1918", "type": "as_policy", "status": "DELETING", "details": [ { "name": "capacityProviderName", "value": "MyCapacityProvider1" }, { "name": "scalingPolicyName", "value": "ECSManagedAutoScalingPolicy-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" } ] }, { "id": "ae592060-2382-4663-9476-b015c685593c", "type": "as_policy", "status": "DELETING", "details": [ { "name": "capacityProviderName", "value": "MyCapacityProvider2" }, { "name": "scalingPolicyName", "value": "ECSManagedAutoScalingPolicy-a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" } ] } ], "attachmentsStatus": "UPDATE_IN_PROGRESS" } }

Para obtener más información, consulte Proveedores de capacidad de clúster en la Guía para ECS desarrolladores de Amazon.

En el siguiente ejemplo de código se muestra cómo usar register-task-definition.

AWS CLI

Ejemplo 1: Para registrar una definición de tarea con un JSON archivo

El siguiente register-task-definition ejemplo registra una definición de tarea en la familia especificada. Las definiciones de contenedor se guardan en JSON formato en la ubicación del archivo especificada.

aws ecs register-task-definition \ --cli-input-json file://<path_to_json_file>/sleep360.json

Contenidos de sleep360.json:

{ "containerDefinitions": [ { "name": "sleep", "image": "busybox", "cpu": 10, "command": [ "sleep", "360" ], "memory": 10, "essential": true } ], "family": "sleep360" }

Salida:

{ "taskDefinition": { "status": "ACTIVE", "family": "sleep360", "placementConstraints": [], "compatibilities": [ "EXTERNAL", "EC2" ], "volumes": [], "taskDefinitionArn": "arn:aws:ecs:us-east-1:123456789012:task-definition/sleep360:1", "containerDefinitions": [ { "environment": [], "name": "sleep", "mountPoints": [], "image": "busybox", "cpu": 10, "portMappings": [], "command": [ "sleep", "360" ], "memory": 10, "essential": true, "volumesFrom": [] } ], "revision": 1 } }

Para obtener más información, consulte Ejemplos de definiciones de tareas en la Guía para ECS desarrolladores de Amazon.

Ejemplo 2: Para registrar una definición de tarea con un parámetro de JSON cadena

El siguiente register-task-definition ejemplo registra una definición de tarea mediante las definiciones de contenedor proporcionadas como un parámetro de JSON cadena con comillas dobles de escape.

aws ecs register-task-definition \ --family sleep360 \ --container-definitions "[{\"name\":\"sleep\",\"image\":\"busybox\",\"cpu\":10,\"command\":[\"sleep\",\"360\"],\"memory\":10,\"essential\":true}]"

El resultado es idéntico al ejemplo anterior.

Para obtener más información, consulte Creación de una definición de tarea en la Guía para ECS desarrolladores de Amazon.

En el siguiente ejemplo de código se muestra cómo usar run-task.

AWS CLI

Para ejecutar una tarea en el clúster predeterminado

En el siguiente run-task ejemplo, se ejecuta una tarea en el clúster predeterminado y se utiliza un token de cliente.

aws ecs run-task \ --cluster default \ --task-definition sleep360:1 \ --client-token 550e8400-e29b-41d4-a716-446655440000

Salida:

{ "tasks": [ { "attachments": [], "attributes": [ { "name": "ecs.cpu-architecture", "value": "x86_64" } ], "availabilityZone": "us-east-1b", "capacityProviderName": "example-capacity-provider", "clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/default", "containerInstanceArn": "arn:aws:ecs:us-east-1:123456789012:container-instance/default/bc4d2ec611d04bb7bb97e83ceEXAMPLE", "containers": [ { "containerArn": "arn:aws:ecs:us-east-1:123456789012:container/default/d6f51cc5bbc94a47969c92035e9f66f8/75853d2d-711e-458a-8362-0f0aEXAMPLE", "taskArn": "arn:aws:ecs:us-east-1:123456789012:task/default/d6f51cc5bbc94a47969c9203EXAMPLE", "name": "sleep", "image": "busybox", "lastStatus": "PENDING", "networkInterfaces": [], "cpu": "10", "memory": "10" } ], "cpu": "10", "createdAt": "2023-11-21T16:59:34.403000-05:00", "desiredStatus": "RUNNING", "enableExecuteCommand": false, "group": "family:sleep360", "lastStatus": "PENDING", "launchType": "EC2", "memory": "10", "overrides": { "containerOverrides": [ { "name": "sleep" } ], "inferenceAcceleratorOverrides": [] }, "tags": [], "taskArn": "arn:aws:ecs:us-east-1:123456789012:task/default/d6f51cc5bbc94a47969c9203EXAMPLE", "taskDefinitionArn": "arn:aws:ecs:us-east-1:123456789012:task-definition/sleep360:1", "version": 1 } ], "failures": [] }

Para obtener más información, consulte Ejecución de tareas en la Guía para ECS desarrolladores de Amazon.

  • Para API obtener más información, consulte RunTaskla Referencia de AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar start-task.

AWS CLI

Para iniciar una nueva tarea

A continuación, se start-task inicia una tarea con la última revisión de la definición de la sleep360 tarea en la instancia de contenedor especificada en el clúster predeterminado.

aws ecs start-task \ --task-definition sleep360 \ --container-instances 765936fadbdd46b5991a4bd70c2a43d4

Salida:

{ "tasks": [ { "taskArn": "arn:aws:ecs:us-west-2:130757420319:task/default/666fdccc2e2d4b6894dd422f4eeee8f8", "clusterArn": "arn:aws:ecs:us-west-2:130757420319:cluster/default", "taskDefinitionArn": "arn:aws:ecs:us-west-2:130757420319:task-definition/sleep360:3", "containerInstanceArn": "arn:aws:ecs:us-west-2:130757420319:container-instance/default/765936fadbdd46b5991a4bd70c2a43d4", "overrides": { "containerOverrides": [ { "name": "sleep" } ] }, "lastStatus": "PENDING", "desiredStatus": "RUNNING", "cpu": "128", "memory": "128", "containers": [ { "containerArn": "arn:aws:ecs:us-west-2:130757420319:container/75f11ed4-8a3d-4f26-a33b-ad1db9e02d41", "taskArn": "arn:aws:ecs:us-west-2:130757420319:task/default/666fdccc2e2d4b6894dd422f4eeee8f8", "name": "sleep", "lastStatus": "PENDING", "networkInterfaces": [], "cpu": "10", "memory": "10" } ], "version": 1, "createdAt": 1563421494.186, "group": "family:sleep360", "launchType": "EC2", "attachments": [], "tags": [] } ], "failures": [] }
  • Para API obtener más información, consulte StartTaskla Referencia de AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar stop-task.

AWS CLI

Para detener una tarea

Lo siguiente stop-task impide que la tarea especificada se ejecute en el clúster predeterminado.

aws ecs stop-task \ --task 666fdccc2e2d4b6894dd422f4eeee8f8

Salida:

{ "task": { "taskArn": "arn:aws:ecs:us-west-2:130757420319:task/default/666fdccc2e2d4b6894dd422f4eeee8f8", "clusterArn": "arn:aws:ecs:us-west-2:130757420319:cluster/default", "taskDefinitionArn": "arn:aws:ecs:us-west-2:130757420319:task-definition/sleep360:3", "containerInstanceArn": "arn:aws:ecs:us-west-2:130757420319:container-instance/default/765936fadbdd46b5991a4bd70c2a43d4", "overrides": { "containerOverrides": [] }, "lastStatus": "STOPPED", "desiredStatus": "STOPPED", "cpu": "128", "memory": "128", "containers": [], "version": 2, "stoppedReason": "Taskfailedtostart", "stopCode": "TaskFailedToStart", "connectivity": "CONNECTED", "connectivityAt": 1563421494.186, "pullStartedAt": 1563421494.252, "pullStoppedAt": 1563421496.252, "executionStoppedAt": 1563421497, "createdAt": 1563421494.186, "stoppingAt": 1563421497.252, "stoppedAt": 1563421497.252, "group": "family:sleep360", "launchType": "EC2", "attachments": [], "tags": [] } }
  • Para API obtener más información, consulte StopTaskla Referencia de AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar tag-resource.

AWS CLI

Para etiquetar un recurso

En el siguiente tag-resource ejemplo, se agrega una sola etiqueta al recurso especificado.

aws ecs tag-resource \ --resource-arn arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster --tags key=key1,value=value1

Este comando no genera ninguna salida.

Para agregar varias etiquetas a un recurso

En el siguiente tag-resource ejemplo, se agregan varias etiquetas al recurso especificado.

aws ecs tag-resource \ --resource-arn arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster \ --tags key=key1,value=value1 key=key2,value=value2 key=key3,value=value3

Este comando no genera ninguna salida.

  • Para API obtener más información, consulte TagResourcela Referencia de AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar untag-resource.

AWS CLI

Para eliminar una etiqueta de un recurso

En el siguiente untag-resource ejemplo, se quitan las etiquetas de la lista del recurso especificado.

aws ecs untag-resource \ --resource-arn arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster \ --tag-keys key1,key2

Este comando no genera ninguna salida.

  • Para API obtener más información, consulte UntagResourcela Referencia de AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar update-cluster-settings.

AWS CLI

Para modificar la configuración del clúster

El siguiente update-cluster-settings ejemplo habilita CloudWatch Container Insights para el default clúster.

aws ecs update-cluster-settings \ --cluster default \ --settings name=containerInsights,value=enabled

Salida:

{ "cluster": { "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster", "clusterName": "default", "status": "ACTIVE", "registeredContainerInstancesCount": 0, "runningTasksCount": 0, "pendingTasksCount": 0, "activeServicesCount": 0, "statistics": [], "tags": [], "settings": [ { "name": "containerInsights", "value": "enabled" } ] } }

Para obtener más información, consulte Modificación de la configuración de la cuenta en la Guía para ECS desarrolladores de Amazon.

En el siguiente ejemplo de código se muestra cómo usar update-container-agent.

AWS CLI

Para actualizar el agente de contenedor en una instancia de ECS contenedor de Amazon

En el siguiente update-container-agent ejemplo, se actualiza el agente contenedor en la instancia contenedora especificada del clúster predeterminado.

aws ecs update-container-agent --cluster default --container-instance a1b2c3d4-5678-90ab-cdef-11111EXAMPLE

Salida:

{ "containerInstance": { "status": "ACTIVE", ... "agentUpdateStatus": "PENDING", "versionInfo": { "agentVersion": "1.0.0", "agentHash": "4023248", "dockerVersion": "DockerVersion: 1.5.0" } } }

Para obtener más información, consulta Actualización del Amazon ECS Container Agent en la Guía para ECS desarrolladores de Amazon.

  • Para API obtener más información, consulte UpdateContainerAgentla Referencia de AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar update-container-instances-state.

AWS CLI

Para actualizar el estado de una instancia contenedora

A continuación, se update-container-instances-state actualiza el estado de la instancia contenedora especificada, en la DRAINING que se eliminará del clúster en el que está registrada.

aws ecs update-container-instances-state \ --container-instances 765936fadbdd46b5991a4bd70c2a43d4 \ --status DRAINING

Salida:

{ "containerInstances": [ { "containerInstanceArn": "arn:aws:ecs:us-west-2:130757420319:container-instance/default/765936fadbdd46b5991a4bd70c2a43d4", "ec2InstanceId": "i-013d87ffbb4d513bf", "version": 4390, "versionInfo": { "agentVersion": "1.29.0", "agentHash": "a190a73f", "dockerVersion": "DockerVersion:18.06.1-ce" }, "remainingResources": [ { "name": "CPU", "type": "INTEGER", "doubleValue": 0, "longValue": 0, "integerValue": 1536 }, { "name": "MEMORY", "type": "INTEGER", "doubleValue": 0, "longValue": 0, "integerValue": 2681 }, { "name": "PORTS", "type": "STRINGSET", "doubleValue": 0, "longValue": 0, "integerValue": 0, "stringSetValue": [ "22", "2376", "2375", "51678", "51679" ] }, { "name": "PORTS_UDP", "type": "STRINGSET", "doubleValue": 0, "longValue": 0, "integerValue": 0, "stringSetValue": [] } ], "registeredResources": [ { "name": "CPU", "type": "INTEGER", "doubleValue": 0, "longValue": 0, "integerValue": 2048 }, { "name": "MEMORY", "type": "INTEGER", "doubleValue": 0, "longValue": 0, "integerValue": 3705 }, { "name": "PORTS", "type": "STRINGSET", "doubleValue": 0, "longValue": 0, "integerValue": 0, "stringSetValue": [ "22", "2376", "2375", "51678", "51679" ] }, { "name": "PORTS_UDP", "type": "STRINGSET", "doubleValue": 0, "longValue": 0, "integerValue": 0, "stringSetValue": [] } ], "status": "DRAINING", "agentConnected": true, "runningTasksCount": 2, "pendingTasksCount": 0, "attributes": [ { "name": "ecs.capability.secrets.asm.environment-variables" }, { "name": "ecs.capability.branch-cni-plugin-version", "value": "e0703516-" }, { "name": "ecs.ami-id", "value": "ami-00e0090ac21971297" }, { "name": "ecs.capability.secrets.asm.bootstrap.log-driver" }, { "name": "com.amazonaws.ecs.capability.logging-driver.none" }, { "name": "ecs.capability.ecr-endpoint" }, { "name": "ecs.capability.docker-plugin.local" }, { "name": "ecs.capability.task-cpu-mem-limit" }, { "name": "ecs.capability.secrets.ssm.bootstrap.log-driver" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.30" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.31" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.32" }, { "name": "ecs.availability-zone", "value": "us-west-2c" }, { "name": "ecs.capability.aws-appmesh" }, { "name": "com.amazonaws.ecs.capability.logging-driver.awslogs" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.24" }, { "name": "ecs.capability.task-eni-trunking" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.25" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.26" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.27" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.28" }, { "name": "com.amazonaws.ecs.capability.privileged-container" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.29" }, { "name": "ecs.cpu-architecture", "value": "x86_64" }, { "name": "com.amazonaws.ecs.capability.ecr-auth" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.20" }, { "name": "ecs.os-type", "value": "linux" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.21" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.22" }, { "name": "ecs.capability.task-eia" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.23" }, { "name": "ecs.capability.private-registry-authentication.secretsmanager" }, { "name": "com.amazonaws.ecs.capability.logging-driver.syslog" }, { "name": "com.amazonaws.ecs.capability.logging-driver.json-file" }, { "name": "ecs.capability.execution-role-awslogs" }, { "name": "ecs.vpc-id", "value": "vpc-1234" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.17" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.18" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.19" }, { "name": "ecs.capability.task-eni" }, { "name": "ecs.capability.execution-role-ecr-pull" }, { "name": "ecs.capability.container-health-check" }, { "name": "ecs.subnet-id", "value": "subnet-1234" }, { "name": "ecs.instance-type", "value": "c5.large" }, { "name": "com.amazonaws.ecs.capability.task-iam-role-network-host" }, { "name": "ecs.capability.container-ordering" }, { "name": "ecs.capability.cni-plugin-version", "value": "91ccefc8-2019.06.0" }, { "name": "ecs.capability.pid-ipc-namespace-sharing" }, { "name": "ecs.capability.secrets.ssm.environment-variables" }, { "name": "com.amazonaws.ecs.capability.task-iam-role" } ], "registeredAt": 1560788724.507, "attachments": [], "tags": [] } ], "failures": [] }

En el siguiente ejemplo de código se muestra cómo usar update-service-primary-task-set.

AWS CLI

Para actualizar el conjunto de tareas principal de un servicio

En el siguiente update-service-primary-task-set ejemplo, se actualiza el conjunto de tareas principal del servicio especificado.

aws ecs update-service-primary-task-set \ --cluster MyCluster \ --service MyService \ --primary-task-set arn:aws:ecs:us-west-2:123456789012:task-set/MyCluster/MyService/ecs-svc/1234567890123456789

Salida:

{ "taskSet": { "id": "ecs-svc/1234567890123456789", "taskSetArn": "arn:aws:ecs:us-west-2:123456789012:task-set/MyCluster/MyService/ecs-svc/1234567890123456789", "status": "PRIMARY", "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/sample-fargate:2", "computedDesiredCount": 1, "pendingCount": 0, "runningCount": 0, "createdAt": 1557128360.711, "updatedAt": 1557129412.653, "launchType": "EC2", "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "subnet-12344321" ], "securityGroups": [ "sg-12344312" ], "assignPublicIp": "DISABLED" } }, "loadBalancers": [], "serviceRegistries": [], "scale": { "value": 50.0, "unit": "PERCENT" }, "stabilityStatus": "STABILIZING", "stabilityStatusAt": 1557129279.914 } }

En el siguiente ejemplo de código se muestra cómo usar update-service.

AWS CLI

Ejemplo 1: Cambio de la definición de tarea utilizada en un servicio

En el siguiente ejemplo de update-service se actualiza el servicio my-http-service para usar la definición de la tarea amazon-ecs-sample.

aws ecs update-service --service my-http-service --task-definition amazon-ecs-sample

Ejemplo 2: Cambio del número de tareas de un servicio

En el siguiente ejemplo de update-service se actualiza el recuento de tareas deseado del servicio my-http-service a 3.

aws ecs update-service --service my-http-service --desired-count 3

Para obtener más información, consulta Actualización de un servicio en la Guía para ECS desarrolladores de Amazon.

  • Para API obtener más información, consulte UpdateServicela Referencia de AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar update-task-set.

AWS CLI

Para actualizar un conjunto de tareas

El siguiente update-task-set ejemplo actualiza un conjunto de tareas para ajustar la escala.

aws ecs update-task-set \ --cluster MyCluster \ --service MyService \ --task-set arn:aws:ecs:us-west-2:123456789012:task-set/MyCluster/MyService/ecs-svc/1234567890123456789 \ --scale value=50,unit=PERCENT

Salida:

{ "taskSet": { "id": "ecs-svc/1234567890123456789", "taskSetArn": "arn:aws:ecs:us-west-2:123456789012:task-set/MyCluster/MyService/ecs-svc/1234567890123456789", "status": "ACTIVE", "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/sample-fargate:2", "computedDesiredCount": 0, "pendingCount": 0, "runningCount": 0, "createdAt": 1557128360.711, "updatedAt": 1557129279.914, "launchType": "EC2", "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "subnet-12344321" ], "securityGroups": [ "sg-12344321" ], "assignPublicIp": "DISABLED" } }, "loadBalancers": [], "serviceRegistries": [], "scale": { "value": 50.0, "unit": "PERCENT" }, "stabilityStatus": "STABILIZING", "stabilityStatusAt": 1557129279.914 } }
  • Para API obtener más información, consulte UpdateTaskSetla Referencia de AWS CLI comandos.