Exemples d'Amazon ECS utilisant AWS CLI - AWS Command Line Interface

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Exemples d'Amazon ECS utilisant AWS CLI

Les exemples de code suivants vous montrent comment effectuer des actions et implémenter des scénarios courants à l' AWS Command Line Interface aide d'Amazon ECS.

Les actions sont des extraits de code de programmes plus larges et doivent être exécutées dans leur contexte. Alors que les actions vous indiquent comment appeler des fonctions de service individuelles, vous pouvez les voir en contexte dans leurs scénarios associés.

Chaque exemple inclut un lien vers le code source complet, où vous trouverez des instructions sur la configuration et l’exécution du code en contexte.

Rubriques

Actions

L'exemple de code suivant montre comment utilisercapacity-provider-update.

AWS CLI

Mettre à jour le fournisseur de capacité dans un cluster ECS

L’exemple update-capacity-provider suivant montre comment modifier les paramètres du fournisseur de capacité dans un cluster ECS.

aws ecs update-capacity-provider \ --name Infra-ECS-Cluster-ECS-project-update-cluster-d6bb6d5b-EC2CapacityProvider-3fIpdkLywwFt \ --auto-scaling-group-provider "managedScaling={status=DISABLED,targetCapacity=50,minimumScalingStepSize=2,maximumScalingStepSize=30,instanceWarmupPeriod=200},managedTerminationProtection=DISABLED,managedDraining=DISABLED"

Sortie :

{ "capacityProvider": { "capacityProviderArn": "arn:aws:ecs:us-west-2:123456789012:capacity-provider/Infra-ECS-Cluster-ECS-project-update-cluster-d6bb6d5b-EC2CapacityProvider-3fIpdkLywwFt", "name": "Infra-ECS-Cluster-ECS-project-update-cluster-d6bb6d5b-EC2CapacityProvider-3fIpdkLywwFt", "status": "ACTIVE", "autoScalingGroupProvider": { "autoScalingGroupArn": "arn:aws:autoscaling:us-west-2:123456789012:autoScalingGroup:424941d1-b43f-4a17-adbb-08b6a6e397e1:autoScalingGroupName/Infra-ECS-Cluster-ECS-project-update-cluster-d6bb6d5b-ECSAutoScalingGroup-f44jrQHS2nRB", "managedScaling": { "status": "ENABLED", "targetCapacity": 100, "minimumScalingStepSize": 1, "maximumScalingStepSize": 10000, "instanceWarmupPeriod": 300 }, "managedTerminationProtection": "DISABLED", "managedDraining": "ENABLED" }, "updateStatus": "UPDATE_IN_PROGRESS", "tags": [] } }

Pour plus d'informations sur le fournisseur de capacité, consultez les fournisseurs de capacité Amazon ECS pour le type de EC2 lancement dans le guide du développeur Amazon ECS.

  • Pour plus de détails sur l'API, reportez-vous CapacityProviderUpdateà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utilisercreate-capacity-provider.

AWS CLI

Pour créer un fournisseur de capacité

L' create-capacity-providerexemple suivant crée un fournisseur de capacité qui utilise un groupe Auto Scaling nommé MyASG, dont le dimensionnement géré est activé et la protection contre les interruptions de service activée. Cette configuration est utilisée pour la scalabilité automatique de cluster Amazon ECS.

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"

Sortie :

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

Pour plus d’informations, consultez Auto Scaling du cluster Amazon ECS dans le Guide du développeur Amazon ECS.

  • Pour plus de détails sur l'API, reportez-vous CreateCapacityProviderà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utilisercreate-cluster.

AWS CLI

Exemple 1 : pour créer un nouveau cluster

L'create-clusterexemple suivant crée un cluster nommé MyCluster et active CloudWatch Container Insights avec une observabilité améliorée.

aws ecs create-cluster \ --cluster-name MyCluster \ --settings name=containerInsights,value=enhanced

Sortie :

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

Pour plus d’informations, consultez Création d’un cluster dans le Guide du développeur Amazon ECS.

Exemple 2 : pour créer un nouveau cluster à l’aide de fournisseurs de capacité

L’exemple create-cluster suivant crée un cluster et y associe deux fournisseurs de capacité existants. La commande create-capacity-provider permet de créer un fournisseur de capacité. La spécification d’une stratégie de fournisseur de capacité par défaut est facultative, mais recommandée. Dans cet exemple, nous créons un cluster nommé MyCluster et y associons les fournisseurs de capacité MyCapacityProvider1 et MyCapacityProvider2. Une stratégie de fournisseur de capacité par défaut est spécifiée ; elle répartit les tâches uniformément entre les deux fournisseurs.

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

Sortie :

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

Pour plus d’informations, consultez Fournisseurs de capacité de cluster dans le Guide du développeur Amazon ECS.

Exemple 3 : pour créer un cluster avec plusieurs balises

L’exemple create-cluster suivant crée un cluster avec plusieurs balises. Pour plus d'informations sur l'ajout de balises à l'aide d'une syntaxe abrégée, consultez la section Utilisation de la syntaxe abrégée avec l'interface de ligne de AWS commande dans le guide de l'utilisateur de la CLI AWS .

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

Sortie :

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

Pour plus d’informations, consultez Création d’un cluster dans le Guide du développeur Amazon ECS.

  • Pour plus de détails sur l'API, reportez-vous CreateClusterà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utilisercreate-service.

AWS CLI

Exemple 1 : pour créer un service avec une tâche Fargate

L’exemple create-service suivant montre comment créer un service à l’aide d’une tâche 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

Sortie :

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

Pour plus d’informations, consultez Création d’un service dans le Guide du développeur Amazon ECS.

Exemple 2 : pour créer un service à l'aide du type de EC2 lancement

L'create-serviceexemple suivant montre comment créer un service appelé ecs-simple-service avec une tâche utilisant le type de EC2 lancement. Le service utilise la définition de tâche sleep360 et conserve une seule instanciation de la tâche.

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

Sortie :

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

Pour plus d’informations, consultez Création d’un service dans le Guide du développeur Amazon ECS.

Exemple 3 : pour créer un service utilisant un contrôleur de déploiement externe

L’exemple create-service suivant crée un service utilisant un contrôleur de déploiement externe.

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

Sortie :

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

Pour plus d’informations, consultez Création d’un service dans le Guide du développeur Amazon ECS.

Exemple 4 : pour créer un nouveau service derrière un équilibreur de charge

L’exemple create-service suivant montre comment créer un service situé derrière un équilibreur de charge. Un équilibreur de charge doit être configuré dans la même région que votre instance de conteneur. Cet exemple utilise l’option --cli-input-json et un fichier d’entrée JSON appelé ecs-simple-service-elb.json avec le contenu suivant.

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

Contenu de ecs-simple-service-elb.json :

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

Sortie :

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

Pour plus d’informations, consultez Utilisation de l’équilibrage de charge pour répartir le trafic de service Amazon ECS dans le Guide du développeur Amazon ECS.

Exemple 5 : pour configurer les volumes Amazon EBS lors de la création du service

L’exemple create-service suivant montre comment configurer les volumes Amazon EBS pour chaque tâche gérée par le service. Un rôle d’infrastructure Amazon ECS doit être configuré et la politique AmazonECSInfrastructureRolePolicyForVolumes gérée doit lui être associée. Vous devez spécifier une définition de tâche portant le même nom de volume que dans la demande create-service. Cet exemple utilise l’option --cli-input-json et un fichier d’entrée JSON appelé ecs-simple-service-ebs.json avec le contenu suivant.

aws ecs create-service \ --cli-input-json file://ecs-simple-service-ebs.json

Contenu de ecs-simple-service-ebs.json :

{ "cluster": "mycluster", "taskDefinition": "mytaskdef", "serviceName": "ecs-simple-service-ebs", "desiredCount": 2, "launchType": "FARGATE", "networkConfiguration":{ "awsvpcConfiguration":{ "assignPublicIp": "ENABLED", "securityGroups": ["sg-12344321"], "subnets":["subnet-12344321"] } }, "volumeConfigurations": [ { "name": "myEbsVolume", "managedEBSVolume": { "roleArn":"arn:aws:iam::123456789012:role/ecsInfrastructureRole", "volumeType": "gp3", "sizeInGiB": 100, "iops": 3000, "throughput": 125, "filesystemType": "ext4" } } ] }

Sortie :

{ "service": { "serviceArn": "arn:aws:ecs:us-west-2:123456789012:service/mycluster/ecs-simple-service-ebs", "serviceName": "ecs-simple-service-ebs", "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/mycluster", "loadBalancers": [], "serviceRegistries": [], "status": "ACTIVE", "desiredCount": 2, "runningCount": 0, "pendingCount": 0, "launchType": "EC2", "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/mytaskdef:3", "deploymentConfiguration": { "deploymentCircuitBreaker": { "enable": false, "rollback": false }, "maximumPercent": 200, "minimumHealthyPercent": 100 }, "deployments": [ { "id": "ecs-svc/7851020056849183687", "status": "PRIMARY", "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/mytaskdef:3", "desiredCount": 0, "pendingCount": 0, "runningCount": 0, "failedTasks": 0, "createdAt": "2025-01-21T11:32:38.034000-06:00", "updatedAt": "2025-01-21T11:32:38.034000-06:00", "launchType": "EC2", "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "subnet-12344321" ], "securityGroups": [ "sg-12344321" ], "assignPublicIp": "DISABLED" } }, "rolloutState": "IN_PROGRESS", "rolloutStateReason": "ECS deployment ecs-svc/7851020056849183687 in progress.", "volumeConfigurations": [ { "name": "myEBSVolume", "managedEBSVolume": { "volumeType": "gp3", "sizeInGiB": 100, "iops": 3000, "throughput": 125, "roleArn": "arn:aws:iam::123456789012:role/ecsInfrastructureRole", "filesystemType": "ext4" } } ] } ], "roleArn": "arn:aws:iam::123456789012:role/aws-service-role/ecs.amazonaws.com/AWSServiceRoleForECS", "events": [], "createdAt": "2025-01-21T11:32:38.034000-06:00", "placementConstraints": [], "placementStrategy": [], "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "subnet-12344321" ], "securityGroups": [ "sg-12344321" ], "assignPublicIp": "DISABLED" } }, "healthCheckGracePeriodSeconds": 0, "schedulingStrategy": "REPLICA", "deploymentController": { "type": "ECS" }, "createdBy": "arn:aws:iam::123456789012:user/AIDACKCEVSQ6C2EXAMPLE", "enableECSManagedTags": false, "propagateTags": "NONE", "enableExecuteCommand": false, "availabilityZoneRebalancing": "DISABLED" } }

Pour plus d’informations, consultez Utilisation des volumes Amazon EBS avec Amazon ECS dans le Guide du développeur Amazon ECS.

  • Pour plus de détails sur l'API, reportez-vous CreateServiceà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utilisercreate-task-set.

AWS CLI

Pour créer un ensemble de tâches

L’exemple create-task-set suivant crée un ensemble de tâches dans un service utilisant un contrôleur de déploiement externe.

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

Sortie :

{ "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 } }
  • Pour plus de détails sur l'API, reportez-vous CreateTaskSetà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserdelete-account-setting.

AWS CLI

Pour supprimer les paramètres de compte pour un utilisateur ou un rôle IAM spécifique

L’exemple delete-account-setting suivant supprime les paramètres de compte pour l’utilisateur ou le rôle IAM spécifique.

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

Sortie :

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

Pour plus d'informations, consultez Amazon Resource Names (ARNs) et IDs le manuel du développeur Amazon ECS.

  • Pour plus de détails sur l'API, reportez-vous DeleteAccountSettingà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserdelete-attributes.

AWS CLI

Pour supprimer un ou plusieurs attributs personnalisés d’une ressource Amazon ECS

delete-attributes ci-dessous supprime un attribut nommé stack d’une instance de conteneur.

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

Sortie :

{ "attributes": [ { "name": "stack", "targetId": "arn:aws:ecs:us-west-2:130757420319:container-instance/1c3be8ed-df30-47b4-8f1e-6e68ebd01f34", "value": "production" } ] }
  • Pour plus de détails sur l'API, reportez-vous DeleteAttributesà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserdelete-capacity-provider.

AWS CLI

Exemple 1 : pour supprimer un fournisseur de capacité à l’aide de l’Amazon Resource Name (ARN)

L’exemple delete-capacity-provider suivant supprime un fournisseur de capacité en spécifiant son Amazon Resource Name (ARN). L’ARN et le statut de suppression du fournisseur de capacité peuvent être récupérés à l’aide de la commande describe-capacity-providers.

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

Sortie :

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

Pour plus d’informations, consultez Fournisseurs de capacité de cluster dans le Guide du développeur Amazon ECS.

Exemple 2 : pour supprimer un fournisseur de capacité à l’aide du nom

L’exemple delete-capacity-provider suivant supprime un fournisseur de capacité en spécifiant son nom abrégé. Le nom abrégé et le statut de suppression du fournisseur de capacité peuvent être récupérés à l’aide de la commande describe-capacity-providers.

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

Sortie :

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

Pour plus d’informations, consultez Fournisseurs de capacité de cluster dans le Guide du développeur Amazon ECS.

  • Pour plus de détails sur l'API, reportez-vous DeleteCapacityProviderà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserdelete-cluster.

AWS CLI

Pour supprimer un cluster vide

L’exemple delete-cluster suivant supprime le cluster vide spécifié.

aws ecs delete-cluster --cluster MyCluster

Sortie :

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

Pour plus d’informations, consultez Suppression d’un cluster dans le Guide du développeur Amazon ECS.

  • Pour plus de détails sur l'API, reportez-vous DeleteClusterà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserdelete-service.

AWS CLI

Pour supprimer un service

L’exemple ecs delete-service suivant supprime le service spécifié d’un cluster. Vous pouvez inclure le paramètre --force pour supprimer un service, même s’il n’a pas été réduit à zéro tâche.

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

Pour plus d’informations, consultez Suppression d’un service dans le Guide du développeur Amazon ECS.

  • Pour plus de détails sur l'API, reportez-vous DeleteServiceà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserdelete-task-definitions.

AWS CLI

Pour supprimer une définition de tâche

L’exemple delete-task-definitions suivant supprime une définition de tâche INACTIVE.

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

Sortie :

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

Pour plus d’informations, consultez Définitions de tâche Amazon ECS dans le Guide du développeur Amazon ECS.

  • Pour plus de détails sur l'API, reportez-vous DeleteTaskDefinitionsà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserdelete-task-set.

AWS CLI

Pour supprimer un ensemble de tâches

L’exemple delete-task-set suivant illustre comment supprimer un ensemble de tâches. Vous pouvez inclure le paramètre --force pour supprimer un ensemble de tâches, même s’il n’a pas été réduit à zéro tâche.

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

Sortie :

{ "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 } }
  • Pour plus de détails sur l'API, reportez-vous DeleteTaskSetà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserderegister-container-instance.

AWS CLI

Pour annuler l’enregistrement d’une instance de conteneur sur un cluster

L’exemple deregister-container-instance suivant annule l’enregistrement d’une instance de conteneur sur le cluster spécifié. Si des tâches sont toujours en cours d’exécution dans l’instance de conteneur, vous devez soit arrêter ces tâches avant l’annulation de l’enregistrement, soit utiliser l’option --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

Sortie :

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

Pour plus d’informations, consultez Annulation de l’enregistrement d’une instance de conteneur dans le Guide du développeur Amazon ECS.

L'exemple de code suivant montre comment utiliserderegister-task-definition.

AWS CLI

Pour annuler l’enregistrement d’une définition de tâche

L’exemple deregister-task-definition suivant annule l’enregistrement de la première révision de la définition de tâche curler dans votre région par défaut.

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

Notez que dans la sortie obtenue, le statut de la définition de la tâche indique 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 } }

Pour plus d’informations, consultez Définitions de tâche Amazon ECS dans le Guide du développeur Amazon ECS.

  • Pour plus de détails sur l'API, reportez-vous DeregisterTaskDefinitionà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserdescribe-capacity-providers.

AWS CLI

Exemple 1 : pour décrire tous les fournisseurs de capacité

L’exemple describe-capacity-providers suivant extrait des informations concernant tous les fournisseurs de capacité.

aws ecs describe-capacity-providers

Sortie :

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

Pour plus d’informations, consultez Fournisseurs de capacité de cluster dans le Guide du développeur Amazon ECS.

Exemple 2 : pour décrire un fournisseur de capacité spécifique

L’exemple describe-capacity-providers suivant extrait des informations concernant un fournisseur de capacité spécifique. L’utilisation du paramètre --include TAGS ajoute à la sortie les balises associées au fournisseur de capacité.

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

Sortie :

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

Pour plus d’informations, consultez Fournisseurs de capacité de cluster dans le Guide du développeur Amazon ECS.

L'exemple de code suivant montre comment utiliserdescribe-clusters.

AWS CLI

Exemple 1 : pour décrire un cluster

L’exemple describe-clusters suivant extrait des informations sur le cluster spécifié.

aws ecs describe-clusters \ --cluster default

Sortie :

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

Pour plus d’informations, consultez Clusters Amazon ECS dans le Guide du développeur Amazon ECS.

Exemple 2 : pour décrire un cluster avec l’option d’attachement

L’exemple describe-clusters suivant spécifie l’option ATTACHMENTS. Celle-ci extrait des informations sur le cluster spécifié et une liste des ressources qui lui sont associées sous forme d’attachements. Lorsque vous utilisez un fournisseur de capacité avec un cluster, les ressources, qu'il s'agisse de AutoScaling plans ou de politiques de dimensionnement, seront représentées sous forme de pièces jointes asp ou as_policy.

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

Sortie :

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

Pour plus d’informations, consultez Clusters Amazon ECS dans le Guide du développeur Amazon ECS.

  • Pour plus de détails sur l'API, reportez-vous DescribeClustersà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserdescribe-container-instances.

AWS CLI

Pour décrire une instance de conteneur

L’exemple describe-container-instances suivant extrait des informations sur une instance de conteneur dans le cluster update, en utilisant l’UUID de l’instance de conteneur comme identifiant.

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

Sortie :

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

Pour plus d’informations, consultez Instances de conteneur Amazon ECS dans le Guide du développeur Amazon ECS.

L'exemple de code suivant montre comment utiliserdescribe-service-deployments.

AWS CLI

Pour décrire les détails du déploiement du service

L’exemple describe-service-deployments suivant renvoie les détails du déploiement du service avec l’ARN arn:aws:ecs:us-east-1:123456789012:service-deployment/example-cluster/example-service/ejGvqq2ilnbKT9qj0vLJe.

aws ecs describe-service-deployments \ --service-deployment-arn arn:aws:ecs:us-east-1:123456789012:service-deployment/example-cluster/example-service/ejGvqq2ilnbKT9qj0vLJe

Sortie :

{ "serviceDeployments": [ { "serviceDeploymentArn": "arn:aws:ecs:us-east-1:123456789012:service-deployment/example-cluster/example-service/ejGvqq2ilnbKT9qj0vLJe", "serviceArn": "arn:aws:ecs:us-east-1:123456789012:service/example-cluster/example-service", "clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/example-cluster", "createdAt": "2024-10-31T08:03:30.917000-04:00", "startedAt": "2024-10-31T08:03:32.510000-04:00", "finishedAt": "2024-10-31T08:05:04.527000-04:00", "updatedAt": "2024-10-31T08:05:04.527000-04:00", "sourceServiceRevisions": [], "targetServiceRevision": { "arn": "arn:aws:ecs:us-east-1:123456789012:service-revision/example-cluster/example-service/1485800978477494678", "requestedTaskCount": 1, "runningTaskCount": 1, "pendingTaskCount": 0 }, "status": "SUCCESSFUL", "deploymentConfiguration": { "deploymentCircuitBreaker": { "enable": true, "rollback": true }, "maximumPercent": 200, "minimumHealthyPercent": 100, "alarms": { "alarmNames": [], "rollback": false, "enable": false } }, "deploymentCircuitBreaker": { "status": "MONITORING_COMPLETE", "failureCount": 0, "threshold": 3 }, "alarms": { "status": "DISABLED" } } ], "failures": [] }

Pour plus d’informations, consultez Affichage de l’historique de service à l’aide des déploiements de service Amazon ECS dans le Guide du développeur Amazon ECS.

L'exemple de code suivant montre comment utiliserdescribe-service-revisions.

AWS CLI

Pour décrire les détails de la révision du service

L’exemple describe-service-revisions suivant renvoie les détails de la révision du service pour la révision du service avec l’ARN arn:aws:ecs:us-east-1:123456789012:service-revision/example-cluster/example-service/1485800978477494678.

aws ecs describe-service-revisions \ --service-revision-arns arn:aws:ecs:us-east-1:123456789012:service-revision/example-cluster/example-service/1485800978477494678

Sortie :

{ "serviceRevisions": [ { "serviceRevisionArn": "arn:aws:ecs:us-east-1:123456789012:service-revision/example-cluster/example-service/1485800978477494678", "serviceArn": "arn:aws:ecs:us-east-1:123456789012:service/example-cluster/example-service", "clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/example-cluster", "taskDefinition": "arn:aws:ecs:us-east-1:123456789012:task-definition/webserver:5", "capacityProviderStrategy": [ { "capacityProvider": "FARGATE", "weight": 1, "base": 0 } ], "platformVersion": "1.4.0", "platformFamily": "Linux", "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "subnet-0d0eab1bb38d5ca64", "subnet-0db5010045995c2d5" ], "securityGroups": [ "sg-02556bf85a191f59a" ], "assignPublicIp": "ENABLED" } }, "containerImages": [ { "containerName": "aws-otel-collector", "imageDigest": "sha256:7a1b3560655071bcacd66902c20ebe9a69470d5691fe3bd36baace7c2f3c4640", "image": "public.ecr.aws/aws-observability/aws-otel-collector:v0.32.0" }, { "containerName": "web", "imageDigest": "sha256:28402db69fec7c17e179ea87882667f1e054391138f77ffaf0c3eb388efc3ffb", "image": "nginx" } ], "guardDutyEnabled": false, "serviceConnectConfiguration": { "enabled": false }, "createdAt": "2024-10-31T08:03:29.302000-04:00" } ], "failures": [] }

Pour plus d’informations, consultez Amazon ECS service revisions dans le Guide du développeur Amazon ECS.

  • Pour plus de détails sur l'API, reportez-vous DescribeServiceRevisionsà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserdescribe-services.

AWS CLI

Pour décrire un service

L’exempledescribe-services suivant extrait des informations sur le service my-http-service dans le cluster par défaut.

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

Sortie :

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

Pour plus d’informations, consultez Services dans le Guide du développeur Amazon ECS.

  • Pour plus de détails sur l'API, reportez-vous DescribeServicesà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserdescribe-task-definition.

AWS CLI

Pour décrire une définition de tâche

L’exemple describe-task-definition suivant extrait des informations sur une définition de tâche.

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

Sortie :

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

Pour plus d’informations, consultez Définitions de tâche Amazon ECS dans le Guide du développeur Amazon ECS.

  • Pour plus de détails sur l'API, reportez-vous DescribeTaskDefinitionà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserdescribe-task-sets.

AWS CLI

Pour décrire un ensemble de tâches

L’exemple describe-task-sets suivant décrit un ensemble de tâches dans un service qui utilise un outil de déploiement externe.

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

Sortie :

{ "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": [] }
  • Pour plus de détails sur l'API, reportez-vous DescribeTaskSetsà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserdescribe-tasks.

AWS CLI

Exemple 1 : pour décrire une tâche

L’exemple describe-tasks suivant extrait des informations sur une tâche dans un cluster. Vous pouvez spécifier la tâche à l’aide de son ID ou de son ARN complet. Cet exemple utilise l’ARN complet de la tâche.

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

Sortie :

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

Pour plus d’informations, consultez Définitions de tâche Amazon ECS dans le Guide du développeur Amazon ECS.

Exemple 2 : pour décrire plusieurs tâches

L’exemple describe-tasks suivant extrait des informations sur plusieurs tâches dans un cluster. Vous pouvez spécifier la tâche à l’aide de son ID ou de son ARN complet. Cet exemple utilise l'ensemble IDs des tâches.

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

Sortie :

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

Pour plus d’informations, consultez Définitions de tâche Amazon ECS dans le Guide du développeur Amazon ECS.

  • Pour plus de détails sur l'API, reportez-vous DescribeTasksà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserexecute-command.

AWS CLI

Pour exécuter une commande interactive /bin/sh

L'execute-commandexemple suivant exécute une commande interactive /bin/sh sur un conteneur nommé MyContainer d'après une tâche dont l'identifiant est. arn: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"

Cette commande ne produit aucune sortie.

Pour plus d’informations, consultez Utilisation d’Amazon ECS Exec pour le débogage dans le Guide du développeur Amazon ECS.

  • Pour plus de détails sur l'API, reportez-vous ExecuteCommandà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserget-task-protection.

AWS CLI

Pour extraire le statut de protection de la tâche dans le service ECS

get-task-protection ci-dessous fournit le statut de protection des tâches ECS appartenant au service Amazon ECS.

aws ecs get-task-protection \ --cluster ECS-project-update-cluster \ --tasks c43ed3b1331041f289316f958adb6a24

Sortie :

{ "protectedTasks": [ { "taskArn": "arn:aws:ecs:us-west-2:123456789012:task/c43ed3b1331041f289316f958adb6a24", "protectionEnabled": false } ], "failures": [] }

Pour plus d’informations sur la protection des tâches, consultez Protect your Amazon ECS tasks from being terminated by scale-in events dans le Guide du développeur Amazon ECS.

  • Pour plus de détails sur l'API, reportez-vous GetTaskProtectionà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserlist-account-settings.

AWS CLI

Exemple 1 : pour consulter les paramètres d’un compte

L’exemple list-account-settings suivant affiche les paramètres effectifs d’un compte.

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

Sortie :

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

Exemple 2 : pour afficher les paramètres de compte pour un utilisateur ou un rôle IAM spécifique

L’exemple list-account-settings suivant affiche les paramètres de compte pour l’utilisateur ou le rôle IAM spécifié.

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

Sortie :

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

Pour plus d'informations, consultez Amazon Resource Names (ARNs) et IDs le manuel du développeur Amazon ECS.

  • Pour plus de détails sur l'API, reportez-vous ListAccountSettingsà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserlist-attributes.

AWS CLI

Pour répertorier les instances de conteneur contenant un attribut spécifique

L’exemple suivant répertorie les attributs des instances de conteneur dont l’attribut stack=production se trouve dans le cluster par défaut.

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

Sortie :

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

Pour plus d’informations, consultez Configuration de l’agent de conteneur Amazon ECS dans le Guide du développeur Amazon ECS.

  • Pour plus de détails sur l'API, reportez-vous ListAttributesà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserlist-clusters.

AWS CLI

Pour répertorier vos clusters disponibles

L’exemple list-clusters suivant répertorie tous les clusters disponibles.

aws ecs list-clusters

Sortie :

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

Pour plus d’informations, consultez Clusters Amazon ECS dans le Guide du développeur Amazon ECS.

  • Pour plus de détails sur l'API, reportez-vous ListClustersà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserlist-container-instances.

AWS CLI

Pour répertorier les instances de conteneur dans le cluster

L’exemple list-container-instances suivant répertorie toutes les instances de conteneur disponibles dans un cluster.

aws ecs list-container-instances --cluster MyCluster

Sortie :

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

Pour plus d’informations, consultez Instances de conteneur Amazon ECS dans le Guide du développeur Amazon ECS.

  • Pour plus de détails sur l'API, reportez-vous ListContainerInstancesà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserlist-service-deployments.

AWS CLI

Pour répertorier les déploiements de service

L’exemple list-service-deployments suivant extrait les déploiements de service pour le service nommé example-service.

aws ecs list-service-deployments \ --service arn:aws:ecs:us-east-1:123456789012:service/example-cluster/example-service

Sortie :

{ "serviceDeployments": [ { "serviceDeploymentArn": "arn:aws:ecs:us-east-1:123456789012:service-deployment/example-cluster/example-service/ejGvqq2ilnbKT9qj0vLJe", "serviceArn": "arn:aws:ecs:us-east-1:123456789012:service/example-cluster/example-service", "clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/example-cluster", "startedAt": "2024-10-31T08:03:32.510000-04:00", "createdAt": "2024-10-31T08:03:30.917000-04:00", "finishedAt": "2024-10-31T08:05:04.527000-04:00", "targetServiceRevisionArn": "arn:aws:ecs:us-east-1:123456789012:service-revision/example-cluster/example-service/1485800978477494678", "status": "SUCCESSFUL" } ] }

Pour plus d’informations, consultez Affichage de l’historique de service à l’aide des déploiements de service Amazon ECS dans le Guide du développeur Amazon ECS.

  • Pour plus de détails sur l'API, reportez-vous ListServiceDeploymentsà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserlist-services-by-namespace.

AWS CLI

Pour répertorier les services dans un espace de noms

L’exemple list-services-by-namespace suivant répertorie tous les services configurés pour l’espace de noms spécifié dans votre région par défaut.

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

Sortie :

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

Pour plus d’informations, consultez Service Connect dans le Guide du développeur Amazon ECS.

  • Pour plus de détails sur l'API, reportez-vous ListServicesByNamespaceà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserlist-services.

AWS CLI

Pour répertorier les services d’un cluster

L’exemple list-services suivant montre comment répertorier les services exécutés dans un cluster.

aws ecs list-services --cluster MyCluster

Sortie :

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

Pour plus d’informations, consultez Services dans le Guide du développeur Amazon ECS.

  • Pour plus de détails sur l'API, reportez-vous ListServicesà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserlist-tags-for-resource.

AWS CLI

Pour répertorier les balises d’une ressource

L’exemple list-tags-for-resource suivant répertorie les balises pour un cluster spécifique.

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

Sortie :

{ "tags": [ { "key": "key1", "value": "value1" }, { "key": "key2", "value": "value2" }, { "key": "key3", "value": "value3" } ] }
  • Pour plus de détails sur l'API, reportez-vous ListTagsForResourceà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserlist-task-definition-families.

AWS CLI

Exemple 1 : pour répertorier les familles de définitions de tâches enregistrées

L’exemple list-task-definition-families suivant répertorie toutes les familles de définitions de tâches enregistrées.

aws ecs list-task-definition-families

Sortie :

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

Exemple 2 : pour filtrer les familles de définitions de tâches enregistrées

L’exemple list-task-definition-families suivant répertorie les révisions des définitions de tâches qui commencent par « hpcc ».

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

Sortie :

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

Pour plus d’informations, consultez Paramètres de définition de tâche dans le Guide du développeur Amazon ECS.

L'exemple de code suivant montre comment utiliserlist-task-definitions.

AWS CLI

Exemple 1 : pour répertorier les définitions de tâches enregistrées

L’exemple list-task-definitions suivant répertorie toutes les définitions de tâches enregistrées.

aws ecs list-task-definitions

Sortie :

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

Exemple 2 : pour répertorier les définitions de tâches enregistrées dans une famille

L' list-task-definitionsexemple suivant répertorie les révisions des définitions de tâches d'une famille spécifiée.

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

Sortie :

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

Pour plus d’informations, consultez Définitions de tâche Amazon ECS dans le Guide du développeur Amazon ECS.

  • Pour plus de détails sur l'API, reportez-vous ListTaskDefinitionsà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserlist-tasks.

AWS CLI

Exemple 1 : pour répertorier les tâches dans un cluster

L’exemple list-tasks suivant répertorie toutes les tâches dans un cluster.

aws ecs list-tasks --cluster default

Sortie :

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

Exemple 2 : pour répertorier les tâches sur une instance de conteneur particulière

L’exemple list-tasks suivant répertorie les tâches sur une instance de conteneur, en utilisant l’UUID de l’instance de conteneur comme filtre.

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

Sortie :

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

Pour plus d’informations, consultez Définitions de tâche Amazon ECS dans le Guide du développeur Amazon ECS.

  • Pour plus de détails sur l'API, reportez-vous ListTasksà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserput-account-setting-default.

AWS CLI

Pour modifier les paramètres de compte par défaut

L’exemple put-account-setting-default suivant modifie les paramètres de compte par défaut pour tous les utilisateurs ou rôles IAM de votre compte. Ces modifications s'appliquent à l'ensemble du AWS compte, sauf si un utilisateur ou un rôle IAM remplace explicitement ces paramètres pour lui-même.

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

Sortie :

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

Pour plus d'informations, consultez Amazon Resource Names (ARNs) et IDs le manuel du développeur Amazon ECS.

  • Pour plus de détails sur l'API, reportez-vous PutAccountSettingDefaultà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserput-account-setting.

AWS CLI

Pour modifier les paramètres de compte pour votre compte utilisateur IAM

L’exemple put-account-setting suivant définit le paramètre du compte containerInsights sur enhanced pour votre compte utilisateur IAM. Container Insights est ainsi activé avec l’observabilité améliorée.

aws ecs put-account-setting \ --name containerInsights \ --value enhanced

Sortie :

{ "setting": { "name": "containerInsights", "value": "enhanced", "principalArn": "arn:aws:iam::123456789012:user/johndoe", "type": "user" } }

Pour plus d’informations, consultez Modification des paramètres de compte dans le Guide du développeur Amazon ECS.

  • Pour plus de détails sur l'API, reportez-vous PutAccountSettingà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserput-account-settings.

AWS CLI

Pour modifier les paramètres de compte pour un utilisateur ou un rôle IAM

L’exemple put-account-setting suivant modifie les paramètres de compte pour l’utilisateur ou le rôle IAM spécifié.

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

Sortie :

{ "setting": { "name": "serviceLongArnFormat", "value": "enabled", "principalArn": "arn:aws:iam::123456789012:user/MyUser" } }
  • Pour plus de détails sur l'API, reportez-vous PutAccountSettingsà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserput-attributes.

AWS CLI

Pour créer un attribut et l’associer à une ressource Amazon ECS

put-attributes ci-dessous applique un attribut avec la pile de noms et la production de valeur à une instance de conteneur.

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

Sortie :

{ "attributes": [ { "name": "stack", "targetId": "arn:aws:ecs:us-west-2:130757420319:container-instance/1c3be8ed-df30-47b4-8f1e-6e68ebd01f34", "value": "production" } ] }
  • Pour plus de détails sur l'API, reportez-vous PutAttributesà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserput-cluster-capacity-providers.

AWS CLI

Exemple 1 : pour ajouter un fournisseur de capacité existant à un cluster

L’exemple put-cluster-capacity-providers suivant ajoute un fournisseur de capacité existant à un cluster. La commande create-capacity-provider permet de créer un fournisseur de capacité. La commande describe-clusters est utilisée pour décrire les fournisseurs de capacité actuels et la stratégie de fournisseur de capacité par défaut associée à un cluster. Lorsque vous ajoutez un nouveau fournisseur de capacité à un cluster, vous devez spécifier tous les fournisseurs de capacité existants en plus du nouveau que vous souhaitez associer au cluster. Vous devez également spécifier une stratégie de fournisseur de capacité par défaut à associer au cluster. Dans cet exemple, le fournisseur de capacité MyCapacityProvider1 est associé au cluster MyCluster et vous souhaitez ajouter le fournisseur de capacité MyCapacityProvider2 et l’inclure dans la stratégie de fournisseur de capacité par défaut afin que les tâches soient réparties uniformément entre les deux fournisseurs de capacité.

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

Sortie :

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

Pour plus d’informations, consultez Fournisseurs de capacité de cluster dans le Guide du développeur Amazon ECS.

Exemple 2 : pour supprimer un fournisseur de capacité d’un cluster

L’exemple put-cluster-capacity-providers suivant supprime un fournisseur de capacité d’un cluster. La commande describe-clusters est utilisée pour décrire les fournisseurs de capacité actuels associés à un cluster. Lorsque vous supprimez un fournisseur de capacité d’un cluster, vous devez spécifier les fournisseurs de capacité que vous souhaitez voir associés au cluster ainsi que la stratégie de fournisseur de capacité par défaut à associer au cluster. Dans cet exemple, les fournisseurs de capacité MyCapacityProvider1 et MyCapacityProvider2 sont associés au cluster et vous souhaitez supprimer le fournisseur de capacité MyCapacityProvider2. Vous ne spécifiez donc que MyCapacityProvider1 dans la commande avec la stratégie de fournisseur de capacité par défaut mise à jour.

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

Sortie :

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

Pour plus d’informations, consultez Fournisseurs de capacité de cluster dans le Guide du développeur Amazon ECS.

Exemple 3 : pour supprimer tous les fournisseurs de capacité d’un cluster

L’exemple put-cluster-capacity-providers suivant supprime tous les fournisseurs de capacité existants du cluster.

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

Sortie :

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

Pour plus d’informations, consultez Fournisseurs de capacité de cluster dans le Guide du développeur Amazon ECS.

L'exemple de code suivant montre comment utiliserregister-task-definition.

AWS CLI

Exemple 1 : pour enregistrer une définition de tâche avec un fichier JSON

L’exemple register-task-definition suivant enregistre une définition de tâche dans la famille spécifiée. Les définitions de conteneur sont enregistrées au format JSON à l’emplacement de fichier spécifié.

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

Contenu de sleep360.json :

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

Sortie :

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

Pour plus d’informations, consultez Exemples de définitions de tâches dans le Guide du développeur Amazon ECS.

Exemple 2 : pour enregistrer une définition de tâche avec un paramètre de chaîne JSON

L’exemple register-task-definition suivant enregistre une définition de tâche à l’aide de définitions de conteneur fournies sous forme de paramètre de chaîne JSON avec des guillemets doubles précédés d’un caractère d’échappement.

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

La sortie est identique à l’exemple précédent.

Pour plus d’informations, consultez Création d’une définition de tâche dans le Guide du développeur Amazon ECS.

  • Pour plus de détails sur l'API, reportez-vous RegisterTaskDefinitionà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserrun-task.

AWS CLI

Exemple 1 : pour exécuter une tâche sur votre cluster par défaut

L’exemple run-task suivant exécute une tâche sur le cluster par défaut et utilise un jeton client.

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

Sortie :

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

Pour plus d’informations, consultez Exécution d’une application en tant que tâche autonome dans le Guide du développeur Amazon ECS.

Exemple 2 : pour configurer un volume Amazon EBS pour une tâche autonome

L’exemple run-task suivant configure un volume Amazon EBS chiffré pour une tâche Fargate sur le cluster par défaut. Un rôle d’infrastructure Amazon ECS doit être configuré et la politique AmazonECSInfrastructureRolePolicyForVolumes gérée doit lui être associée. Vous devez spécifier une définition de tâche portant le même nom de volume que dans la demande run-task. Cet exemple utilise l’option --cli-input-json et un fichier d’entrée JSON appelé ebs.json.

aws ecs run-task \ --cli-input-json file://ebs.json

Contenu de ebs.json :

{ "cluster": "default", "taskDefinition": "mytaskdef", "launchType": "FARGATE", "networkConfiguration":{ "awsvpcConfiguration":{ "assignPublicIp": "ENABLED", "securityGroups": ["sg-12344321"], "subnets":["subnet-12344321"] } }, "volumeConfigurations": [ { "name": "myEBSVolume", "managedEBSVolume": { "volumeType": "gp3", "sizeInGiB": 100, "roleArn":"arn:aws:iam::1111222333:role/ecsInfrastructureRole", "encrypted": true, "kmsKeyId": "arn:aws:kms:region:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" } } ] }

Sortie :

{ "tasks": [ { "attachments": [ { "id": "ce868693-15ca-4083-91ac-f782f64000c9", "type": "ElasticNetworkInterface", "status": "PRECREATED", "details": [ { "name": "subnetId", "value": "subnet-070982705451dad82" } ] }, { "id": "a17ed863-786c-4372-b5b3-b23e53f37877", "type": "AmazonElasticBlockStorage", "status": "CREATED", "details": [ { "name": "roleArn", "value": "arn:aws:iam::123456789012:role/ecsInfrastructureRole" }, { "name": "volumeName", "value": "myEBSVolume" }, { "name": "deleteOnTermination", "value": "true" } ] } ], "attributes": [ { "name": "ecs.cpu-architecture", "value": "x86_64" } ], "availabilityZone": "us-west-2b", "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/default", "containers": [ { "containerArn": "arn:aws:ecs:us-west-2:123456789012:container/default/7f1fbd3629434cc4b82d72d2f09b67c9/e21962a2-f328-4699-98a3-5161ac2c186a", "taskArn": "arn:aws:ecs:us-west-2:123456789012:task/default/7f1fbd3629434cc4b82d72d2f09b67c9", "name": "container-using-ebs", "image": "amazonlinux:2", "lastStatus": "PENDING", "networkInterfaces": [], "cpu": "0" } ], "cpu": "1024", "createdAt": "2025-01-23T10:29:46.650000-06:00", "desiredStatus": "RUNNING", "enableExecuteCommand": false, "group": "family:mytaskdef", "lastStatus": "PROVISIONING", "launchType": "FARGATE", "memory": "3072", "overrides": { "containerOverrides": [ { "name": "container-using-ebs" } ], "inferenceAcceleratorOverrides": [] }, "platformVersion": "1.4.0", "platformFamily": "Linux", "tags": [], "taskArn": "arn:aws:ecs:us-west-2:123456789012:task/default/7f1fbd3629434cc4b82d72d2f09b67c9", "taskDefinitionArn": "arn:aws:ecs:us-west-2:123456789012:task-definition/mytaskdef:4", "version": 1, "ephemeralStorage": { "sizeInGiB": 20 }, "fargateEphemeralStorage": { "sizeInGiB": 20 } } ], "failures": [] }

Pour plus d’informations, consultez Utilisation des volumes Amazon EBS avec Amazon ECS dans le Guide du développeur Amazon ECS.

  • Pour plus de détails sur l'API, reportez-vous RunTaskà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserstart-task.

AWS CLI

Exemple 1 : pour démarrer une nouvelle tâche

L’exemple start-task suivant démarre une tâche en utilisant la dernière révision de la définition de tâche sleep360 sur l’instance de conteneur spécifiée dans le cluster par défaut.

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

Sortie :

{ "tasks": [ { "taskArn": "arn:aws:ecs:us-west-2:123456789012:task/default/666fdccc2e2d4b6894dd422f4eeee8f8", "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/default", "taskDefinitionArn": "arn:aws:ecs:us-west-2:123456789012:task-definition/sleep360:3", "containerInstanceArn": "arn:aws:ecs:us-west-2:123456789012:container-instance/default/765936fadbdd46b5991a4bd70c2a43d4", "overrides": { "containerOverrides": [ { "name": "sleep" } ] }, "lastStatus": "PENDING", "desiredStatus": "RUNNING", "cpu": "128", "memory": "128", "containers": [ { "containerArn": "arn:aws:ecs:us-west-2:123456789012:container/75f11ed4-8a3d-4f26-a33b-ad1db9e02d41", "taskArn": "arn:aws:ecs:us-west-2:123456789012: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": [] }

Pour plus d’informations, consultez Planification de vos conteneurs sur Amazon ECS dans le Guide du développeur Amazon ECS.

Exemple 2 : pour configurer un volume Amazon EBS au début de la tâche

L’exemple start-task suivant configure un volume Amazon EBS chiffré pour une tâche sur l’instance de conteneur spécifiée. Un rôle d’infrastructure Amazon ECS doit être configuré et la politique AmazonECSInfrastructureRolePolicyForVolumes gérée doit lui être associée. Vous devez spécifier une définition de tâche portant le même nom de volume que dans la demande start-task. Cet exemple utilise l’option --cli-input-json et un fichier d’entrée JSON appelé ebs.json avec le contenu suivant.

aws ecs start-task \ --cli-input-json file://ebs.json \ --container-instances 765936fadbdd46b5991a4bd70c2a43d4

Contenu de ebs.json :

{ "cluster": "default", "taskDefinition": "mytaskdef", "networkConfiguration":{ "awsvpcConfiguration":{ "assignPublicIp": "ENABLED", "securityGroups": ["sg-12344321"], "subnets":["subnet-12344321"] } }, "volumeConfigurations": [ { "name": "myEBSVolume", "managedEBSVolume": { "volumeType": "gp3", "sizeInGiB": 100, "roleArn":"arn:aws:iam::123456789012:role/ecsInfrastructureRole", "encrypted": true, "kmsKeyId": "arn:aws:kms:region:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" } } ] }

Sortie :

{ "tasks": [ { "attachments": [ { "id": "aea29489-9dcd-49f1-8164-4d91566e1113", "type": "ElasticNetworkInterface", "status": "PRECREATED", "details": [ { "name": "subnetId", "value": "subnet-12344321" } ] }, { "id": "f29e1222-9a1e-410f-b499-a12a7cd6d42e", "type": "AmazonElasticBlockStorage", "status": "CREATED", "details": [ { "name": "roleArn", "value": "arn:aws:iam::123456789012:role/ecsInfrastructureRole" }, { "name": "volumeName", "value": "myEBSVolume" }, { "name": "deleteOnTermination", "value": "true" } ] } ], "attributes": [ { "name": "ecs.cpu-architecture", "value": "arm64" } ], "availabilityZone": "us-west-2c", "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/default", "containerInstanceArn": "arn:aws:ecs:us-west-2:123456789012:container-instance/default/765936fadbdd46b5991a4bd70c2a43d4", "containers": [ { "containerArn": "arn:aws:ecs:us-west-2:123456789012:container/default/bb122ace3ed84add92c00a351a03c69e/a4a9ed10-51c7-4567-9653-50e71b94f867", "taskArn": "arn:aws:ecs:us-west-2:123456789012:task/default/bb122ace3ed84add92c00a351a03c69e", "name": "container-using-ebs", "image": "amazonlinux:2", "lastStatus": "PENDING", "networkInterfaces": [], "cpu": "0" } ], "cpu": "1024", "createdAt": "2025-01-23T14:51:05.191000-06:00", "desiredStatus": "RUNNING", "enableExecuteCommand": false, "group": "family:mytaskdef", "lastStatus": "PROVISIONING", "launchType": "EC2", "memory": "3072", "overrides": { "containerOverrides": [ { "name": "container-using-ebs" } ], "inferenceAcceleratorOverrides": [] }, "tags": [], "taskArn": "arn:aws:ecs:us-west-2:123456789012:task/default/bb122ace3ed84add92c00a351a03c69e", "taskDefinitionArn": "arn:aws:ecs:us-west-2:123456789012:task-definition/mytaskdef:4", "version": 1 } ], "failures": [] }

Pour plus d’informations, consultez Utilisation des volumes Amazon EBS avec Amazon ECS dans le Guide du développeur Amazon ECS.

  • Pour plus de détails sur l'API, reportez-vous StartTaskà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserstop-task.

AWS CLI

Pour arrêter une tâche

stop-task ci-dessous empêche la tâche spécifiée de s’exécuter dans le cluster par défaut.

aws ecs stop-task \ --task 666fdccc2e2d4b6894dd422f4eeee8f8

Sortie :

{ "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": [] } }
  • Pour plus de détails sur l'API, reportez-vous StopTaskà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utilisertag-resource.

AWS CLI

Pour baliser une ressource

L’exemple tag-resource suivant ajoute une seule balise à la ressource spécifiée.

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

Cette commande ne produit aucune sortie.

Pour ajouter plusieurs balises à une ressource

L’exemple tag-resource suivant ajoute plusieurs balises à la ressource spécifiée.

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

Cette commande ne produit aucune sortie.

  • Pour plus de détails sur l'API, reportez-vous TagResourceà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliseruntag-resource.

AWS CLI

Pour supprimer une balise d’une ressource

L’exemple untag-resource suivant supprime les balises répertoriées de la ressource spécifiée.

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

Cette commande ne produit aucune sortie.

  • Pour plus de détails sur l'API, reportez-vous UntagResourceà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserupdate-cluster-settings.

AWS CLI

Pour modifier les paramètres de votre cluster

L'update-cluster-settingsexemple suivant active CloudWatch Container Insights avec une meilleure observabilité pour le MyCluster cluster.

aws ecs update-cluster-settings \ --cluster MyCluster \ --settings name=containerInsights,value=enhanced

Sortie :

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

Pour plus d’informations, consultez Modification des paramètres de compte dans le Guide du développeur Amazon ECS.

  • Pour plus de détails sur l'API, reportez-vous UpdateClusterSettingsà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserupdate-cluster.

AWS CLI

Exemple 1 : pour mettre à jour le cluster ECS en activant containerInsights

update-cluster ci-dessous met à jour la valeur containerInsights sur enabled dans un cluster déjà créé. Par défaut, elle est désactivée.

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

Sortie :

"cluster": { "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/ECS-project-update-cluster", "clusterName": "ECS-project-update-cluster", "status": "ACTIVE", "registeredContainerInstancesCount": 0, "runningTasksCount": 0, "pendingTasksCount": 0, "activeServicesCount": 0, "statistics": [], "tags": [], "settings": [ { "name": "containerInsights", "value": "enabled" } ], "capacityProviders": [ "Infra-ECS-Cluster-ECS-project-update-cluster-d6bb6d5b-EC2CapacityProvider-3fIpdkLywwFt" ], "defaultCapacityProviderStrategy": [ { "capacityProvider": "Infra-ECS-Cluster-ECS-project-update-cluster-d6bb6d5b-EC2CapacityProvider-3fIpdkLywwFt", "weight": 1, "base": 0 } ], "attachments": [ { "id": "069d002b-7634-42e4-b1d4-544f4c8f6380", "type": "as_policy", "status": "CREATED", "details": [ { "name": "capacityProviderName", "value": "Infra-ECS-Cluster-ECS-project-update-cluster-d6bb6d5b-EC2CapacityProvider-3fIpdkLywwFt" }, { "name": "scalingPolicyName", "value": "ECSManagedAutoScalingPolicy-152363a6-8c65-484c-b721-42c3e070ae93" } ] }, { "id": "08b5b6ca-45e9-4209-a65d-e962a27c490a", "type": "managed_draining", "status": "CREATED", "details": [ { "name": "capacityProviderName", "value": "Infra-ECS-Cluster-ECS-project-update-cluster-d6bb6d5b-EC2CapacityProvider-3fIpdkLywwFt" }, { "name": "autoScalingLifecycleHookName", "value": "ecs-managed-draining-termination-hook" } ] }, { "id": "45d0b36f-8cff-46b6-9380-1288744802ab", "type": "sc", "status": "ATTACHED", "details": [] } ], "attachmentsStatus": "UPDATE_COMPLETE", "serviceConnectDefaults": { "namespace": "arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-igwrsylmy3kwvcdx" } }

Exemple 2 : pour mettre à jour le cluster ECS pour définir un espace de noms Service Connect par défaut

update-cluster ci-dessous met à jour le cluster ECS en définissant un espace de noms Service Connect par défaut.

aws ecs update-cluster \ --cluster ECS-project-update-cluster \ --service-connect-defaults namespace=test

Sortie :

{ "cluster": { "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/ECS-project-update-cluster", "clusterName": "ECS-project-update-cluster", "status": "ACTIVE", "registeredContainerInstancesCount": 0, "runningTasksCount": 0, "pendingTasksCount": 0, "activeServicesCount": 0, "statistics": [], "tags": [], "settings": [ { "name": "containerInsights", "value": "enabled" } ], "capacityProviders": [ "Infra-ECS-Cluster-ECS-project-update-cluster-d6bb6d5b-EC2CapacityProvider-3fIpdkLywwFt" ], "defaultCapacityProviderStrategy": [ { "capacityProvider": "Infra-ECS-Cluster-ECS-project-update-cluster-d6bb6d5b-EC2CapacityProvider-3fIpdkLywwFt", "weight": 1, "base": 0 } ], "attachments": [ { "id": "069d002b-7634-42e4-b1d4-544f4c8f6380", "type": "as_policy", "status": "CREATED", "details": [ { "name": "capacityProviderName", "value": "Infra-ECS-Cluster-ECS-project-update-cluster-d6bb6d5b-EC2CapacityProvider-3fIpdkLywwFt" }, { "name": "scalingPolicyName", "value": "ECSManagedAutoScalingPolicy-152363a6-8c65-484c-b721-42c3e070ae93" } ] }, { "id": "08b5b6ca-45e9-4209-a65d-e962a27c490a", "type": "managed_draining", "status": "CREATED", "details": [ { "name": "capacityProviderName", "value": "Infra-ECS-Cluster-ECS-project-update-cluster-d6bb6d5b-EC2CapacityProvider-3fIpdkLywwFt" }, { "name": "autoScalingLifecycleHookName", "value": "ecs-managed-draining-termination-hook" } ] }, { "id": "45d0b36f-8cff-46b6-9380-1288744802ab", "type": "sc", "status": "DELETED", "details": [] }, { "id": "3e6890c3-609c-4832-91de-d6ca891b3ef1", "type": "sc", "status": "ATTACHED", "details": [] }, { "id": "961b8ec1-c2f1-4070-8495-e669b7668e90", "type": "sc", "status": "DELETED", "details": [] } ], "attachmentsStatus": "UPDATE_COMPLETE", "serviceConnectDefaults": { "namespace": "arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-dtjmxqpfi46ht7dr" } } }

Pour plus d’informations sur Service Connect, consultez Use Service Connect to connect Amazon ECS services with short names dans le Guide du développeur Amazon ECS.

  • Pour plus de détails sur l'API, reportez-vous UpdateClusterà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserupdate-container-agent.

AWS CLI

Pour mettre à jour l’agent de conteneur sur une instance de conteneur Amazon ECS

L’exemple update-container-agent suivant met à jour l’agent de conteneur sur l’instance de conteneur spécifiée dans le cluster par défaut.

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

Sortie :

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

Pour plus d’informations, consultez Mise à jour de l’agent de conteneur Amazon ECS dans le Guide du développeur Amazon ECS.

  • Pour plus de détails sur l'API, reportez-vous UpdateContainerAgentà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserupdate-container-instances-state.

AWS CLI

Pour mettre à jour l’état d’une instance de conteneur

update-container-instances-state ci-dessous met à jour l’état de l’instance de conteneur spécifiée sur DRAINING qui la supprimera du cluster dans laquelle elle est enregistrée.

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

Sortie :

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

L'exemple de code suivant montre comment utiliserupdate-service-primary-task-set.

AWS CLI

Pour mettre à jour l’ensemble de tâches principal d’un service

L’exemple update-service-primary-task-set suivant met à jour l’ensemble de tâches principal pour le service spécifié.

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

Sortie :

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

L'exemple de code suivant montre comment utiliserupdate-service.

AWS CLI

Exemple 1 : pour modifier la définition de tâche utilisée dans un service

L’exemple update-service suivant met à jour le service my-http-service pour utiliser la définition de tâche amazon-ecs-sample.

aws ecs update-service \ --cluster test \ --service my-http-service \ --task-definition amazon-ecs-sample

Sortie :

{ "service": { "serviceArn": "arn:aws:ecs:us-west-2:123456789012:service/test/my-http-service", "serviceName": "my-http-service", "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/test", "loadBalancers": [], "serviceRegistries": [], "status": "ACTIVE", "desiredCount": 2, "runningCount": 2, "pendingCount": 0, "launchType": "FARGATE", "platformVersion": "1.4.0", "platformFamily": "Linux", "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/amazon-ecs-sample:2", "deploymentConfiguration": { "deploymentCircuitBreaker": { "enable": true, "rollback": true }, "maximumPercent": 200, "minimumHealthyPercent": 100, "alarms": { "alarmNames": [], "rollback": false, "enable": false } }, "deployments": [ { "id": "ecs-svc/7419115625193919142", "status": "PRIMARY", "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/amazon-ecs-sample:2", "desiredCount": 0, "pendingCount": 0, "runningCount": 0, "failedTasks": 0, "createdAt": "2025-02-21T13:26:02.734000-06:00", "updatedAt": "2025-02-21T13:26:02.734000-06:00", "launchType": "FARGATE", "platformVersion": "1.4.0", "platformFamily": "Linux", "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "subnet-12344321" ], "securityGroups": [ "sg-12344321" ], "assignPublicIp": "ENABLED" } }, "rolloutState": "IN_PROGRESS", "rolloutStateReason": "ECS deployment ecs-svc/7419115625193919142 in progress." }, { "id": "ecs-svc/1709597507655421668", "status": "ACTIVE", "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/old-amazon-ecs-sample:4", "desiredCount": 2, "pendingCount": 0, "runningCount": 2, "failedTasks": 0, "createdAt": "2025-01-24T11:13:07.621000-06:00", "updatedAt": "2025-02-02T16:11:30.838000-06:00", "launchType": "FARGATE", "platformVersion": "1.4.0", "platformFamily": "Linux", "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "subnet-12344321" ], "securityGroups": [ "sg-12344321" ], "assignPublicIp": "ENABLED" } }, "rolloutState": "COMPLETED", "rolloutStateReason": "ECS deployment ecs-svc/1709597507655421668 completed." } ], "roleArn": "arn:aws:iam::123456789012:role/aws-service-role/ecs.amazonaws.com/AWSServiceRoleForECS", "events": [ { "id": "e40b4d1c-80d9-4834-aaf3-6a268e530e17", "createdAt": "2025-02-21T10:31:26.037000-06:00", "message": "(my-http-service) has reached a steady state." }, { "id": "6ac069ad-fc8b-4e49-a35d-b5574a964c8e", "createdAt": "2025-02-21T04:31:22.703000-06:00", "message": "(my-http-service) has reached a steady state." }, { "id": "265f7d37-dfd1-4880-a846-ec486f341919", "createdAt": "2025-02-20T22:31:22.514000-06:00", "message": "(my-http-service) has reached a steady state." } ], "createdAt": "2024-10-30T17:12:43.218000-05:00", "placementConstraints": [], "placementStrategy": [], "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "subnet-12344321", ], "securityGroups": [ "sg-12344321" ], "assignPublicIp": "ENABLED" } }, "healthCheckGracePeriodSeconds": 0, "schedulingStrategy": "REPLICA", "deploymentController": { "type": "ECS" }, "createdBy": "arn:aws:iam::123456789012:role/AIDACKCEVSQ6C2EXAMPLE", "enableECSManagedTags": true, "propagateTags": "NONE", "enableExecuteCommand": false, "availabilityZoneRebalancing": "DISABLED" } }

Pour plus d’informations, consultez Mise à jour d’un service Amazon ECS à l’aide de la console dans le Guide du développeur Amazon ECS.

Exemple 2 : pour modifier le nombre de tâches dans un service

L’exemple update-service suivant met à jour le nombre de tâches souhaité du service my-http-service sur deux.

aws ecs update-service \ --cluster MyCluster \ --service my-http-service \ --desired-count 2

Sortie :

{ "service": { "serviceArn": "arn:aws:ecs:us-east-1:123456789012:service/MyCluster/my-http-service", "serviceName": "my-http-service", "clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/MyCluster", "loadBalancers": [], "serviceRegistries": [], "status": "ACTIVE", "desiredCount": 2, "runningCount": 1, "pendingCount": 0, "capacityProviderStrategy": [ { "capacityProvider": "FARGATE", "weight": 1, "base": 0 } ], "platformVersion": "LATEST", "platformFamily": "Linux", "taskDefinition": "arn:aws:ecs:us-east-1:123456789012:task-definition/MyTaskDefinition", "deploymentConfiguration": { "deploymentCircuitBreaker": { "enable": true, "rollback": true }, "maximumPercent": 200, "minimumHealthyPercent": 100, "alarms": { "alarmNames": [], "rollback": false, "enable": false } }, "deployments": [ { "id": "ecs-svc/1976744184940610707", "status": "PRIMARY", "taskkDefinition": "arn:aws:ecs:us-east-1:123456789012:task-definition/MyTaskDefinition", "desiredCount": 1, "pendingCount": 0, "runningCount": 1, "failedTasks": 0, "createdAt": "2024-12-03T16:24:25.225000-05:00", "updatedAt": "2024-12-03T16:25:15.837000-05:00", "capacityProviderStrategy": [ { "capacityProvider": "FARGATE", "weight": 1, "base": 0 } ], "platformVersion": "1.4.0", "platformFamily": "Linux", "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "subnet-0d0eab1bb38d5ca64", "subnet-0db5010045995c2d5" ], "securityGroups": [ "sg-02556bf85a191f59a" ], "assignPublicIp": "ENABLED" } }, "rolloutState": "COMPLETED", "rolloutStateReason": "ECS deployment ecs-svc/1976744184940610707 completed." } ], "roleArn": "arn:aws:iam::123456789012:role/aws-service-role/ecs.amazonaws.com/AWSServiceRoleForECS", "events": [ { "id": "f27350b9-4b2a-4e2e-b72e-a4b68380de45", "createdAt": "2024-12-30T13:24:07.345000-05:00", "message": "(service my-http-service) has reached a steady state." }, { "id": "e764ec63-f53f-45e3-9af2-d99f922d2957", "createdAt": "2024-12-30T12:32:21.600000-05:00", "message": "(service my-http-service) has reached a steady state." }, { "id": "28444756-c2fa-47f8-bd60-93a8e05f3991", "createdAt": "2024-12-08T19:26:10.367000-05:00", "message": "(service my-http-service) has reached a steady state." } ], "createdAt": "2024-12-03T16:24:25.225000-05:00", "placementConstraints": [], "placementStrategy": [], "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "subnet-0d0eab1bb38d5ca64", "subnet-0db5010045995c2d5" ], "securityGroups": [ "sg-02556bf85a191f59a" ], "assignPublicIp": "ENABLED" } }, "healthCheckGracePeriodSeconds": 0, "schedulingStrategy": "REPLICA", "deploymentController": { "type": "ECS" }, "createdBy": "arn:aws:iam::123456789012:role/Admin", "enableECSManagedTags": true, "propagateTags": "NONE", "enableExecuteCommand": false, "availabilityZoneRebalancing": "ENABLED" } }

Pour plus d’informations, consultez Mise à jour d’un service Amazon ECS à l’aide de la console dans le Guide du développeur Amazon ECS.

Exemple 3 : pour configurer des volumes Amazon EBS pour l’attachement lors de la mise à jour du service

L’exemple update-service suivant met à jour le service my-http-service pour utiliser des volumes Amazon EBS. Un rôle d’infrastructure Amazon ECS doit être configuré et la politique AmazonECSInfrastructureRolePolicyForVolumes gérée doit lui être associée. Vous devez également spécifier une définition de tâche portant le même nom de volume que dans la demande update-service et avec configuredAtLaunch défini sur true. Cet exemple utilise l’option --cli-input-json et un fichier d’entrée JSON appelé ebs.json.

aws ecs update-service \ --cli-input-json file://ebs.json

Contenu de ebs.json :

{ "cluster": "mycluster", "taskDefinition": "mytaskdef", "service": "my-http-service", "desiredCount": 2, "volumeConfigurations": [ { "name": "myEbsVolume", "managedEBSVolume": { "roleArn":"arn:aws:iam::123456789012:role/ecsInfrastructureRole", "volumeType": "gp3", "sizeInGiB": 100, "iops": 3000, "throughput": 125, "filesystemType": "ext4" } } ] }

Sortie :

{ "service": { "serviceArn": "arn:aws:ecs:us-west-2:123456789012:service/mycluster/my-http-service", "serviceName": "my-http-service", "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/mycluster", "loadBalancers": [], "serviceRegistries": [], "status": "ACTIVE", "desiredCount": 2, "runningCount": 2, "pendingCount": 0, "launchType": "FARGATE", "platformVersion": "LATEST", "platformFamily": "Linux", "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/mytaskdef:1", "deploymentConfiguration": { "deploymentCircuitBreaker": { "enable": true, "rollback": true }, "maximumPercent": 200, "minimumHealthyPercent": 100, "alarms": { "alarmNames": [], "rollback": false, "enable": false } }, "deployments": [ { "id": "ecs-svc/2420458347226626275", "status": "PRIMARY", "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/mytaskdef:1", "desiredCount": 0, "pendingCount": 0, "runningCount": 0, "failedTasks": 0, "createdAt": "2025-02-21T15:07:20.519000-06:00", "updatedAt": "2025-02-21T15:07:20.519000-06:00", "launchType": "FARGATE", "platformVersion": "1.4.0", "platformFamily": "Linux", "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "subnet-12344321", ], "securityGroups": [ "sg-12344321" ], "assignPublicIp": "ENABLED" } }, "rolloutState": "IN_PROGRESS", "rolloutStateReason": "ECS deployment ecs-svc/2420458347226626275 in progress.", "volumeConfigurations": [ { "name": "ebs-volume", "managedEBSVolume": { "volumeType": "gp3", "sizeInGiB": 100, "iops": 3000, "throughput": 125, "roleArn": "arn:aws:iam::123456789012:role/ecsInfrastructureRole", "filesystemType": "ext4" } } ] }, { "id": "ecs-svc/5191625155316533644", "status": "ACTIVE", "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/mytaskdef:2", "desiredCount": 2, "pendingCount": 0, "runningCount": 2, "failedTasks": 0, "createdAt": "2025-02-21T14:54:48.862000-06:00", "updatedAt": "2025-02-21T14:57:22.502000-06:00", "launchType": "FARGATE", "platformVersion": "1.4.0", "platformFamily": "Linux", "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "subnet-12344321" ], "securityGroups": [ "sg-12344321" ], "assignPublicIp": "ENABLED" } }, "rolloutState": "COMPLETED", "rolloutStateReason": "ECS deployment ecs-svc/5191625155316533644 completed." } ], "roleArn": "arn:aws:iam::123456789012:role/aws-service-role/ecs.amazonaws.com/AWSServiceRoleForECS", "events": [ { "id": "b5823113-c2c5-458e-9649-8c2ed38f23a5", "createdAt": "2025-02-21T14:57:22.508000-06:00", "message": "(service my-http-service) has reached a steady state." }, { "id": "b05a48e8-da35-4074-80aa-37ceb3167357", "createdAt": "2025-02-21T14:57:22.507000-06:00", "message": "(service my-http-service) (deployment ecs-svc/5191625155316533644) deployment completed." }, { "id": "a10cd55d-4ba6-4cea-a655-5a5d32ada8a0", "createdAt": "2025-02-21T14:55:32.833000-06:00", "message": "(service my-http-service) has started 1 tasks: (task fb9c8df512684aec92f3c57dc3f22361)." }, ], "createdAt": "2025-02-21T14:54:48.862000-06:00", "placementConstraints": [], "placementStrategy": [], "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "subnet-12344321" ], "securityGroups": [ "sg-12344321" ], "assignPublicIp": "ENABLED" } }, "healthCheckGracePeriodSeconds": 0, "schedulingStrategy": "REPLICA", "deploymentController": { "type": "ECS" }, "createdBy": "arn:aws:iam::123456789012:role/AIDACKCEVSQ6C2EXAMPLE", "enableECSManagedTags": true, "propagateTags": "NONE", "enableExecuteCommand": false, "availabilityZoneRebalancing": "ENABLED" } }

Pour plus d’informations, consultez Utilisation des volumes Amazon EBS avec Amazon ECS dans le Guide du développeur Amazon ECS.

Exemple 4 : pour mettre à jour un service afin de ne plus utiliser de volumes Amazon EBS

L’exemple update-service suivant met à jour le service my-http-service pour qu’il n’utilise plus de volumes Amazon EBS. Vous devez spécifier une révision de définition de tâche avec configuredAtLaunch défini sur false.

aws ecs update-service \ --cluster mycluster \ --task-definition mytaskdef \ --service my-http-service \ --desired-count 2 \ --volume-configurations "[]"

Sortie :

{ "service": { "serviceArn": "arn:aws:ecs:us-west-2:123456789012:service/mycluster/my-http-service", "serviceName": "my-http-service", "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/mycluster", "loadBalancers": [], "serviceRegistries": [], "status": "ACTIVE", "desiredCount": 2, "runningCount": 2, "pendingCount": 0, "launchType": "FARGATE", "platformVersion": "LATEST", "platformFamily": "Linux", "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/mytaskdef:3", "deploymentConfiguration": { "deploymentCircuitBreaker": { "enable": true, "rollback": true }, "maximumPercent": 200, "minimumHealthyPercent": 100, "alarms": { "alarmNames": [], "rollback": false, "enable": false } }, "deployments": [ { "id": "ecs-svc/7522791612543716777", "status": "PRIMARY", "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/mytaskdef:3", "desiredCount": 0, "pendingCount": 0, "runningCount": 0, "failedTasks": 0, "createdAt": "2025-02-21T15:25:38.598000-06:00", "updatedAt": "2025-02-21T15:25:38.598000-06:00", "launchType": "FARGATE", "platformVersion": "1.4.0", "platformFamily": "Linux", "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "subnet-12344321" ], "securityGroups": [ "sg-12344321" ], "assignPublicIp": "ENABLED" } }, "rolloutState": "IN_PROGRESS", "rolloutStateReason": "ECS deployment ecs-svc/7522791612543716777 in progress." }, { "id": "ecs-svc/2420458347226626275", "status": "ACTIVE", "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/myoldtaskdef:1", "desiredCount": 2, "pendingCount": 0, "runningCount": 2, "failedTasks": 0, "createdAt": "2025-02-21T15:07:20.519000-06:00", "updatedAt": "2025-02-21T15:10:59.955000-06:00", "launchType": "FARGATE", "platformVersion": "1.4.0", "platformFamily": "Linux", "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "subnet-12344321" ], "securityGroups": [ "sg-12344321" ], "assignPublicIp": "ENABLED" } }, "rolloutState": "COMPLETED", "rolloutStateReason": "ECS deployment ecs-svc/2420458347226626275 completed.", "volumeConfigurations": [ { "name": "ebs-volume", "managedEBSVolume": { "volumeType": "gp3", "sizeInGiB": 100, "iops": 3000, "throughput": 125, "roleArn": "arn:aws:iam::123456789012:role/ecsInfrastructureRole", "filesystemType": "ext4" } } ] } ], "roleArn": "arn:aws:iam::123456789012:role/aws-service-role/ecs.amazonaws.com/AWSServiceRoleForECS", "events": [ { "id": "4f2c3ca1-7800-4048-ba57-bba210ada2ad", "createdAt": "2025-02-21T15:10:59.959000-06:00", "message": "(service my-http-service) has reached a steady state." }, { "id": "4b36a593-2d40-4ed6-8be8-b9b699eb6198", "createdAt": "2025-02-21T15:10:59.958000-06:00", "message": "(service my-http-service) (deployment ecs-svc/2420458347226626275) deployment completed." }, { "id": "88380089-14e2-4ef0-8dbb-a33991683371", "createdAt": "2025-02-21T15:09:39.055000-06:00", "message": "(service my-http-service) has stopped 1 running tasks: (task fb9c8df512684aec92f3c57dc3f22361)." }, { "id": "97d84243-d52f-4255-89bb-9311391c61f6", "createdAt": "2025-02-21T15:08:57.653000-06:00", "message": "(service my-http-service) has stopped 1 running tasks: (task 33eff090ad2c40539daa837e6503a9bc)." }, { "id": "672ece6c-e2d0-4021-b5da-eefb14001687", "createdAt": "2025-02-21T15:08:15.631000-06:00", "message": "(service my-http-service) has started 1 tasks: (task 996c02a66ff24f3190a4a8e0c841740f)." }, { "id": "a3cf9bea-9be6-4175-ac28-4c68360986eb", "createdAt": "2025-02-21T15:07:36.931000-06:00", "message": "(service my-http-service) has started 1 tasks: (task d5d23c39f89e46cf9a647b9cc6572feb)." }, { "id": "b5823113-c2c5-458e-9649-8c2ed38f23a5", "createdAt": "2025-02-21T14:57:22.508000-06:00", "message": "(service my-http-service) has reached a steady state." }, { "id": "b05a48e8-da35-4074-80aa-37ceb3167357", "createdAt": "2025-02-21T14:57:22.507000-06:00", "message": "(service my-http-service) (deployment ecs-svc/5191625155316533644) deployment completed." }, { "id": "a10cd55d-4ba6-4cea-a655-5a5d32ada8a0", "createdAt": "2025-02-21T14:55:32.833000-06:00", "message": "(service my-http-service) has started 1 tasks: (task fb9c8df512684aec92f3c57dc3f22361)." }, { "id": "42da91fa-e26d-42ef-88c3-bb5965c56b2f", "createdAt": "2025-02-21T14:55:02.703000-06:00", "message": "(service my-http-service) has started 1 tasks: (task 33eff090ad2c40539daa837e6503a9bc)." } ], "createdAt": "2025-02-21T14:54:48.862000-06:00", "placementConstraints": [], "placementStrategy": [], "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "subnet-12344321" ], "securityGroups": [ "sg-12344321" ], "assignPublicIp": "ENABLED" } }, "healthCheckGracePeriodSeconds": 0, "schedulingStrategy": "REPLICA", "deploymentController": { "type": "ECS" }, "createdBy": "arn:aws:iam::123456789012:role/AIDACKCEVSQ6C2EXAMPLE", "enableECSManagedTags": true, "propagateTags": "NONE", "enableExecuteCommand": false, "availabilityZoneRebalancing": "ENABLED" } }

Pour plus d’informations, consultez Utilisation des volumes Amazon EBS avec Amazon ECS dans le Guide du développeur Amazon ECS.

Exemple 5 : pour activer le rééquilibrage des zones de disponibilité pour un service

L’exemple update-service suivant active le rééquilibrage des zones de disponibilité pour le service my-http-service.

aws ecs update-service \ --cluster MyCluster \ --service my-http-service \ --availability-zone-rebalancing ENABLED

Sortie :

{ "service": { "serviceArn": "arn:aws:ecs:us-east-1:123456789012:service/MyCluster/my-http-service", "serviceName": "my-http-service", "clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/MyCluster", "loadBalancers": [], "serviceRegistries": [], "status": "ACTIVE", "desiredCount": 2, "runningCount": 1, "pendingCount": 0, "capacityProviderStrategy": [ { "capacityProvider": "FARGATE", "weight": 1, "base": 0 } ], "platformVersion": "LATEST", "platformFamily": "Linux", "taskDefinition": "arn:aws:ecs:us-east-1:123456789012:task-definition/MyTaskDefinition", "deploymentConfiguration": { "deploymentCircuitBreaker": { "enable": true, "rollback": true }, "maximumPercent": 200, "minimumHealthyPercent": 100, "alarms": { "alarmNames": [], "rollback": false, "enable": false } }, "deployments": [ { "id": "ecs-svc/1976744184940610707", "status": "PRIMARY", "taskkDefinition": "arn:aws:ecs:us-east-1:123456789012:task-definition/MyTaskDefinition", "desiredCount": 1, "pendingCount": 0, "runningCount": 1, "failedTasks": 0, "createdAt": "2024-12-03T16:24:25.225000-05:00", "updatedAt": "2024-12-03T16:25:15.837000-05:00", "capacityProviderStrategy": [ { "capacityProvider": "FARGATE", "weight": 1, "base": 0 } ], "platformVersion": "1.4.0", "platformFamily": "Linux", "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "subnet-0d0eab1bb38d5ca64", "subnet-0db5010045995c2d5" ], "securityGroups": [ "sg-02556bf85a191f59a" ], "assignPublicIp": "ENABLED" } }, "rolloutState": "COMPLETED", "rolloutStateReason": "ECS deployment ecs-svc/1976744184940610707 completed." } ], "roleArn": "arn:aws:iam::123456789012:role/aws-service-role/ecs.amazonaws.com/AWSServiceRoleForECS", "events": [], "createdAt": "2024-12-03T16:24:25.225000-05:00", "placementConstraints": [], "placementStrategy": [], "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "subnet-0d0eab1bb38d5ca64", "subnet-0db5010045995c2d5" ], "securityGroups": [ "sg-02556bf85a191f59a" ], "assignPublicIp": "ENABLED" } }, "healthCheckGracePeriodSeconds": 0, "schedulingStrategy": "REPLICA", "deploymentController": { "type": "ECS" }, "createdBy": "arn:aws:iam::123456789012:role/Admin", "enableECSManagedTags": true, "propagateTags": "NONE", "enableExecuteCommand": false, "availabilityZoneRebalancing": "ENABLED" } }

Pour plus d’informations, consultez Mise à jour d’un service Amazon ECS à l’aide de la console dans le Guide du développeur Amazon ECS.

  • Pour plus de détails sur l'API, reportez-vous UpdateServiceà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserupdate-task-protection.

AWS CLI

Exemple 1 : pour activer la protection des tâches pour les tâches ECS

Ce qui suit update-task-protection protège votre tâche ECS contre toute interruption lors de la mise en place à partir de déploiements ou de services. AutoScaling Vous pouvez spécifier une période d’expiration personnalisée pour la protection des tâches de 1 à 2 880 minutes (48 heures). Si vous ne spécifiez pas de période d’expiration, la durée par défaut d’activation de la protection des tâches est de 2 heures.

aws ecs update-task-protection \ --cluster ECS-project-update-cluster \ --tasks c43ed3b1331041f289316f958adb6a24 \ --protection-enabled \ --expires-in-minutes 300

Sortie :

{ "protectedTasks": [ { "taskArn": "arn:aws:ecs:us-west-2:123456789012:task/c43ed3b1331041f289316f958adb6a24", "protectionEnabled": true, "expirationDate": "2024-09-14T19:53:36.687000-05:00" } ], "failures": [] }

Exemple 2 : pour désactiver la protection des tâches pour les tâches ECS

Ce qui suit update-task-protection désactive les tâches protégées contre l'évolutivité provenant des déploiements ou des services. AutoScaling

aws ecs update-task-protection \ --cluster ECS-project-update-cluster \ --tasks c43ed3b1331041f289316f958adb6a24 \ --no-protection-enabled

Sortie :

{ "protectedTasks": [ { "taskArn": "arn:aws:ecs:us-west-2:123456789012:task/c43ed3b1331041f289316f958adb6a24", "protectionEnabled": false } ], "failures": [] }

Pour plus d’informations sur la protection des tâches, consultez Protect your Amazon ECS tasks from being terminated by scale-in events dans le Guide du développeur Amazon ECS.

  • Pour plus de détails sur l'API, reportez-vous UpdateTaskProtectionà la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserupdate-task-set.

AWS CLI

Pour mettre à jour un ensemble de tâches

L’exemple update-task-set suivant met à jour un ensemble de tâches pour ajuster l’échelle.

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

Sortie :

{ "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 } }
  • Pour plus de détails sur l'API, reportez-vous UpdateTaskSetà la section Référence des AWS CLI commandes.