ECSExemplos da Amazon usando AWS CLI - AWS SDKExemplos de código

Há mais AWS SDK exemplos disponíveis no GitHub repositório AWS Doc SDK Examples.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

ECSExemplos da Amazon usando AWS CLI

Os exemplos de código a seguir mostram como realizar ações e implementar cenários comuns usando o AWS Command Line Interface com a AmazonECS.

Ações são trechos de código de programas maiores e devem ser executadas em contexto. Embora as ações mostrem como chamar funções de serviço individuais, é possível ver as ações no contexto em seus cenários relacionados.

Cada exemplo inclui um link para o código-fonte completo, onde você pode encontrar instruções sobre como configurar e executar o código no contexto.

Tópicos

Ações

O código de exemplo a seguir mostra como usar create-capacity-provider.

AWS CLI

Para criar um provedor de capacidade

O create-capacity-provider exemplo a seguir cria um provedor de capacidade que usa um grupo de Auto Scaling chamado MyASG, tem o escalonamento gerenciado e a proteção gerenciada de terminação ativada. Essa configuração é usada para o ECS escalonamento automático de clusters da 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"

Saída:

{ "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 obter mais informações, consulte Amazon ECS cluster auto scaling no Amazon ECS Developer Guide.

O código de exemplo a seguir mostra como usar create-cluster.

AWS CLI

Exemplo 1: como criar um cluster

O exemplo de create-cluster a seguir cria um cluster.

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

Saída:

{ "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 obter mais informações, consulte Criação de um cluster no Amazon ECS Developer Guide.

Exemplo 2: como criar um cluster usando provedores de capacidade

O exemplo de create-cluster a seguir cria um cluster e associa dois provedores de capacidade existentes a ele. O comando create-capacity-provider é usado para criar um provedor de capacidade. Embora recomendado, não é necessário especificar uma estratégia de provedor de capacidade. Neste exemplo, criamos um cluster chamado MyCluster e associamos os provedores de capacidade MyCapacityProvider1 e MyCapacityProvider2 a ele. Uma estratégia de provedor de capacidade padrão é especificada e distribui a tarefa igualmente em ambos os provedores de capacidade.

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

Saída:

{ "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 obter mais informações, consulte Provedores de capacidade de cluster no Amazon ECS Developer Guide.

Exemplo 3: como criar um cluster com várias tags

O exemplo create-cluster a seguir cria um cluster com várias tags. Para obter mais informações sobre como adicionar tags usando a sintaxe abreviada, consulte Usando a sintaxe abreviada com a interface de linha de AWS comando no Guia do usuário.AWS CLI

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

Saída:

{ "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 obter mais informações, consulte Criação de um cluster no Amazon ECS Developer Guide.

  • Para API obter detalhes, consulte CreateClusterna Referência de AWS CLI Comandos.

O código de exemplo a seguir mostra como usar create-service.

AWS CLI

Exemplo 1: como criar um serviço com uma tarefa do Fargate

O exemplo de create-service a seguir demonstra como criar um serviço usando uma tarefa do 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

Saída:

{ "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" } }

Exemplo 2: Para criar um serviço usando o tipo de EC2 inicialização

O create-service exemplo a seguir mostra como criar um serviço chamado ecs-simple-service com uma tarefa que usa o tipo de EC2 inicialização. O serviço usa a definição de tarefa sleep360 e mantem uma instanciação da tarefa.

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

Saída:

{ "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" } }

Exemplo 3: como criar um serviço que usa um controlador de implantação externo

O exemplo de create-service a seguir cria um serviço que usa um controlador de implantação externo.

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

Saída:

{ "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" } }

Exemplo 4: como criar um serviço por trás de um balanceador de carga

O exemplo de create-service a seguir mostra como criar um serviço que fique por trás de um balanceador de carga. É necessário ter um balanceador de carga configurado na mesma região da instância de contêiner. Este exemplo usa a --cli-input-json opção e um arquivo JSON de entrada chamado ecs-simple-service-elb.json com o seguinte conteúdo:

{ "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

Saída:

{ "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 obter mais informações, consulte Criação de um serviço no Amazon ECS Developer Guide.

  • Para API obter detalhes, consulte CreateServicena Referência de AWS CLI Comandos.

O código de exemplo a seguir mostra como usar create-task-set.

AWS CLI

Para criar um conjunto de tarefas

O create-task-set exemplo a seguir cria um conjunto de tarefas em um serviço que usa um controlador de implantação externo.

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

Saída:

{ "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 obter detalhes, consulte CreateTaskSetna Referência de AWS CLI Comandos.

O código de exemplo a seguir mostra como usar delete-account-setting.

AWS CLI

Para excluir as configurações da conta de um IAM usuário ou IAM função específica

O exemplo a seguir delete-account-setting exclui as configurações da conta para o IAM usuário ou IAM função específica.

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

Saída:

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

Para obter mais informações, consulte Amazon Resource Names (ARNs) e IDs no Amazon ECS Developer Guide.

O código de exemplo a seguir mostra como usar delete-attributes.

AWS CLI

Para excluir um ou mais atributos personalizados de um ECS recurso da Amazon

O seguinte delete-attributes exclui um atributo com o nome stack de uma instância de contêiner.

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

Saída:

{ "attributes": [ { "name": "stack", "targetId": "arn:aws:ecs:us-west-2:130757420319:container-instance/1c3be8ed-df30-47b4-8f1e-6e68ebd01f34", "value": "production" } ] }
  • Para API obter detalhes, consulte DeleteAttributesna Referência de AWS CLI Comandos.

O código de exemplo a seguir mostra como usar delete-capacity-provider.

AWS CLI

Exemplo 1: Para excluir um provedor de capacidade usando o Amazon Resource Name (ARN)

O delete-capacity-provider exemplo a seguir exclui um provedor de capacidade especificando o Amazon Resource Name (ARN) do provedor de capacidade. ARNAssim como o status da exclusão do provedor de capacidade, podem ser recuperados usando o describe-capacity-providers comando.

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

Saída:

{ "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 obter mais informações, consulte Provedores de capacidade de cluster no Amazon ECS Developer Guide.

Exemplo 2: Para excluir um provedor de capacidade usando o nome

O delete-capacity-provider exemplo a seguir exclui um provedor de capacidade especificando o nome abreviado do provedor de capacidade. O nome curto e o status da exclusão do provedor de capacidade podem ser recuperados usando o describe-capacity-providers comando.

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

Saída:

{ "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 obter mais informações, consulte Provedores de capacidade de cluster no Amazon ECS Developer Guide.

O código de exemplo a seguir mostra como usar delete-cluster.

AWS CLI

Como excluir um cluster vazio

O exemplo de delete-cluster a seguir exclui o cluster vazio especificado.

aws ecs delete-cluster --cluster MyCluster

Saída:

{ "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 obter mais informações, consulte Excluindo um cluster no Amazon ECS Developer Guide.

  • Para API obter detalhes, consulte DeleteClusterna Referência de AWS CLI Comandos.

O código de exemplo a seguir mostra como usar delete-service.

AWS CLI

Como excluir um serviço

O exemplo de ecs delete-service a seguir exclui o serviço especificado de um cluster. Inclua o parâmetro --force para excluir um serviço mesmo que ele não tenha sido reduzido a zero tarefas.

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

Para obter mais informações, consulte Excluindo um serviço no Amazon ECS Developer Guide.

  • Para API obter detalhes, consulte DeleteServicena Referência de AWS CLI Comandos.

O código de exemplo a seguir mostra como usar delete-task-definitions.

AWS CLI

Para excluir uma definição de tarefa

O delete-task-definitions exemplo a seguir exclui uma definição de INACTIVE tarefa.

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

Saída:

{ "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 obter mais informações, consulte Amazon ECS Task Definitions no Amazon ECS Developer Guide.

O código de exemplo a seguir mostra como usar delete-task-set.

AWS CLI

Para excluir um conjunto de tarefas

O delete-task-set exemplo a seguir mostra como excluir um conjunto de tarefas. Você pode incluir o --force parâmetro para excluir um conjunto de tarefas mesmo que ele não tenha sido escalado para zero.

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

Saída:

{ "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 obter detalhes, consulte DeleteTaskSetna Referência de AWS CLI Comandos.

O código de exemplo a seguir mostra como usar deregister-container-instance.

AWS CLI

Para cancelar o registro de uma instância de contêiner de um cluster

O deregister-container-instance exemplo a seguir cancela o registro de uma instância de contêiner do cluster especificado. Se ainda houver tarefas em execução na instância do contêiner, você deverá interromper essas tarefas antes de cancelar o registro ou usar a opção. --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

Saída:

{ "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 obter mais informações, consulte Cancelar o registro de uma instância de contêiner no Guia do ECSdesenvolvedor.

O código de exemplo a seguir mostra como usar deregister-task-definition.

AWS CLI

Para cancelar o registro de uma definição de tarefa

O deregister-task-definition exemplo a seguir cancela o registro da primeira revisão da definição da curler tarefa na sua região padrão.

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

Observe que, na saída resultante, o status da definição da tarefa mostraINACTIVE:

{ "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 obter mais informações, consulte Amazon ECS Task Definitions no Amazon ECS Developer Guide.

O código de exemplo a seguir mostra como usar describe-capacity-providers.

AWS CLI

Exemplo 1: Para descrever todos os fornecedores de capacidade

O describe-capacity-providers exemplo a seguir recupera detalhes sobre todos os provedores de capacidade.

aws ecs describe-capacity-providers

Saída:

{ "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 obter mais informações, consulte Provedores de capacidade de cluster no Amazon ECS Developer Guide.

Exemplo 2: Para descrever um fornecedor de capacidade específico

O describe-capacity-providers exemplo a seguir recupera detalhes sobre um provedor de capacidade específico. O uso do --include TAGS parâmetro adicionará as tags associadas ao provedor de capacidade à saída.

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

Saída:

{ "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 obter mais informações, consulte Provedores de capacidade de cluster no Amazon ECS Developer Guide.

O código de exemplo a seguir mostra como usar describe-clusters.

AWS CLI

Exemplo 1: como descrever um cluster

O exemplo de describe-clusters a seguir recupera detalhes do cluster especificado.

aws ecs describe-clusters \ --cluster default

Saída:

{ "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 obter mais informações, consulte Amazon ECS Clusters no Amazon ECS Developer Guide.

Exemplo 2: como descrever um cluster com a opção de anexo

O describe-clusters exemplo a seguir especifica a ATTACHMENTS opção. Ele recupera detalhes sobre o cluster especificado e uma lista dos recursos anexados ao cluster no formato de anexos. Ao usar um provedor de capacidade com um cluster, os recursos, sejam AutoScaling planos ou políticas de escalabilidade, serão representados como asp ou as_policy. ATTACHMENTS

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

Saída:

{ "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 obter mais informações, consulte Amazon ECS Clusters no Amazon ECS Developer Guide.

  • Para API obter detalhes, consulte DescribeClustersna Referência de AWS CLI Comandos.

O código de exemplo a seguir mostra como usar describe-container-instances.

AWS CLI

Para descrever a instância do contêiner

O describe-container-instances exemplo a seguir recupera detalhes de uma instância de contêiner no update cluster, usando a instância de contêiner UUID como identificador.

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

Saída:

{ "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 obter mais informações, consulte Amazon ECS Container Instances no Amazon ECS Developer Guide.

O código de exemplo a seguir mostra como usar describe-services.

AWS CLI

Para descrever um serviço

O describe-services exemplo a seguir recupera detalhes do my-http-service serviço no cluster padrão.

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

Saída:

{ "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 obter mais informações, consulte Serviços no Amazon ECS Developer Guide.

  • Para API obter detalhes, consulte DescribeServicesna Referência de AWS CLI Comandos.

O código de exemplo a seguir mostra como usar describe-task-definition.

AWS CLI

Para descrever uma definição de tarefa

O describe-task-definition exemplo a seguir recupera os detalhes de uma definição de tarefa.

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

Saída:

{ "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 obter mais informações, consulte Amazon ECS Task Definitions no Amazon ECS Developer Guide.

O código de exemplo a seguir mostra como usar describe-task-sets.

AWS CLI

Para descrever um conjunto de tarefas

O describe-task-sets exemplo a seguir descreve um conjunto de tarefas em um serviço que usa um implantador 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

Saída:

{ "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 obter detalhes, consulte DescribeTaskSetsna Referência de AWS CLI Comandos.

O código de exemplo a seguir mostra como usar describe-tasks.

AWS CLI

Exemplo 1: como descrever uma única tarefa

O exemplo de describe-tasks a seguir recupera os detalhes de uma tarefa em um cluster. Você pode especificar a tarefa usando a ID ou a totalidade ARN da tarefa. Este exemplo usa a totalidade ARN da tarefa.

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

Saída:

{ "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 obter mais informações, consulte Amazon ECS Task Definitions no Amazon ECS Developer Guide.

Exemplo 2: como descrever várias tarefas

O exemplo de describe-tasks a seguir recupera os detalhes de várias tarefas de um cluster. Você pode especificar a tarefa usando a ID ou a totalidade ARN da tarefa. Este exemplo usa todas IDs as tarefas.

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

Saída:

{ "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 obter mais informações, consulte Amazon ECS Task Definitions no Amazon ECS Developer Guide.

  • Para API obter detalhes, consulte DescribeTasksna Referência de AWS CLI Comandos.

O código de exemplo a seguir mostra como usar execute-command.

AWS CLI

Para executar um interactive /bin/sh comando

O execute-command exemplo a seguir executa um interactive /bin/sh comando em um contêiner nomeado MyContainer para uma tarefa com um id 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 não produz saída.

Para obter mais informações, consulte Usando o Amazon ECS Exec para depuração no Amazon Developer Guide. ECS

  • Para API obter detalhes, consulte ExecuteCommandna Referência de AWS CLI Comandos.

O código de exemplo a seguir mostra como usar list-account-settings.

AWS CLI

Exemplo 1: Para ver as configurações de conta de uma conta

O list-account-settings exemplo a seguir exibe as configurações efetivas da conta.

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

Saída:

{ "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" } ] }

Exemplo 2: Para visualizar as configurações da conta de um IAM usuário ou IAM função específica

O list-account-settings exemplo a seguir exibe as configurações da conta para o IAM usuário ou IAM função especificada.

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

Saída:

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

Para obter mais informações, consulte Amazon Resource Names (ARNs) e IDs no Amazon ECS Developer Guide.

O código de exemplo a seguir mostra como usar list-attributes.

AWS CLI

Para listar as instâncias do contêiner que contêm um atributo específico

O exemplo a seguir lista os atributos das instâncias de contêiner que têm o stack=production atributo no cluster padrão.

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

Saída:

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

Para obter mais informações, consulte Configuração do Amazon ECS Container Agent no Amazon ECS Developer Guide.

  • Para API obter detalhes, consulte ListAttributesna Referência de AWS CLI Comandos.

O código de exemplo a seguir mostra como usar list-clusters.

AWS CLI

Como listar os clusters disponíveis

O exemplo de list-clusters a seguir lista todos os clusters disponíveis.

aws ecs list-clusters

Saída:

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

Para obter mais informações, consulte Amazon ECS Clusters no Amazon ECS Developer Guide.

  • Para API obter detalhes, consulte ListClustersna Referência de AWS CLI Comandos.

O código de exemplo a seguir mostra como usar list-container-instances.

AWS CLI

Para listar as instâncias do contêiner em um cluster

O list-container-instances exemplo a seguir lista todas as instâncias de contêiner disponíveis em um cluster.

aws ecs list-container-instances --cluster MyCluster

Saída:

{ "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 obter mais informações, consulte Amazon ECS Container Instances no Amazon ECS Developer Guide.

O código de exemplo a seguir mostra como usar list-services-by-namespace.

AWS CLI

Para listar os serviços em um namespace

O list-services-by-namespace exemplo a seguir lista todos os serviços configurados para o namespace especificado em sua região padrão.

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

Saída:

{ "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 obter mais informações, consulte Service Connect no Amazon ECS Developer Guide.

O código de exemplo a seguir mostra como usar list-services.

AWS CLI

Como listar os serviços em um cluster

O exemplo de list-services a seguir mostra como listar os serviços em execução em um cluster.

aws ecs list-services --cluster MyCluster

Saída:

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

Para obter mais informações, consulte Serviços no Amazon ECS Developer Guide.

  • Para API obter detalhes, consulte ListServicesna Referência de AWS CLI Comandos.

O código de exemplo a seguir mostra como usar list-tags-for-resource.

AWS CLI

Para listar as tags de um recurso

O list-tags-for-resource exemplo a seguir lista as tags de um cluster específico.

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

Saída:

{ "tags": [ { "key": "key1", "value": "value1" }, { "key": "key2", "value": "value2" }, { "key": "key3", "value": "value3" } ] }

O código de exemplo a seguir mostra como usar list-task-definition-families.

AWS CLI

Exemplo 1: Para listar as famílias de definição de tarefas registradas

O list-task-definition-families exemplo a seguir lista todas as famílias de definição de tarefas registradas.

aws ecs list-task-definition-families

Saída:

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

Exemplo 2: Para filtrar as famílias de definição de tarefas registradas

O list-task-definition-families exemplo a seguir lista as revisões de definição de tarefas que começam com “hpcc”.

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

Saída:

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

Para obter mais informações, consulte Parâmetros de definição de tarefas no Amazon ECS Developer Guide.

O código de exemplo a seguir mostra como usar list-task-definitions.

AWS CLI

Exemplo 1: Para listar as definições de tarefas registradas

O list-task-definitions exemplo a seguir lista todas as definições de tarefas registradas.

aws ecs list-task-definitions

Saída:

{ "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" ] }

Exemplo 2: Para listar as definições de tarefas registradas em uma família

O list-task-definitions exemplo a seguir lista as revisões da definição de tarefas de uma família especificada.

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

Saída:

{ "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 obter mais informações, consulte Amazon ECS Task Definitions no Amazon ECS Developer Guide.

O código de exemplo a seguir mostra como usar list-tasks.

AWS CLI

Exemplo 1: como listar as tarefas em um cluster

O exemplo de list-tasks a seguir lista todas as tarefas de um cluster.

aws ecs list-tasks --cluster default

Saída:

{ "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" ] }

Exemplo 2: como listar as tarefas de uma instância de contêiner específica

O list-tasks exemplo a seguir lista as tarefas em uma instância de contêiner, usando a instância de contêiner UUID como filtro.

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

Saída:

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

Para obter mais informações, consulte Amazon ECS Task Definitions no Amazon ECS Developer Guide.

  • Para API obter detalhes, consulte ListTasksna Referência de AWS CLI Comandos.

O código de exemplo a seguir mostra como usar put-account-setting-default.

AWS CLI

Para modificar as configurações padrão da conta

O put-account-setting-default exemplo a seguir modifica a configuração padrão da conta para todos os IAM usuários ou funções em sua conta. Essas alterações se aplicam a toda a AWS conta, a menos que um IAM usuário ou função substitua explicitamente essas configurações por si mesmos.

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

Saída:

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

Para obter mais informações, consulte Amazon Resource Names (ARNs) e IDs no Amazon ECS Developer Guide.

O código de exemplo a seguir mostra como usar put-account-setting.

AWS CLI

Para modificar a configuração da conta da sua conta de IAM usuário

O put-account-setting exemplo a seguir ativa a configuração da serviceLongArnFormat conta para sua conta de IAM usuário.

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

Saída:

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

Para obter mais informações, consulte Modificação das configurações da conta no Amazon ECS Developer Guide.

  • Para API obter detalhes, consulte PutAccountSettingna Referência de AWS CLI Comandos.

O código de exemplo a seguir mostra como usar put-account-settings.

AWS CLI

Para modificar as configurações da conta de um IAM usuário ou IAM função

O put-account-setting exemplo a seguir modifica as configurações da conta para o IAM usuário ou IAM função especificada.

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

Saída:

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

O código de exemplo a seguir mostra como usar put-attributes.

AWS CLI

Para criar um atributo e associá-lo a um ECS recurso da Amazon

O seguinte put-attributes aplica um atributo com o nome stack e a produção de valor a uma instância de contêiner.

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

Saída:

{ "attributes": [ { "name": "stack", "targetId": "arn:aws:ecs:us-west-2:130757420319:container-instance/1c3be8ed-df30-47b4-8f1e-6e68ebd01f34", "value": "production" } ] }
  • Para API obter detalhes, consulte PutAttributesna Referência de AWS CLI Comandos.

O código de exemplo a seguir mostra como usar put-cluster-capacity-providers.

AWS CLI

Exemplo 1: Para adicionar um provedor de capacidade existente a um cluster

O put-cluster-capacity-providers exemplo a seguir adiciona um provedor de capacidade existente a um cluster. O comando create-capacity-provider é usado para criar um provedor de capacidade. O describe-clusters comando é usado para descrever os provedores de capacidade atuais e a estratégia padrão do provedor de capacidade associada a um cluster. Ao adicionar um novo provedor de capacidade a um cluster, você deve especificar todos os provedores de capacidade existentes, além do novo provedor de capacidade que você deseja associar ao cluster. Você também deve especificar a estratégia padrão do provedor de capacidade a ser associada ao cluster. Neste exemplo, o MyCluster cluster tem o provedor de MyCapacityProvider1 capacidade associado a ele e você deseja adicionar o provedor de MyCapacityProvider2 capacidade e incluí-lo na estratégia padrão do provedor de capacidade para que as tarefas sejam distribuídas uniformemente entre os dois provedores de capacidade.

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

Saída:

{ "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 obter mais informações, consulte Provedores de capacidade de cluster no Amazon ECS Developer Guide.

Exemplo 2: Para remover um provedor de capacidade de um cluster

O put-cluster-capacity-providers exemplo a seguir remove um provedor de capacidade de um cluster. O describe-clusters comando é usado para descrever os provedores de capacidade atuais associados a um cluster. Ao remover um provedor de capacidade de um cluster, você deve especificar os provedores de capacidade que deseja que permaneçam associados ao cluster, bem como a estratégia padrão do provedor de capacidade a ser associada ao cluster. Neste exemplo, o cluster tem os provedores de MyCapacityProvider2 capacidade MyCapacityProvider1 e associados a ele e você deseja remover o provedor de MyCapacityProvider2 capacidade, então você especifica somente MyCapacityProvider1 no comando junto com a estratégia atualizada do provedor de capacidade padrão.

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

Saída:

{ "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 obter mais informações, consulte Provedores de capacidade de cluster no Amazon ECS Developer Guide.

Exemplo 3: Para remover todos os provedores de capacidade de um cluster

O put-cluster-capacity-providers exemplo a seguir remove todos os provedores de capacidade existentes do cluster.

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

Saída:

{ "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 obter mais informações, consulte Provedores de capacidade de cluster no Amazon ECS Developer Guide.

O código de exemplo a seguir mostra como usar register-task-definition.

AWS CLI

Exemplo 1: Para registrar uma definição de tarefa com um JSON arquivo

O register-task-definition exemplo a seguir registra uma definição de tarefa na família especificada. As definições do contêiner são salvas em JSON formato no local do arquivo especificado.

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

Conteúdo de sleep360.json:

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

Saída:

{ "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 obter mais informações, consulte Exemplos de definições de tarefas no Amazon ECS Developer Guide.

Exemplo 2: Para registrar uma definição de tarefa com um parâmetro de JSON string

O register-task-definition exemplo a seguir registra uma definição de tarefa usando definições de contêiner fornecidas como um parâmetro de JSON string com aspas duplas de escape.

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

A saída é idêntica à do exemplo anterior.

Para obter mais informações, consulte Criação de uma definição de tarefa no Amazon ECS Developer Guide.

O código de exemplo a seguir mostra como usar run-task.

AWS CLI

Para executar uma tarefa em seu cluster padrão

O run-task exemplo a seguir executa uma tarefa no cluster padrão e usa um token de cliente.

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

Saída:

{ "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 obter mais informações, consulte Executando tarefas no Amazon ECS Developer Guide.

  • Para API obter detalhes, consulte RunTaskna Referência de AWS CLI Comandos.

O código de exemplo a seguir mostra como usar start-task.

AWS CLI

Para iniciar uma nova tarefa

O seguinte start-task inicia uma tarefa usando a revisão mais recente da definição da sleep360 tarefa na instância de contêiner especificada no cluster padrão.

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

Saída:

{ "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 obter detalhes, consulte StartTaskna Referência de AWS CLI Comandos.

O código de exemplo a seguir mostra como usar stop-task.

AWS CLI

Para interromper uma tarefa

O seguinte stop-task impede que a tarefa especificada seja executada no cluster padrão.

aws ecs stop-task \ --task 666fdccc2e2d4b6894dd422f4eeee8f8

Saída:

{ "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 obter detalhes, consulte StopTaskna Referência de AWS CLI Comandos.

O código de exemplo a seguir mostra como usar tag-resource.

AWS CLI

Para marcar um recurso

O tag-resource exemplo a seguir adiciona uma única tag ao recurso especificado.

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

Este comando não produz saída.

Para adicionar várias tags a um recurso

O tag-resource exemplo a seguir adiciona várias tags ao 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 não produz saída.

  • Para API obter detalhes, consulte TagResourcena Referência de AWS CLI Comandos.

O código de exemplo a seguir mostra como usar untag-resource.

AWS CLI

Para remover uma tag de um recurso

O untag-resource exemplo a seguir remove as tags listadas do recurso especificado.

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

Este comando não produz saída.

  • Para API obter detalhes, consulte UntagResourcena Referência de AWS CLI Comandos.

O código de exemplo a seguir mostra como usar update-cluster-settings.

AWS CLI

Para modificar as configurações do seu cluster

O update-cluster-settings exemplo a seguir ativa o CloudWatch Container Insights para o default cluster.

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

Saída:

{ "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 obter mais informações, consulte Modificação das configurações da conta no Amazon ECS Developer Guide.

O código de exemplo a seguir mostra como usar update-container-agent.

AWS CLI

Para atualizar o agente de contêiner em uma instância de ECS contêiner da Amazon

O update-container-agent exemplo a seguir atualiza o agente de contêiner na instância de contêiner especificada no cluster padrão.

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

Saída:

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

Para obter mais informações, consulte Atualização do Amazon ECS Container Agent no Amazon ECS Developer Guide.

O código de exemplo a seguir mostra como usar update-container-instances-state.

AWS CLI

Para atualizar o estado de uma instância de contêiner

O seguinte update-container-instances-state atualiza o estado da instância de contêiner especificada para a DRAINING qual a removerá do cluster em que está registrada.

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

Saída:

{ "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": [] }

O código de exemplo a seguir mostra como usar update-service-primary-task-set.

AWS CLI

Para atualizar o conjunto de tarefas principal de um serviço

O update-service-primary-task-set exemplo a seguir atualiza o conjunto de tarefas principal para o serviço 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

Saída:

{ "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 } }

O código de exemplo a seguir mostra como usar update-service.

AWS CLI

Exemplo 1: como alterar a definição de tarefa usada em um serviço

O exemplo de update-service a seguir atualiza o serviço my-http-service para usar a definição de tarefa amazon-ecs-sample.

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

Exemplo 2: Para alterar o número de tarefas em um serviço

O exemplo de update-service a seguir atualiza a contagem de tarefas desejada do serviço my-http-service para 3.

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

Para obter mais informações, consulte Atualização de um serviço no Amazon ECS Developer Guide.

  • Para API obter detalhes, consulte UpdateServicena Referência de AWS CLI Comandos.

O código de exemplo a seguir mostra como usar update-task-set.

AWS CLI

Para atualizar um conjunto de tarefas

O update-task-set exemplo a seguir atualiza um conjunto de tarefas para ajustar a 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

Saída:

{ "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 obter detalhes, consulte UpdateTaskSetna Referência de AWS CLI Comandos.