

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.

# Paramètres de définition de tâche Amazon ECS pour Amazon EC2
<a name="task_definition_parameters_ec2"></a>

Les définitions de tâches sont divisées en plusieurs parties : la famille de tâches, le rôle de tâche Gestion des identités et des accès AWS (IAM), le mode réseau, les définitions des conteneurs, les volumes, les contraintes de placement des tâches et la capacité. Les définitions de famille et de conteneur sont requises dans une définition de tâche. En revanche, le rôle de tâche, le mode réseau, les volumes, les contraintes de placement des tâches et le type de lancement sont facultatifs.

Vous pouvez utiliser ces paramètres dans un fichier JSON pour configurer votre définition de tâche.

Voici des descriptions plus détaillées de chaque paramètre de définition de tâche pour Amazon EC2.

## Family
<a name="family_ec2"></a>

`family`  
Type : Chaîne  
Obligatoire : oui  
Lorsque vous enregistrez une définition de tâche, vous lui attribuez une famille. Cela équivaut, pour plusieurs versions de définition de tâche, à lui attribuer un nom spécifié avec un numéro de révision. La première définition de tâche enregistrée dans une famille donnée reçoit le numéro de révision 1. Toute définition de tâche enregistrée après celle-ci reçoit un numéro de révision ultérieur dans l'ordre séquentiel.

## Capacity
<a name="requires_compatibilities_ec2"></a>

Lorsque vous enregistrez une définition de tâche, vous pouvez spécifier la capacité par rapport à laquelle Amazon ECS doit valider la définition de tâche. Une exception client est renvoyée si la définition de tâche n'est pas conforme aux compatibilités spécifiées.

Le paramètre suivant est autorisé dans une définition de tâche.

`requiresCompatibilities`  
Type : tableau de chaînes  
Obligatoire : non  
Valeurs valides : `EC2`   
La capacité par rapport à laquelle valider la définition de tâche. Une vérification est alors lancée afin de s’assurer que tous les paramètres utilisés dans la définition de tâche répondent aux exigences d’Amazon EC2.

## Rôle de tâche
<a name="task_role_arn_ec2"></a>

`taskRoleArn`  
Type : chaîne  
Obligatoire : non  
Lorsque vous enregistrez une définition de tâche, vous pouvez attribuer un rôle de tâche à un rôle IAM qui permet aux conteneurs concernés par l'autorisation de tâche d'appeler AWS APIs les conteneurs spécifiés dans les politiques associées en votre nom. Pour de plus amples informations, veuillez consulter [rôle IAM de tâche Amazon ECS](task-iam-roles.md).  
Lorsque vous lancez l'AMI Windows Server optimisée pour Amazon ECS, les rôles IAM pour les tâches sous Windows nécessitent que l'option `-EnableTaskIAMRole` soit définie. Vos conteneurs doivent également exécuter certains codes de configuration afin d'utiliser la fonctionnalité. Pour de plus amples informations, veuillez consulter [Configuration supplémentaire d’instance Windows Amazon EC2](task-iam-roles.md#windows_task_IAM_roles).

## Rôle d'exécution de tâche
<a name="execution_role_arn_ec2"></a>

`executionRoleArn`  
Type : Chaîne  
Obligatoire : Conditionnelle  
Le nom de ressource Amazon (ARN) du rôle d'exécution des tâches qui autorise l'agent de conteneur Amazon ECS à effectuer des appels d' AWS API en votre nom.   
Le rôle IAM d'exécution de la tâche est requis en fonction des besoins de votre tâche. Pour de plus amples informations, veuillez consulter [Rôle IAM d'exécution de tâche Amazon ECS](task_execution_IAM_role.md).

## Mode réseau
<a name="network_mode_ec2"></a>

`networkMode`  
Type : chaîne  
Obligatoire : non  
Mode réseau Docker à utiliser pour les conteneurs de la tâche. Pour les tâches Amazon ECS hébergées sur des instances Linux Amazon EC2, les valeurs valides sont `none`, `bridge`, `awsvpc` et `host`. Si aucun mode réseau n’est spécifié, le mode réseau par défaut est `bridge`. Pour les tâches Amazon ECS hébergées sur des instances Windows Amazon EC2, les valeurs valides sont `default` et `awsvpc`. Si aucun mode réseau n’est spécifié, le mode réseau `default` est utilisé.  
Si le mode réseau est défini sur `none`, les conteneurs de la tâche ne disposent d'aucune connectivité externe et les mappages de ports ne peuvent pas être spécifiés dans la définition du conteneur.  
Si le mode réseau est `bridge`, la tâche utilise le réseau virtuel intégré de Docker sous Linux, qui s'exécute à l'intérieur de chaque instance Amazon EC2 hébergeant la tâche. Le réseau virtuel intégré sous Linux utilise le pilote réseau Docker `bridge`.  
Si le mode réseau est `host`, la tâche utilise le réseau de l'hôte qui contourne le réseau virtuel intégré de Docker en mappant les ports de conteneur directement à l'ENI de l'instance Amazon EC2 qui héberge la tâche. Les mappages de ports dynamiques ne peuvent pas être utilisés dans ce mode réseau. Dans une définition de tâche qui utilise ce mode, un conteneur doit spécifier un numéro `hostPort` spécifique. Un numéro de port sur un hôte ne peut pas être utilisé par plusieurs tâches. Dans ce mode, vous ne pouvez pas exécuter plusieurs tâches de la même définition de tâche sur une instance Amazon EC2 unique.  
Lorsque vous exécutez des tâches en mode réseau `host`, vous n'exécutez pas de conteneurs à l'aide de l'utilisateur root (UID 0) pour une meilleure sécurité. Comme bonne pratique de sécurité, utilisez toujours un utilisateur non root.
Si le mode réseau est `awsvpc`, une interface réseau Elastic est attribuée à la tâche, et vous devez spécifier une configuration `NetworkConfiguration` lorsque vous créez un service ou exécutez une tâche avec la définition de tâche. Pour de plus amples informations, veuillez consulter [Options de mise en réseau des tâches Amazon ECS pour EC2](task-networking.md).  
Si le mode réseau est `default`, la tâche utilise le réseau virtuel intégré de Docker sous Windows, qui s'exécute à l'intérieur de chaque instance Amazon EC2 hébergeant la tâche. Le réseau virtuel intégré sous Windows utilise le pilote réseau Docker `nat`.   
Les modes réseau `host` et `awsvpc` offrent les meilleures performances de mise en réseau pour les conteneurs, car ils utilisent la pile de réseau Amazon EC2. Avec les modes réseau `host` et `awsvpc`, les ports de conteneur exposés sont mappés directement au port hôte correspondant (pour le mode réseau hôte `host`) ou au port de l'interface réseau Elastic (pour le mode réseau `awsvpc`). Pour cette raison, vous ne pouvez pas utiliser de mappages de ports hôtes dynamiques.  
Le mode réseau autorisé dépend du système d’exploitation de l’instance EC2 sous-jacente. Sous Linux, n'importe quel mode réseau peut être utilisé. S'il s'agit de Windows, les modes `default` et `awsvpc` peuvent être utilisés. 

## Plateforme d'exécution
<a name="runtime-platform_ec2"></a>

`operatingSystemFamily`  
Type : Chaîne  
Obligatoire : Conditionnelle  
Par défaut : LINUX  
Lorsque vous enregistrez une définition de tâche, vous spécifiez la famille du système d'exploitation.   
Les valeurs valides sont `LINUX`, `WINDOWS_SERVER_2025_FULL`, `WINDOWS_SERVER_2025_CORE`, `WINDOWS_SERVER_2022_CORE`, `WINDOWS_SERVER_2022_FULL`, `WINDOWS_SERVER_2019_FULL`, `WINDOWS_SERVER_2019_CORE`, `WINDOWS_SERVER_2016_FULL`, `WINDOWS_SERVER_2004_CORE` et `WINDOWS_SERVER_20H2_CORE`.  
Toutes les définitions de tâches qui sont utilisées dans un service doivent avoir la même valeur pour ce paramètre.  
Lorsqu'une définition de tâche fait partie d'un service, cette valeur doit correspondre à la valeur `platformFamily` du service.

`cpuArchitecture`  
Type : Chaîne  
Obligatoire : Conditionnelle  
Lorsque vous enregistrez une définition de tâche, vous pouvez spécifier l'architecture du processeur. Les valeurs valides sont `X86_64` et `ARM64`. Si vous ne spécifiez aucune valeur, Amazon ECS tente de placer les tâches sur l'architecture de processeur disponible en fonction de la configuration du fournisseur de capacité. Pour garantir que les tâches sont placées sur une architecture de processeur spécifique, spécifiez une valeur pour `cpuArchitecture` dans la définition des tâches.  
Toutes les définitions de tâches qui sont utilisées dans un service doivent avoir la même valeur pour ce paramètre.  
Lorsque vous avez des tâches Linux, vous pouvez définir la valeur sur `ARM64`. Pour de plus amples informations, veuillez consulter [Définitions de tâche Amazon ECS pour les charges de travail ARM 64 bits](ecs-arm64.md).

## Taille de la tâche
<a name="task_size_ec2"></a>

Lorsque vous enregistrez une définition de tâche, vous pouvez spécifier la quantité totale d'UC et de mémoire utilisée pour cette tâche. Ces valeurs sont distinctes des valeurs `cpu` et `memory` au niveau de la définition de conteneur. Pour les tâches hébergées sur des instances Amazon EC2, ces champs sont facultatifs.

**Note**  
Les paramètres d'UC et de mémoire de niveau tâche sont ignorés pour les conteneurs Windows. Nous vous recommandons de spécifier des ressources de niveau conteneur pour les conteneurs Windows.

`cpu`  
Type : Chaîne  
Obligatoire : Conditionnelle  
Ce paramètre n'est pas pris en charge par les conteneurs Windows.
Limite stricte du nombre d'unités UC à présenter pour la tâche. Vous pouvez spécifier les valeurs du processeur dans le fichier JSON sous forme de chaîne en unités de processeur ou en mode virtuel CPUs (vCPUs). Par exemple, vous pouvez spécifier une valeur de processeur soit `1024` en unités de processeur, soit `1 vCPU` en CPUs v. Lorsque la définition de tâche est enregistrée, une valeur vCPU est convertie en un entier indiquant les unités du processeur.  
Ce champ est facultatif. Si votre cluster n'a pas d'instances de conteneur enregistrées avec les unités UC demandées disponibles, la tâche échoue. Les valeurs prises en charge sont comprises entre `0.125` `192` v CPUs et CPUs v.

`memory`  
Type : Chaîne  
Obligatoire : Conditionnelle  
Ce paramètre n'est pas pris en charge par les conteneurs Windows.
Limite stricte de quantité de mémoire à allouer à la tâche. Vous pouvez spécifier les valeurs de mémoire dans la définition de la tâche sous forme de chaîne en mébioctets (Mio) ou en gigaoctets (Go). Par exemple, vous pouvez spécifier une valeur de mémoire de `3072` en Mio ou de `3 GB` en Go. Lorsque la définition de tâche est enregistrée, la valeur en Go est convertie en un nombre entier indiquant la quantité de Mio.  
Ce champ est facultatif et n'importe quelle valeur peut être utilisée. Si une valeur de mémoire au niveau de la tâche est spécifiée, la valeur de mémoire au niveau du conteneur est facultative. Si votre cluster n'a pas d'instances de conteneur enregistrées avec la mémoire demandée disponible, la tâche échoue. Vous pouvez optimiser l'utilisation de vos ressources en fournissant à vos tâches autant de mémoire que possible pour un type d'instance particulier. Pour de plus amples informations, veuillez consulter [Réservation de mémoire pour une instance de conteneur Amazon ECS Linux](memory-management.md).

## Définitions de conteneur
<a name="container_definitions_ec2"></a>

Lorsque vous enregistrez une définition de tâche, vous devez spécifier une liste de définitions de conteneur qui sont transmises au démon Docker sur une instance de conteneur. Les paramètres suivants sont autorisés dans une définition de conteneur.

**Topics**
+ [Paramètres de définition de conteneur standards](#standard_container_definition_params_ec2)
+ [Paramètres de définition de conteneur avancés](#advanced_container_definition_params_ec2)
+ [Autres paramètres de définition de conteneur](#other_container_definition_params_ec2)

### Paramètres de définition de conteneur standards
<a name="standard_container_definition_params_ec2"></a>

Les paramètres de définition de tâche suivants sont obligatoires ou utilisés dans la plupart des définitions de conteneur.

**Topics**
+ [Nom](#container_definition_name_ec2)
+ [Image](#container_definition_image_ec2)
+ [Mémoire](#container_definition_memory_ec2)
+ [Mappages de ports](#container_definition_portmappings_ec2)
+ [Informations d'identification du référentiel privé](#container_definition_repositoryCredentials_ec2)

#### Nom
<a name="container_definition_name_ec2"></a>

`name`  
Type : Chaîne  
Obligatoire : oui  
Le nom d'un conteneur. Jusqu'à 255 lettres (majuscules et minuscules), chiffres, traits d'union et traits de soulignement sont autorisés. Si vous associez plusieurs conteneurs dans une définition de tâche, vous pouvez spécifier l'option `name` d'un conteneur dans l'option `links` d'un autre conteneur. Cela permet de connecter les conteneurs.

#### Image
<a name="container_definition_image_ec2"></a>

`image`  
Type : Chaîne  
Obligatoire : oui  
Image utilisée pour démarrer un conteneur. Cette chaîne est transmise directement au démon Docker. Par défaut, les images dans le registre Docker Hub sont disponibles. Vous pouvez également spécifier d'autres référentiels avec soit `repository-url/image:tag`, soit `repository-url/image@digest`. Il peut comporter jusqu'à 255 lettres (majuscules et minuscules), des chiffres, des tirets, des traits de soulignement, deux points, des points, des barres obliques et des signes dièse. Ce paramètre correspond à `Image` dans la commande docker create-container et au paramètre `IMAGE` de la commande docker run.  
+ Lorsqu'une nouvelle tâche démarre, l'agent de conteneur Amazon ECS extrait la version la plus récente de l'image et de l'étiquette spécifiées afin que le conteneur puisse les utiliser. Notez cependant que les mises à jour ultérieures apportées à une image de référentiel ne sont pas répercutées sur les tâches déjà en cours d'exécution.
+ Lorsque vous ne spécifiez pas de balise ou de résumé dans le chemin de l'image dans la définition de tâche, l'agent de conteneur Amazon ECS utilise la `latest` balise pour extraire l'image spécifiée. 
+  Les mises à jour ultérieures d'une image de référentiel ne sont pas répercutées sur les tâches déjà en cours d'exécution.
+ Les images des registres privés sont prises en charge. Pour de plus amples informations, veuillez consulter [Utilisation d'images autres que des AWS conteneurs dans Amazon ECS](private-auth.md).
+ Les images des référentiels Amazon ECR peuvent être spécifiées en utilisant soit la convention de dénomination complète `registry/repository:tag` ou `registry/repository@digest` (par exemple, `aws_account_id.dkr.ecr.region.amazonaws.com``/my-web-app:latest` ou `aws_account_id.dkr.ecr.region.amazonaws.com``/my-web-app@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE`).
+ Les images dans les référentiels officiels sur Docker Hub utilisent un nom unique (par exemple, `ubuntu` ou `mongo`).
+ Les images dans les autres référentiels sur Docker Hub sont qualifiées par un nom d'organisation (par exemple, `amazon/amazon-ecs-agent`).
+ Les images dans les autres référentiels en ligne sont qualifiées par un nom de domaine (par exemple, `quay.io/assemblyline/ubuntu`).

`versionConsistency`  
Type : Chaîne  
Valeurs valides : `enabled`\$1`disabled`  
Obligatoire : non  
Spécifie si Amazon ECS résoudra la balise d’image de conteneur fournie dans la définition du conteneur en un condensé d’image. Par défaut, ce comportement est `enabled`. Si vous définissez la valeur d’un conteneur sur `disabled`, Amazon ECS ne résoudra pas la balise d’image de conteneur en un condensé et utilisera l’URI d’image d’origine spécifiée dans la définition du conteneur pour le déploiement. Pour plus d’informations sur la résolution des images de conteneur, consultez la section [Résolution des images de conteneurs](deployment-type-ecs.md#deployment-container-image-stability).

#### Mémoire
<a name="container_definition_memory_ec2"></a>

`memory`  
Type : Integer  
Obligatoire : non  
La quantité de mémoire (en Mio) à présenter au conteneur. Si votre conteneur tente de dépasser la mémoire spécifiée ici, il sera désactivé. La quantité totale de mémoire réservée pour tous les conteneurs au sein d'une tâche doit être inférieure à la valeur `memory` de la tâche, si cette valeur est spécifiée. Ce paramètre correspond à `Memory` dans la commande docker create-container et à l’option `--memory` dans la commande docker run.  
Vous devez spécifier une valeur de mémoire soit au niveau de la tâche, soit au niveau du conteneur. Si vous spécifiez à la fois une valeur de `memory` au niveau du conteneur et une valeur `memoryReservation`, la valeur de `memory` doit être supérieure à celle de `memoryReservation`. Si vous spécifiez `memoryReservation`, cette valeur est soustraite des ressources mémoire disponibles pour l'instance de conteneur sur laquelle le conteneur est placé. Sinon, c'est la valeur `memory` qui est utilisée.  
Le démon Docker 20.10.0 ou ultérieur réserve un minimum de 6 Mio de mémoire pour un conteneur. Par conséquent, ne spécifiez pas moins de 6 Mio de mémoire pour vos conteneurs.  
Le démon Docker 19.03.13-ce ou antérieur réserve un minimum de 4 Mio de mémoire pour un conteneur. Par conséquent, ne spécifiez pas moins de 4 Mio de mémoire pour vos conteneurs.  
Si vous essayez d'optimiser l'utilisation de vos ressources en fournissant à vos tâches autant de mémoire que possible pour un type d'instance particulier, consultez [Réservation de mémoire pour une instance de conteneur Amazon ECS Linux](memory-management.md).

`memoryReservation`  
Type : Integer  
Obligatoire : non  
La limite flexible (en Mio) de mémoire à réserver pour le conteneur. En cas de contention de la mémoire système, Docker tente de garder la mémoire du conteneur en deçà de cette limite flexible. Toutefois, votre conteneur peut utiliser davantage de mémoire en cas de besoin. Le conteneur peut consommer jusqu'à la limite stricte spécifiée avec le paramètre `memory` (le cas échéant), ou la totalité de la mémoire disponible sur l'instance de conteneur, selon la première valeur atteinte. Ce paramètre correspond à `MemoryReservation` dans la commande docker create-container et à l’option `--memory-reservation` dans la commande docker run.  
Si aucune valeur de mémoire au niveau de la tâche n'est spécifiée, vous devez indiquer un nombre entier différent de zéro pour `memory` ou `memoryReservation` dans une définition de conteneur. Si vous spécifiez les deux, `memory` doit être supérieur à `memoryReservation`. Si vous spécifiez `memoryReservation`, cette valeur est soustraite des ressources mémoire disponibles pour l'instance de conteneur sur laquelle le conteneur est placé. Sinon, c'est la valeur `memory` qui est utilisée.  
Par exemple, supposons que votre conteneur utilise normalement 128 Mio de mémoire, mais qu'il lui arrive d'utiliser jusqu'à 256 Mio de mémoire pendant de courtes périodes. Vous pouvez définir une `memoryReservation` de 128 Mio et une limite stricte `memory` de 300 Mio. Cette configuration permet au conteneur de ne réserver que 128 Mio de mémoire à partir des ressources restantes sur l'instance de conteneur. En même temps, cette configuration permet également au conteneur d'utiliser davantage de ressources mémoire lorsque cela est nécessaire.  
Ce paramètre n'est pas pris en charge par les conteneurs Windows.
Le démon Docker 20.10.0 ou ultérieur réserve un minimum de 6 Mio de mémoire pour un conteneur. Par conséquent, ne spécifiez pas moins de 6 Mio de mémoire pour vos conteneurs.  
Le démon Docker 19.03.13-ce ou antérieur réserve un minimum de 4 Mio de mémoire pour un conteneur. Par conséquent, ne spécifiez pas moins de 4 Mio de mémoire pour vos conteneurs.  
Si vous essayez d'optimiser l'utilisation de vos ressources en fournissant à vos tâches autant de mémoire que possible pour un type d'instance particulier, consultez [Réservation de mémoire pour une instance de conteneur Amazon ECS Linux](memory-management.md).

#### Mappages de ports
<a name="container_definition_portmappings_ec2"></a>

`portMappings`  
Type : tableau d'objets  
Obligatoire : non  
Les mappages de ports exposent les ports réseau de votre conteneur au monde extérieur, ce qui permet aux clients d’accéder à votre application. Ils sont également utilisés pour la communication entre conteneurs au sein d’une même tâche.  
Pour les définitions de tâche qui utilisent le mode réseau `awsvpc`, spécifiez uniquement `containerPort`. Le `hostPort` est toujours ignoré et le port du conteneur est automatiquement mappé à un port aléatoire portant un numéro élevé sur l’hôte.  
Les mappages de ports sur Windows utilisent l'adresse de passerelle `NetNAT` plutôt que `localhost`. Il n'existe aucune boucle pour les mappages de ports sous Windows, donc vous ne pouvez pas accéder au port mappé d'un conteneur à partir de l'hôte lui-même.   
La plupart des champs de ce paramètre (y compris `containerPort`, `hostPort`, `protocol`) correspondent à `PortBindings` dans la commande docker create-container et à l’option `--publish` de docker run. Si le mode réseau d'une définition de tâche est défini sur `host`, les ports hôtes doivent être indéfinis ou correspondre au port du conteneur dans le mappage de port.  
Une fois qu'une tâche passe à l'état `RUNNING`, les affectations manuelles et automatiques de ports de conteneur et d'hôte sont visibles aux emplacements suivants :  
+ Console : la section **Network Bindings** (Liaisons réseau) de la description d'un conteneur pour une tâche sélectionnée.
+ AWS CLI : la section `networkBindings` de la sortie de la commande **describe-tasks**.
+ API : la réponse `DescribeTasks`.
+ Métadonnées : point de terminaison des métadonnées de la tâche.  
`appProtocol`  
Type : chaîne  
Obligatoire : non  
Protocole d'application utilisé pour le mappage de port. Ce paramètre s'applique uniquement à Service Connect. Nous vous conseillons de définir ce paramètre de manière cohérente avec le protocole que votre application utilise. Si vous définissez ce paramètre, Amazon ECS ajoute une gestion de connexion spécifique au protocole au proxy Service Connect. Si vous définissez ce paramètre, Amazon ECS ajoute une télémétrie spécifique au protocole dans la console Amazon ECS et. CloudWatch  
Si vous ne définissez aucune valeur pour ce paramètre, le protocole TCP est utilisé. Toutefois, Amazon ECS n'ajoute pas de télémétrie spécifique au protocole pour TCP.  
Pour de plus amples informations, veuillez consulter [Utilisation de Service Connect pour connecter des services Amazon ECS avec des noms abrégés](service-connect.md).  
Valeurs de protocole valides : `"http" | "http2" | "grpc" `  
`containerPort`  
Type : Integer  
Obligatoire : oui, lorsque des objets `portMappings` sont utilisés  
Le numéro de port sur le conteneur qui est lié au port hôte spécifié par l'utilisateur ou affecté automatiquement.  
Pour les tâches utilisant le mode réseau `awsvpc`, vous utilisez `containerPort` pour spécifier les ports exposés.  
Supposons que vous utilisiez des conteneurs dans une tâche avec les fournisseurs de capacité EC2 et que vous spécifiez un port de conteneur et non un port hôte. Ensuite, votre conteneur reçoit automatiquement un port hôte dans la plage de ports éphémères. Pour de plus amples informations, veuillez consulter `hostPort`. Les mappages de ports qui sont automatiquement affectés de cette façon ne sont pas comptabilisés dans le quota des 100 ports réservés d'une instance de conteneur.  
`containerPortRange`  
Type : chaîne  
Obligatoire : non  
Plage de numéros de port du conteneur liée à la plage de ports hôtes mappés dynamiquement.   
Vous ne pouvez définir ce paramètre qu'à l'aide de l'API `register-task-definition`. L'option est disponible dans le paramètre `portMappings`. Pour plus d'informations, consultez [register-task-definition](https://docs.aws.amazon.com/cli/latest/reference/ecs/register-task-definition.html) dans la *référence AWS Command Line Interface *.  
Les règles suivantes s'appliquent lorsque vous spécifiez une `containerPortRange` :  
+ Vous devez utiliser le mode réseau `bridge` ou le mode réseau `awsvpc`.
+ Ce paramètre est disponible pour les systèmes d'exploitation Windows et Linux.
+ L'instance de conteneur doit au moins disposer de la version 1.67.0 de l'agent de conteneur et au moins de la version 1.67.0-1 du package `ecs-init`.
+ Vous pouvez spécifier un maximum de 100 plages de ports pour chaque conteneur.
+ Vous ne spécifiez pas de `hostPortRange`. La valeur de `hostPortRange` est définie comme suit :
  + Pour les conteneurs d'une tâche en mode réseau `awsvpc`, le `hostPort` est défini sur la même valeur que le `containerPort`. Il s'agit d'une stratégie de mappage statique.
  + Pour les conteneurs d'une tâche en mode réseau `bridge`, l'agent Amazon ECS trouve les ports hôtes ouverts dans la plage éphémère par défaut et les transmet à Docker pour les lier aux ports du conteneur.
+ Les valeurs valides de `containerPortRange` sont comprises entre 1 et 65535.
+ Un port peut uniquement être inclus dans un mappage de port pour chaque conteneur.
+ Vous ne pouvez pas spécifier de plages de ports qui se chevauchent.
+ Le premier port de la plage doit être inférieur au dernier port de la plage.
+ Docker vous recommande de désactiver le proxy Docker dans le fichier de configuration du démon Docker en présence d'un grand nombre de ports.

  Pour plus d'informations, consultez le [numéro \$111185](https://github.com/moby/moby/issues/11185) sur GitHub.

  Pour plus d'informations sur la désactivation du proxy Docker dans le fichier de configuration du démon Docker, veuillez consulter [Démon Docker](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/bootstrap_container_instance.html#bootstrap_docker_daemon) dans le *Guide du développeur Amazon ECS* (langue française non garantie).
Vous pouvez appeler [DescribeTasks](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html) pour voir la `hostPortRange` correspondant aux ports hôtes liés aux ports de conteneur.  
Les plages de ports ne sont pas incluses dans les événements de tâches Amazon ECS, qui sont envoyés à EventBridge. Pour de plus amples informations, veuillez consulter [Automatisez les réponses aux erreurs Amazon ECS à l'aide de EventBridge](cloudwatch_event_stream.md).  
`hostPortRange`  
Type : chaîne  
Obligatoire : non  
Plage de numéros de port sur l'hôte utilisée avec la liaison réseau. Elle est attribuée par Docker et délivrée par l'agent Amazon ECS.  
`hostPort`  
Type : Integer  
Obligatoire : non  
Le numéro de port sur l'instance de conteneur à réserver pour votre conteneur.  
Vous pouvez spécifier un port hôte non réservé pour le mappage de ports de votre conteneur. C'est ce que l'on appelle le mappage *statique* des ports hôtes. Vous pouvez également omettre le `hostPort` (ou le définir sur `0`) lorsque vous spécifiez un `containerPort`. Votre conteneur reçoit automatiquement un port dans la plage de ports éphémères pour le système d'exploitation et la version Docker de votre instance de conteneur. C'est ce que l'on appelle le mappage *dynamique* des ports hôtes.  
La plage de ports éphémères par défaut pour Docker 1.6.0 et versions ultérieures est répertoriée dans l'instance sous `/proc/sys/net/ipv4/ip_local_port_range`. Si ce paramètre de noyau n'est pas disponible, la plage de ports éphémères par défaut de `49153–65535` est utilisée. N'essayez pas de spécifier un port d'hôte dans la plage de ports éphémères. Cela est dû au fait qu'ils sont réservés à une affectation automatique. En général, les ports inférieurs à `32768` ne sont pas compris dans la plage de ports éphémères. Vous pouvez utiliser les `ECS_DYNAMIC_HOST_PORT_RANGE` paramètres de configuration de l'agent de conteneur ECS pour spécifier une plage personnalisée pour les ports hôtes attribués dynamiquement. Cela peut être utile si vos tâches ne démarrent pas en raison de conflits de ports avec d'autres processus de l'instance de conteneur, tels que les connexions sortantes qui utilisent également des ports de la plage de ports éphémères. Pour de plus amples informations, veuillez consulter [Configuration de l'agent de conteneur Amazon ECS](ecs-agent-config.md).  
Les ports réservés par défaut sont le port `22` pour SSH, les ports Docker `2375` et `2376`, et les ports d'agent de conteneur Amazon ECS `51678-51680`. Tout port hôte ayant été spécifié précédemment par l'utilisateur pour une tâche en cours d'exécution est également réservé pendant l'exécution de la tâche. Après l'arrêt d'une tâche, le port hôte est libéré. Les ports réservés actuels s’affichent dans les `remainingResources` de la sortie de **describe-container-instances**. Une instance de conteneur peut avoir jusqu'à 100 ports réservés à la fois, y compris les ports réservés par défaut. Les ports affectés automatiquement ne sont pas pris en compte dans le quota des 100 ports réservés.  
`name`  
Type : Chaîne  
Obligatoire : Non, requis pour que Service Connect et VPC Lattice soient configurés dans un service  
Nom utilisé pour le mappage de port. Ce paramètre ne s’applique qu’à Service Connect et VPC Lattice. Ce paramètre correspond au nom que vous utilisez dans la configuration Service Connect et VPC Lattice d’un service.  
Pour de plus amples informations, veuillez consulter [Utilisation de Service Connect pour connecter des services Amazon ECS avec des noms abrégés](service-connect.md).  
Dans l’exemple suivant, les deux champs obligatoires pour Service Connect et VPC Lattice sont utilisés.  

```
"portMappings": [
    {
        "name": string,
        "containerPort": integer
    }
]
```  
`protocol`  
Type : chaîne  
Obligatoire : non  
Le protocole utilisé pour le mappage de port. Les valeurs valides sont `tcp` et `udp`. La valeur par défaut est `tcp`.  
Seul `tcp` est pris en charge pour Service Connect. N'oubliez pas que `tcp` est implicite si ce champ n'est pas défini. 
La prise en charge du protocole UDP n'est disponible que sur les instances de conteneur qui ont été lancées avec la version 1.2.0 ou ultérieure de l'agent de conteneur Amazon ECS (comme l'AMI `amzn-ami-2015.03.c-amazon-ecs-optimized`), ou avec des agents de conteneur qui ont été mis à jour vers la version 1.3.0 ou ultérieure. Pour mettre à jour votre agent de conteneur avec la dernière version, consultez [Mise à jour de l'agent de conteneur Amazon ECS](ecs-agent-update.md).
Si vous spécifiez un port hôte, utilisez la syntaxe suivante.  

```
"portMappings": [
    {
        "containerPort": integer,
        "hostPort": integer
    }
    ...
]
```
Si vous souhaitez utiliser un port hôte affecté automatiquement, utilisez la syntaxe suivante.  

```
"portMappings": [
    {
        "containerPort": integer
    }
    ...
]
```

#### Informations d'identification du référentiel privé
<a name="container_definition_repositoryCredentials_ec2"></a>

`repositoryCredentials`  
Type : objet [RepositoryCredentials](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_RepositoryCredentials.html)  
Obligatoire : non  
Informations d'identification du référentiel pour l'authentification de registre privé.  
Pour de plus amples informations, veuillez consulter [Utilisation d'images autres que des AWS conteneurs dans Amazon ECS](private-auth.md).    
 `credentialsParameter`  
Type : Chaîne  
Obligatoire : oui, lorsque des objets `repositoryCredentials` sont utilisés  
L'Amazon Resource Name (ARN) du secret contenant les informations d'identification du référentiel privé.  
Pour de plus amples informations, veuillez consulter [Utilisation d'images autres que des AWS conteneurs dans Amazon ECS](private-auth.md).  
Lorsque vous utilisez l'API Amazon ECS AWS CLI AWS SDKs, ou si le secret existe dans la même région que la tâche que vous lancez, vous pouvez utiliser l'ARN complet ou le nom du secret. Lorsque vous utilisez le AWS Management Console, vous devez spécifier l'ARN complet du secret.
Voici un extrait de code d'une définition de tâche indiquant les paramètres requis :  

```
"containerDefinitions": [
    {
        "image": "private-repo/private-image",
        "repositoryCredentials": {
            "credentialsParameter": "arn:aws:secretsmanager:region:aws_account_id:secret:secret_name"
        }
    }
]
```

### Paramètres de définition de conteneur avancés
<a name="advanced_container_definition_params_ec2"></a>

Les paramètres de définition de conteneur avancés suivants étendent les capacités de la commande docker run qui est utilisée pour lancer des conteneurs sur vos instances de conteneur Amazon ECS.

**Topics**
+ [Politique de redémarrage](#container_definition_restart_policy_ec2)
+ [Surveillance de l'état](#container_definition_healthcheck_ec2)
+ [Environnement](#container_definition_environment_ec2)
+ [Paramètres réseau](#container_definition_network_ec2)
+ [Stockage et journalisation](#container_definition_storage_ec2)
+ [Sécurité](#container_definition_security_ec2)
+ [Limites des ressources](#container_definition_limits_ec2)
+ [Étiquettes Docker](#container_definition_labels_ec2)

#### Politique de redémarrage
<a name="container_definition_restart_policy_ec2"></a>

`restartPolicy`  
La politique de redémarrage du conteneur et les paramètres de configuration associés. Lorsque vous configurez une politique de redémarrage pour un conteneur, Amazon ECS peut redémarrer le conteneur sans avoir à remplacer la tâche. Pour de plus amples informations, veuillez consulter [Redémarrage de conteneurs individuels dans les tâches Amazon ECS à l’aide de politiques de redémarrage de conteneurs](container-restart-policy.md).    
`enabled`  
Type : Boolean  
Obligatoire : oui  
Spécifie si une politique de redémarrage est activée pour le conteneur.  
`ignoredExitCodes`  
Type : tableau integer  
Obligatoire : non  
Liste des codes de sortie qu’Amazon ECS ignorera et pour lesquels il ne tentera pas de redémarrage. Vous pouvez spécifier un maximum de 50 codes de sortie de conteneur. Par défaut, Amazon ECS n’ignore aucun code de sortie.  
`restartAttemptPeriod`  
Type : Integer  
Obligatoire : non  
Durée (en secondes) pendant laquelle le conteneur doit fonctionner avant de pouvoir tenter un redémarrage. Un conteneur ne peut être redémarré qu’une fois toutes les `restartAttemptPeriod` secondes. Si un conteneur n’est pas en mesure de fonctionner pendant cette période et qu’il se ferme prématurément, il ne sera pas redémarré. Vous pouvez définir une `restartAttemptPeriod` minimale de 60 secondes et une `restartAttemptPeriod` maximale de 1 800 secondes. Par défaut, un conteneur doit fonctionner pendant 300 secondes avant de pouvoir être redémarré.

#### Surveillance de l'état
<a name="container_definition_healthcheck_ec2"></a>

`healthCheck`  
Commande de surveillance de l'état du conteneur et paramètres de configuration associés pour le conteneur. Pour de plus amples informations, veuillez consulter [Détermination de l’état des tâches Amazon ECS à l’aide de la surveillance de l’état des conteneurs](healthcheck.md).    
`command`  
Tableau de chaînes représentant la commande que le conteneur exécute pour déterminer si celle-ci est saine. Le tableau de chaînes peut commencer par `CMD` pour exécuter directement les arguments de la commande, ou par `CMD-SHELL` pour exécuter la commande avec le shell par défaut du conteneur. Si vous n'en spécifiez aucun, `CMD` est utilisé.  
Lorsque vous enregistrez une définition de tâche dans le AWS Management Console, utilisez une liste de commandes séparées par des virgules. Ces commandes sont converties en une chaîne une fois la définition de tâche créée. Un exemple d'entrée pour une surveillance de l'état est le suivant.  

```
CMD-SHELL, curl -f http://localhost/ || exit 1
```
Lorsque vous enregistrez une définition de tâche à l'aide du AWS CLI panneau AWS Management Console JSON APIs, placez la liste des commandes entre crochets. Un exemple d'entrée pour une surveillance de l'état est le suivant.  

```
[ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ]
```
Un code de sortie de 0, avec aucune sortie `stderr`, indique la réussite et un code de sortie autre que zéro indique qu'il s'agit d'un échec.   
`interval`  
La durée (en secondes) entre chaque surveillance de l'état. Vous pouvez indiquer une durée comprise entre 5 et 300 secondes. La valeur par défaut est de 30 secondes.  
`timeout`  
La durée (en secondes) d'attente pour qu'une surveillance de l'état réussisse avant qu'elle ne soit considérée comme un échec. Vous pouvez indiquer une durée comprise entre 2 et 60 secondes. La valeur par défaut est de 5 secondes.  
`retries`  
Nombre de nouvelles tentatives d'exécution d'une surveillance de l'état ayant échoué avant que le conteneur soit considéré comme défectueux. Vous pouvez indiquer un nombre de tentatives compris en 1 et 10. La valeur par défaut est de trois tentatives.  
`startPeriod`  
La période de grâce facultative pour donner aux conteneurs le temps de démarrer avant l'échec des surveillance de l'état est prise en compte dans le nombre maximal de tentatives. Vous pouvez indiquer une durée comprise entre 0 et 300 secondes. Par défaut, la `startPeriod` est désactivée.  
Si une vérification de l'état aboutit dans le délai défini par `startPeriod`, le conteneur est considéré comme sain et toutes les défaillances suivantes sont prises en compte dans le nombre maximal de nouvelles tentatives.

#### Environnement
<a name="container_definition_environment_ec2"></a>

`cpu`  
Type : Integer  
Obligatoire : non  
Le nombre d'unités `cpu` que l'agent de conteneur Amazon ECS réserve pour le conteneur. Sous Linux, ce paramètre correspond à `CpuShares` dans la section [Créer un conteneur](https://docs.docker.com/reference/api/engine/version/v1.38/#operation/ContainerCreate).  
Vous pouvez déterminer le nombre d'unités de processeur qui sont disponibles pour chaque type d'instance Amazon EC2. Pour ce faire, multipliez le nombre de v CPUs répertorié pour ce type d'instance sur la page détaillée des [instances Amazon EC2](https://aws.amazon.com/ec2/instance-types/) par 1 024.
Les conteneurs Linux partagent des unités de processeur non allouées avec les autres conteneurs de l'instance de conteneur selon le même ratio que la quantité allouée. Par exemple, supposons que vous exécutez une tâche à conteneur unique sur un type d'instance à cœur unique avec 512 unités de processeur spécifiées pour ce conteneur. De plus, cette tâche est la seule tâche en cours d'exécution sur l'instance de conteneur. Dans cet exemple, le conteneur peut utiliser le partage complet de 1 024 unités UC à tout moment. Toutefois, supposons que vous ayez lancé une autre copie de la même tâche sur cette instance de conteneur. Un minimum de 512 unités de processeur est affecté à chaque tâche si nécessaire. De même, si l'autre conteneur n'utilise pas le processeur restant, chaque conteneur peut bénéficier d'une utilisation plus importante du processeur. Toutefois, si les deux tâches sont actives à 100 % en permanence, elles sont limitées à 512 unités d'UC.  
Sur les instances de conteneur Linux, le démon Docker de l'instance de conteneur se sert de la valeur de processeur pour calculer les ratios de partage de processeur relatifs pour les conteneurs en cours d'exécution. La valeur de parts d’UC minimale autorisée par le noyau Linux est de 2, et la valeur de parts d’UC maximale autorisée par le noyau Linux est de 262 144. Toutefois, le paramètre UC n’est pas obligatoire et vous pouvez utiliser des valeurs d’UC inférieures à 2 ou supérieures à 262 144 dans vos définitions de conteneur. Pour les valeurs d’UC inférieures à 2 (y compris null) ou supérieures à 262 144, le comportement varie selon la version de l’agent de conteneur Amazon ECS :  
+ **Versions de l'agent <= 1.1.0 :** les valeurs de processeur nulles et égales à zéro sont transmises à Docker en tant que 0, ce que Docker convertit ensuite en 1 024 parts de processeur. Les valeurs de processeur de 1 sont transmises à Docker en tant que 1, ce que le noyau Linux convertit en deux parts de processeur.
+ **Versions de l'agent > = 1.2.0 :** les valeurs de processeur nulles, 0 et 1 sont transmises à Docker en tant que deux partages de processeur..
+ **Versions d’agent >= 1.84.0 :** les valeurs d’UC supérieures à 256 vCPU sont transmises à Docker avec la valeur de 256, ce qui équivaut à 262 144 partages d’UC.
Sur les instances de conteneur Windows, le quota de processeur est appliqué comme quota absolu. Les conteneurs Windows n'ont accès qu'à la quantité spécifiée de processeur décrite dans la définition de tâche. Une valeur de processeur nulle ou égale à zéro est transmise à Docker comme étant `0`. Windows interprète ensuite cette valeur comme 1 % d'un processeur.  
Pour voir d'autres exemples, veuillez consulter le billet de blog [How Amazon ECS manages CPU and memory resources](https://aws.amazon.com/blogs/containers/how-amazon-ecs-manages-cpu-and-memory-resources/).

`gpu`  
Type : objet [ResourceRequirement](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ResourceRequirement.html)  
Obligatoire : non  
Le nombre de `GPUs` physiques que l'agent de conteneur Amazon ECS réserve pour le conteneur. Le nombre de conteneurs GPUs réservés à tous les conteneurs d'une tâche ne doit pas dépasser le nombre de conteneurs disponibles GPUs sur l'instance de conteneur sur laquelle la tâche est lancée. Pour de plus amples informations, veuillez consulter [Définitions de tâches Amazon ECS pour les charges de travail GPU](ecs-gpu.md).  
Ce paramètre n'est pas pris en charge par les conteneurs Windows.

`Elastic Inference accelerator`  
Type : objet [ResourceRequirement](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ResourceRequirement.html)  
Obligatoire : non  
Pour le type `InferenceAccelerator`, `value` correspond à `deviceName` d'un `InferenceAccelerator` spécifié dans une définition de tâche. Pour de plus amples informations, veuillez consulter [Nom de l'accélérateur Elastic Inference (obsolète)](task_definition_parameters.md#elastic-Inference-accelerator).  
Ce paramètre n'est pas pris en charge par les conteneurs Windows.

`essential`  
Type : booléen  
Obligatoire : non  
Supposons que le paramètre `essential` d'un conteneur soit marqué comme `true`, et que ce conteneur échoue ou s'arrête pour une raison quelconque. Ensuite, tous les autres conteneurs qui font partie de la tâche sont arrêtés. Si le paramètre `essential` d'un conteneur a la valeur `false`, son échec n'a pas d'incidence sur le reste des conteneurs dans la tâche. Si ce paramètre n'est pas spécifié, le conteneur est supposé essentiel.  
Toutes les tâches doivent comporter au moins un conteneur essentiel. Supposons que vous disposiez d'une application composée de plusieurs conteneurs. Ensuite, les conteneurs de groupes qui sont utilisés dans un même but pour former des composants, et séparer les différents composants en plusieurs définitions de tâches. Pour de plus amples informations, veuillez consulter [Architecture de votre application pour Amazon ECS](application_architecture.md).  

```
"essential": true|false
```

`entryPoint`  
Les premières versions de l'agent de conteneur Amazon ECS ne traitent pas correctement les paramètres `entryPoint`. Si vous rencontrez des difficultés pour utiliser `entryPoint`, mettez à jour l'agent de conteneur ou saisissez plutôt vos commandes et vos arguments sous forme d'éléments de tableau `command`.
Type : tableau de chaînes  
Obligatoire : non  
Point d'entrée qui est transmis au conteneur.   

```
"entryPoint": ["string", ...]
```

`command`  
Type : tableau de chaînes  
Obligatoire : non  
La commande transmise au conteneur. Ce paramètre correspond à `Cmd` dans la commande create-container et au paramètre `COMMAND` de docker run. S'il existe plusieurs arguments, assurez-vous que chaque argument est une chaîne séparée dans le tableau.  

```
"command": ["string", ...]
```

`workingDirectory`  
Type : chaîne  
Obligatoire : non  
Répertoire de travail dans lequel exécuter les commandes à l'intérieur du conteneur. Ce paramètre correspond à `WorkingDir` dans la section [Create a container](https://docs.docker.com/reference/api/engine/version/v1.38/#operation/ContainerCreate) (Créer un conteneur) de l'[API Docker à distance](https://docs.docker.com/reference/api/engine/version/v1.38/) et l'option `--workdir` correspond à [https://docs.docker.com/reference/cli/docker/container/run/](https://docs.docker.com/reference/cli/docker/container/run/).  

```
"workingDirectory": "string"
```

`environmentFiles`  
Type : tableau d'objets  
Obligatoire : non  
Liste des fichiers contenant les variables d'environnement à transmettre à un conteneur. Ce paramètre correspond à l’option `--env-file` de la commande docker run.  
Lorsque le protocole FIPS est activé, les noms de compartiments comportant des points (.) (par exemple, amzn-s3-demo-bucket1.name.example) ne sont pas pris en charge. La présence de points (.) dans le nom du compartiment empêche le démarrage de la tâche, car l’agent ne peut pas extraire le fichier de variables d’environnement depuis Amazon S3.  
Ceci n'est pas disponible pour les conteneurs Windows.  
Vous pouvez spécifier jusqu'à dix fichiers d'environnement. Le fichier doit avoir une extension de fichier `.env`. Chaque ligne d'un fichier d'environnement contient une variable d'environnement au format `VARIABLE=VALUE`. Les lignes commençant par `#` sont traitées comme des commentaires et sont ignorées.   
Si des variables d'environnement individuelles sont spécifiées dans la définition du conteneur, elles ont priorité sur les variables contenues dans un fichier d'environnement. Si plusieurs fichiers d'environnement contenant la même variable sont spécifiés, ils sont traités de haut en bas. Nous vous recommandons d'utiliser des noms de variables uniques. Pour de plus amples informations, veuillez consulter [Transmission d’une variable d’environnement individuelle à un conteneur Amazon ECS](taskdef-envfiles.md).    
`value`  
Type : Chaîne  
Obligatoire : oui  
L'Amazon Resource Name (ARN) de l'objet Amazon S3 contenant le fichier de variable d'environnement.  
`type`  
Type : Chaîne  
Obligatoire : oui  
Type de fichier à utiliser La seule valeur prise en charge est `s3`.

`environment`  
Type : tableau d'objets  
Obligatoire : non  
Variables d'environnement à transmettre à un conteneur. Ce paramètre correspond à `Env` dans la commande docker create-container et à l’option `--env` dans la commande docker run.  
Nous déconseillons l'utilisation des variables d'environnement en texte clair pour les informations sensibles, comme les données d'identification.  
`name`  
Type : Chaîne  
Obligatoire : oui lorsque `environment` est utilisé  
Nom de la variable d'environnement.  
`value`  
Type : Chaîne  
Obligatoire : oui lorsque `environment` est utilisé  
Valeur de la variable d'environnement.

```
"environment" : [
    { "name" : "string", "value" : "string" },
    { "name" : "string", "value" : "string" }
]
```

`secrets`  
Type : tableau d'objets  
Obligatoire : non  
Objet représentant le secret à exposer à votre conteneur. Pour de plus amples informations, veuillez consulter [Transmission de données sensibles vers un conteneur Amazon ECS](specifying-sensitive-data.md).    
`name`  
Type : Chaîne  
Obligatoire : oui  
Valeur à définir comme variable d'environnement sur le conteneur.  
`valueFrom`  
Type : Chaîne  
Obligatoire : oui  
Secret à exposer au conteneur. Les valeurs prises en charge sont soit le nom Amazon Resource (ARN) complet du AWS Secrets Manager secret, soit l'ARN complet du paramètre dans le AWS Systems Manager Parameter Store.  
Si le paramètre Systems Manager Parameter Store ou le paramètre Secrets Manager existe au même endroit Région AWS que la tâche que vous lancez, vous pouvez utiliser l'ARN complet ou le nom du secret. Si le paramètre existe dans une autre région, l'ARN complet doit être spécifié.

```
"secrets": [
    {
        "name": "environment_variable_name",
        "valueFrom": "arn:aws:ssm:region:aws_account_id:parameter/parameter_name"
    }
]
```

#### Paramètres réseau
<a name="container_definition_network_ec2"></a>

`disableNetworking`  
Type : booléen  
Obligatoire : non  
Quand ce paramètre a la valeur true, la mise en réseau est désactivée dans le conteneur.  
Ce paramètre n'est pas pris en charge pour les conteneurs ou tâches Windows qui utilisent le mode réseau `awsvpc`.
La valeur par défaut est `false`.  

```
"disableNetworking": true|false
```

`links`  
Type : tableau de chaînes  
Obligatoire : non  
Le paramètre `link` permet aux conteneurs de communiquer entre eux sans avoir besoin de définir des mappages de ports. Ce paramètre n'est pris en charge que si le mode réseau d'une définition de tâche est défini sur `bridge`. La construction `name:internalName` est analogue à `name:alias` dans les liaisons Docker. Il peut comporter jusqu’à 255 lettres (majuscules et minuscules), des chiffres, des tirets ou des traits de soulignement.  
Ce paramètre n'est pas pris en charge pour les conteneurs ou tâches Windows qui utilisent le mode réseau `awsvpc`.
Des conteneurs situés sur la même instance de conteneur peuvent communiquer entre eux sans nécessiter de liens ou de mappages de ports hôtes. L'isolation réseau sur une instance de conteneur est contrôlée par les groupes de sécurité et les paramètres de VPC.

```
"links": ["name:internalName", ...]
```

`hostname`  
Type : chaîne  
Obligatoire : non  
Nom d'hôte à utiliser pour votre conteneur. Ce paramètre correspond à `Hostname` dans docker create-container et à l’option `--hostname` de docker run.  
Si vous utilisez le mode réseau `awsvpc`, le paramètre `hostname` n'est pas pris en charge.

```
"hostname": "string"
```

`dnsServers`  
Type : tableau de chaînes  
Obligatoire : non  
Liste de serveurs DNS qui sont présentés au conteneur.  
Ce paramètre n'est pas pris en charge pour les conteneurs ou tâches Windows qui utilisent le mode réseau `awsvpc`.

```
"dnsServers": ["string", ...]
```

`dnsSearchDomains`  
Type : tableau de chaînes  
Obligatoire : non  
Modèle : ^[a-zA-Z0-9-.]\$10,253\$1[a-zA-Z0-9]\$1  
Liste des domaines de recherche DNS qui sont présentés au conteneur. Ce paramètre correspond à `DnsSearch` dans la commande docker create-container et à l’option `--dns-search` dans la commande docker run.  
Ce paramètre n'est pas pris en charge pour les conteneurs ou tâches Windows qui utilisent le mode réseau `awsvpc`.

```
"dnsSearchDomains": ["string", ...]
```

`extraHosts`  
Type : tableau d'objets  
Obligatoire : non  
Liste de noms d'hôte et de mappages d'adresses IP à ajouter au fichier `/etc/hosts` dans le conteneur.   
Ce paramètre correspond à `ExtraHosts` dans la commande docker create-container et à l’option `--add-host` dans la commande docker run.  
Ce paramètre n'est pas pris en charge pour les conteneurs ou tâches Windows qui utilisent le mode réseau `awsvpc`.

```
"extraHosts": [
      {
        "hostname": "string",
        "ipAddress": "string"
      }
      ...
    ]
```  
`hostname`  
Type : Chaîne  
Obligatoire : oui, lorsque des objets `extraHosts` sont utilisés  
Nom d'hôte à utiliser dans l'entrée `/etc/hosts`.  
`ipAddress`  
Type : Chaîne  
Obligatoire : oui, lorsque des objets `extraHosts` sont utilisés  
Adresse IP à utiliser dans l'entrée `/etc/hosts`.

#### Stockage et journalisation
<a name="container_definition_storage_ec2"></a>

`readonlyRootFilesystem`  
Type : booléen  
Obligatoire : non  
Quand ce paramètre a la valeur true, le conteneur ne dispose que d'un accès en lecture seule au système de fichiers racine. Ce paramètre correspond à `ReadonlyRootfs` dans la commande docker create-container et à l’option `--read-only` dans la commande docker run.  
Ce paramètre n'est pas pris en charge par les conteneurs Windows.
La valeur par défaut est `false`.  

```
"readonlyRootFilesystem": true|false
```

`mountPoints`  
Type : tableau d'objets  
Obligatoire : non  
Les points de montage pour les volumes de données dans votre conteneur. Ce paramètre correspond à `Volumes` dans l’API Docker create-container et à l’option `--volume` de docker run.  
Les conteneurs Windows peuvent monter des répertoires entiers sur le même lecteur que `$env:ProgramData`. Les conteneurs Windows ne peuvent pas monter de répertoires sur un autre lecteur, et les points de montage ne peuvent pas être utilisés sur plusieurs lecteurs. Vous devez spécifier des points de montage pour associer un volume Amazon EBS directement à une tâche Amazon ECS.    
`sourceVolume`  
Type : Chaîne  
Obligatoire : oui, lorsque des objets `mountPoints` sont utilisés  
Nom du volume à monter.  
`containerPath`  
Type : Chaîne  
Obligatoire : oui, lorsque des objets `mountPoints` sont utilisés  
Le chemin dans le conteneur où le volume sera monté.  
`readOnly`  
Type : booléen  
Obligatoire : non  
Si cette valeur est `true`, le conteneur ne peut accéder au volume qu'en lecture. Si cette valeur est `false`, le conteneur peut écrire sur le volume. La valeur par défaut est `false`.  
Pour les tâches qui exécutent le système d’exploitation Windows, laissez la valeur par défaut de `false`.

`volumesFrom`  
Type : tableau d'objets  
Obligatoire : non  
Volumes de données à monter à partir d'un autre conteneur. Ce paramètre correspond à `VolumesFrom` dans la commande docker create-container et à l’option `--volumes-from` dans la commande docker run.    
`sourceContainer`  
Type : Chaîne  
Obligatoire : oui lorsque `volumesFrom` est utilisé  
Nom du conteneur à partir duquel monter les volumes.  
`readOnly`  
Type : booléen  
Obligatoire : non  
Si cette valeur est `true`, le conteneur ne peut accéder au volume qu'en lecture. Si cette valeur est `false`, le conteneur peut écrire sur le volume. La valeur par défaut est `false`.

```
"volumesFrom": [
                {
                  "sourceContainer": "string",
                  "readOnly": true|false
                }
              ]
```

`logConfiguration`  
Type : [LogConfiguration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_LogConfiguration.html)Objet  
Obligatoire : non  
Spécification de configuration du journal pour le conteneur.  
Pour obtenir des exemples de définitions de tâche qui utilisent une configuration de journaux, consultez [Exemple de définitions de tâches Amazon ECS](example_task_definitions.md).  
Ce paramètre correspond à `LogConfig` dans la commande docker create-container et à l’option `--log-driver` dans la commande docker run. Par défaut, les conteneurs utilisent le même pilote de journalisation que celui utilisé par le démon Docker. Cependant, le conteneur peut utiliser un pilote de journalisation différent que celui du démon Docker en spécifiant un pilote de journal avec ce paramètre dans la définition de conteneur. Pour utiliser un pilote de journalisation différent pour un conteneur, le système de journal doit être configuré correctement sur l'instance de conteneur (ou sur un serveur de journal différent pour les options de journalisation à distance).   
Tenez compte des éléments suivants lorsque vous spécifiez une configuration de journal pour vos conteneurs :  
+ Amazon ECS prend en charge un sous-ensemble des pilotes de journalisation qui sont disponibles pour le démon Docker.
+ Ce paramètre nécessite la version 1.18 ou ultérieure de l'API Docker à distance sur votre instance de conteneur.
+ L’agent de conteneur Amazon ECS qui s’exécute sur une instance de conteneur doit enregistrer les pilotes de journalisation disponibles sur cette instance avec la variable d’environnement `ECS_AVAILABLE_LOGGING_DRIVERS` avant que les conteneurs placés sur cette instance puissent utiliser ces options de configuration de journalisation. Pour de plus amples informations, veuillez consulter [Configuration de l'agent de conteneur Amazon ECS](ecs-agent-config.md).

```
"logConfiguration": {
      "logDriver": "awslogs","fluentd","gelf","json-file","journald","splunk","syslog","awsfirelens",
      "options": {"string": "string"
        ...},
	"secretOptions": [{
		"name": "string",
		"valueFrom": "string"
	}]
}
```  
`logDriver`  
Type : Chaîne  
Valeurs valides : `"awslogs","fluentd","gelf","json-file","journald","splunk","syslog","awsfirelens"`  
Obligatoire : oui lorsque `logConfiguration` est utilisé  
Pilote de journal à utiliser pour le conteneur. Par défaut, les valeurs valides mentionnées ci-dessus sont les pilotes de journal avec lesquels l'agent de conteneur Amazon ECS peut communiquer.  
Les pilotes de journal pris en charge sont `awslogs`, `fluentd`, `gelf`, `json-file`, `journald`, `syslog`, `splunk` et `awsfirelens`.  
Pour plus d'informations sur l'utilisation du pilote de `awslogs` journal dans les définitions de tâches pour envoyer les journaux de vos conteneurs à CloudWatch Logs, consultez[Envoyez les journaux Amazon ECS à CloudWatch](using_awslogs.md).  
Pour de plus amples informations sur l'utilisation du pilote de journal `awsfirelens`, consultez [Routage personnalisé des journaux](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html).  
Si vous avez un pilote personnalisé qui n'est pas répertorié, vous pouvez bifurquer le projet d'agent de conteneur Amazon ECS [disponible sur GitHub et le](https://github.com/aws/amazon-ecs-agent) personnaliser pour qu'il fonctionne avec ce pilote. Nous vous conseillons d'envoyer des demandes d'extraction pour les modifications que vous souhaitez inclure. Toutefois, nous ne prenons pas en charge l'exécution de copies modifiées de ce logiciel pour le moment.
Ce paramètre nécessite la version 1.18 de l'API Docker Remote ou une version ultérieure sur votre instance de conteneur.  
`options`  
Type : mappage chaîne/chaîne  
Obligatoire : non  
 key/value Carte des options de configuration à envoyer au pilote du journal.  
Les options que vous pouvez spécifier dépendent du pilote de journalisation. Certaines des options que vous pouvez spécifier lorsque vous utilisez le `awslogs` routeur pour acheminer les journaux vers Amazon CloudWatch sont les suivantes :    
`awslogs-create-group`  
Obligatoire : non  
Spécifiez si vous souhaitez que le groupe de journaux soit créé automatiquement. Si cette option n'est pas spécifiée, l'emplacement par défaut est `false`.  
Votre politique IAM doit inclure l'autorisation `logs:CreateLogGroup` afin que vous puissiez essayer d'utiliser `awslogs-create-group`.  
`awslogs-region`  
Obligatoire : oui  
Spécifiez Région AWS le pilote de `awslogs` journal auquel envoyer vos journaux Docker. Vous pouvez choisir d'envoyer tous vos journaux provenant de clusters situés dans différentes régions vers une seule région dans CloudWatch Logs. Cela leur permet d'être tous visibles en un seul endroit. Sinon, vous pouvez les séparer par région pour plus de granularité. Assurez-vous que le groupe de journaux spécifié existe dans la région que vous spécifiez avec cette option.  
`awslogs-group`  
Obligatoire : oui  
Assurez-vous de spécifier un groupe de journaux auquel le pilote de journaux `awslogs` envoie ses flux de journaux.  
`awslogs-stream-prefix`  
Obligatoire : Facultatif  
Utilisez l'option `awslogs-stream-prefix` pour associer un flux de journaux au préfixe spécifié, au nom du conteneur et à l'ID de la tâche Amazon ECS à laquelle appartient le conteneur. Si vous spécifiez un préfixe avec cette option, le format du flux de journaux est le suivant.  

```
prefix-name/container-name/ecs-task-id
```
Si vous ne spécifiez pas de préfixe avec cette option, le flux de journaux est nommé d'après l'ID de conteneur attribué par le démon Docker sur l'instance de conteneur. Etant donné qu'il est difficile de suivre les journaux jusqu'au conteneur qui les a envoyé en utilisant uniquement l'ID de conteneur Docker (qui est uniquement disponible sur l'instance de conteneur), nous vous recommandons de spécifier un préfixe avec cette option.  
Pour les services Amazon ECS, vous pouvez utiliser le nom du service comme préfixe. Ce faisant, vous pourrez suivre les flux de journaux et déterminer le service auquel appartient le conteneur, trouver le nom du conteneur qui les a envoyés, ainsi que l'ID de la tâche à laquelle le conteneur appartient.  
Vous devez spécifier un préfixe de flux pour vos journaux pour qu'ils apparaissent dans le panneau des journaux lors de l'utilisation de la console Amazon ECS.  
`awslogs-datetime-format`  
Obligatoire : non  
Cette option définit un modèle de démarrage à plusieurs lignes au format `strftime` Python. Un message de journal est composé de plusieurs lignes : une ligne correspondant au modèle et les lignes suivantes qui ne correspondent pas au modèle. La ligne mise en correspondance est le délimiteur entre les messages de journalisation.  
Ce format peut, par exemple, servir à analyser une sortie comme une pile de vidage, laquelle pourrait, dans le cas contraire, être consignée en plusieurs entrées. Le modèle adéquat permet de la capturer dans une seule entrée.  
Pour de plus amples informations, veuillez consulter [awslogs-datetime-format](https://docs.docker.com/engine/logging/drivers/awslogs/#awslogs-datetime-format).  
Vous ne pouvez pas configurer à la fois les options `awslogs-datetime-format` et `awslogs-multiline-pattern`.  
La journalisation multiligne effectue l'analyse et la mise en correspondance des expressions régulières de tous les messages de journalisation. Cela peut avoir un impact négatif sur les performances de journalisation.  
`awslogs-multiline-pattern`  
Obligatoire : non  
Cette option définit un modèle de démarrage à plusieurs lignes à l'aide d'une expression régulière. Un message de journal est composé de plusieurs lignes : une ligne correspondant au modèle et les lignes suivantes qui ne correspondent pas au modèle. La ligne mise en correspondance est le délimiteur entre les messages de journalisation.  
Pour de plus amples informations, veuillez consulter [awslogs-multiline-pattern](https://docs.docker.com/engine/logging/drivers/awslogs/#awslogs-multiline-pattern).  
Cette option est ignorée si `awslogs-datetime-format` est également configuré.  
Vous ne pouvez pas configurer à la fois les options `awslogs-datetime-format` et `awslogs-multiline-pattern`.  
La journalisation multiligne effectue l'analyse et la mise en correspondance des expressions régulières de tous les messages de journalisation. Cela peut avoir un impact négatif sur les performances de journalisation.
Les options suivantes s’appliquent à tous les pilotes de journalisation pris en charge.    
`mode`  
Obligatoire : non  
Valeurs valides : `non-blocking` \$1 `blocking`  
Cette option définit le mode de transmission des messages de journalisation depuis le conteneur vers le pilote de journalisation spécifié à l’aide de `logDriver`. Le mode de livraison que vous choisissez affecte la disponibilité de l’application lorsque le flux des journaux provenant du conteneur est interrompu.  
Si vous utilisez le mode `blocking` et que le flux de journaux est interrompu, les appels provenant du code du conteneur à écrire dans les flux `stdout` et `stderr` seront bloqués. Le fil de journalisation de l'application se bloquera en conséquence. Cela peut empêcher l'application de répondre et entraîner l'échec de vérification de l'état du conteneur.   
Si vous utilisez le mode `non-blocking`, les journaux du conteneur sont plutôt stockés dans une mémoire tampon intermédiaire configurée avec l'option `max-buffer-size`. Cela empêche l’application de ne plus répondre lorsque les journaux ne peuvent pas être envoyés. Nous vous recommandons d'utiliser ce mode si vous souhaitez garantir la disponibilité du service et si vous acceptez une certaine perte de journaux. Pour plus d’informations, consultez la section [Prévention de la perte de journaux grâce au mode non bloquant dans le pilote de journalisation conteneur `awslogs`](https://aws.amazon.com/blogs/containers/preventing-log-loss-with-non-blocking-mode-in-the-awslogs-container-log-driver/).  
Vous pouvez définir une valeur de `mode` par défaut pour tous les conteneurs d’un conteneur dans une Région AWS spécifique en utilisant le paramètre de compte `defaultLogDriverMode`. Si vous ne spécifiez pas l’option `mode` dans `logConfiguration` ou ne configurez pas les paramètres du compte, Amazon ECS utilisera par défaut le mode `non-blocking`. Pour plus d’informations sur ce paramètre de compte, consultez la section le [Mode de pilote du journal par défaut](ecs-account-settings.md#default-log-driver-mode).  
Quand le mode `non-blocking` est utilisé, l'option de journalisation `max-buffer-size` contrôle la taille de la mémoire tampon utilisée pour le stockage des messages intermédiaires. Assurez-vous de spécifier une taille de mémoire tampon adéquate en fonction de votre application. La quantité totale de mémoire allouée au niveau de la tâche doit être supérieure à la quantité de mémoire allouée à tous les conteneurs, en plus du tampon mémoire du pilote de journalisation.  
Le 25 juin 2025, Amazon ECS a modifié le mode par défaut du pilote de journalisation, passant de `blocking` à `non-blocking` afin de privilégier la disponibilité des tâches plutôt que la journalisation. Pour continuer à utiliser le mode `blocking` après cette modification, effectuez l’une des opérations suivantes :  
+ Définissez l’option `mode` dans votre définition de conteneur `logConfiguration` sur `blocking`.
+ Réglez le paramètre du compte `defaultLogDriverMode` sur `blocking`.  
`max-buffer-size`  
Obligatoire : non  
Valeur par défaut : `10 m`  
Quand le mode `non-blocking` est utilisé, l'option de journalisation `max-buffer-size` contrôle la taille de la mémoire tampon utilisée pour le stockage des messages intermédiaires. Assurez-vous de spécifier une taille de mémoire tampon adéquate en fonction de votre application. Lorsque la mémoire tampon est pleine, il est impossible de stocker d'autres journaux. Les journaux qui ne peuvent pas être stockés sont perdus. 
Pour acheminer les journaux à l’aide du routeur de journaux `splunk`, vous devez spécifier un `splunk-token` et une `splunk-url`.  
Lorsque vous utilisez le routeur de `awsfirelens` journaux pour acheminer les journaux vers une AWS Partner Network destination Service AWS ou à des fins de stockage et d'analyse des journaux, vous pouvez définir l'`log-driver-buffer-limit`option permettant de limiter le nombre de lignes de journal mises en mémoire tampon avant d'être envoyées au conteneur du routeur de journaux. Cela peut aider à résoudre le problème potentiel de perte de journal, car un débit élevé peut entraîner un épuisement de la mémoire pour le tampon à l'intérieur de Docker. Pour de plus amples informations, veuillez consulter [Configuration des journaux Amazon ECS pour un débit élevé](firelens-docker-buffer-limit.md).  
Les autres options que vous pouvez spécifier lors de l’utilisation d’`awsfirelens` pour acheminer les journaux dépendent de la destination. Lorsque vous exportez des journaux vers Amazon Data Firehose, vous pouvez spécifier le Région AWS format `region` et le nom du flux de journaux. `delivery_stream`  
Lorsque vous exportez des journaux vers Amazon Kinesis Data Streams, vous pouvez spécifier la Région AWS avec `region` et un nom pour le flux de données avec `stream`.  
 Lorsque vous exportez des journaux vers Amazon OpenSearch Service, vous pouvez spécifier des options telles que `Name` `Host` (point de terminaison de OpenSearch service sans protocole) `Port` `Index``Type`,`Aws_auth`,`Aws_region`,,`Suppress_Type_Name`, et`tls`.  
Lorsque vous exportez des journaux vers Amazon S3, vous pouvez spécifier le compartiment à l’aide de l’option `bucket`. Vous pouvez également spécifier `region`, `total_file_size`, `upload_timeout` et `use_put_object` en tant qu’options.  
Ce paramètre nécessite la version 1.19 de l'API Docker à distance ou une version supérieure sur votre instance de conteneur.  
`secretOptions`  
Type : tableau d'objets  
Obligatoire : non  
Objet qui représente le secret à transmettre à la configuration de journal. Les secrets utilisés dans la configuration du journal peuvent inclure un jeton d'authentification, un certificat ou une clé de chiffrement. Pour de plus amples informations, veuillez consulter [Transmission de données sensibles vers un conteneur Amazon ECS](specifying-sensitive-data.md).    
`name`  
Type : Chaîne  
Obligatoire : oui  
Valeur à définir comme variable d'environnement sur le conteneur.  
`valueFrom`  
Type : Chaîne  
Obligatoire : oui  
Secret à exposer à la configuration de journal du conteneur.

```
"logConfiguration": {
	"logDriver": "splunk",
	"options": {
		"splunk-url": "https://cloud.splunk.com:8080",
		"splunk-token": "...",
		"tag": "...",
		...
	},
	"secretOptions": [{
		"name": "splunk-token",
		"valueFrom": "/ecs/logconfig/splunkcred"
	}]
}
```

`firelensConfiguration`  
Type : [FirelensConfiguration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_FirelensConfiguration.html)Objet  
Obligatoire : non  
 FireLens Configuration du conteneur. Cette option est utilisée pour spécifier et configurer un routeur de journal pour les journaux de conteneur. Pour de plus amples informations, veuillez consulter [Envoyer les journaux Amazon ECS à un AWS service ou AWS Partner](using_firelens.md).  

```
{
    "firelensConfiguration": {
        "type": "fluentd",
        "options": {
            "KeyName": ""
        }
    }
}
```  
`options`  
Type : mappage chaîne/chaîne  
Obligatoire : non  
 key/value Carte des options à utiliser lors de la configuration du routeur de log. Ce champ est facultatif et peut être utilisé pour spécifier un fichier de configuration personnalisé ou ajouter des métadonnées supplémentaires, telles que les détails de tâche, de définition de tâche, de cluster et d'instance de conteneur à l'événement de journal. Si spécifié, la syntaxe à utiliser est `"options":{"enable-ecs-log-metadata":"true|false","config-file-type:"s3|file","config-file-value":"arn:aws:s3:::amzn-s3-demo-bucket/fluent.conf|filepath"}`. Pour de plus amples informations, veuillez consulter [Exemple de définition de tâche Amazon ECS : acheminement des journaux vers FireLens](firelens-taskdef.md).  
`type`  
Type : Chaîne  
Obligatoire : oui  
Routeur de journal à utiliser. Les valeurs valides sont `fluentd` ou `fluentbit`.

#### Sécurité
<a name="container_definition_security_ec2"></a>

Pour plus d’informations sur la sécurité des conteneurs, consultez la section [Pratiques exemplaires en matière de sécurité des tâches et des conteneurs Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/security-tasks-containers.html).

`credentialSpecs`  
Type : tableau de chaînes  
Obligatoire : non  
Liste des informations contenues ARNs dans SSM ou Amazon S3 dans un fichier de spécifications d'identification (`CredSpec`) qui configure le conteneur pour l'authentification Active Directory. Nous vous recommandons d'utiliser ce paramètre plutôt que les `dockerSecurityOptions`. Le nombre maximum de ARNs est 1.  
Il existe deux formats pour chaque ARN.    
credentialspecdomainless:MyARN  
Vous utilisez `credentialspecdomainless:MyARN` pour fournir un `CredSpec` avec une section supplémentaire pour un secret dans Secrets Manager. Vous fournissez les informations d'identification de connexion au domaine dans le secret.  
Chaque tâche exécutée sur une instance de conteneur peut rejoindre différents domaines.  
Vous pouvez utiliser ce format sans associer l'instance de conteneur à un domaine.  
credentialspec:MyARN  
Vous utilisez `credentialspec:MyARN` pour fournir un `CredSpec` pour un domaine unique.  
Vous devez joindre l'instance de conteneur au domaine avant de démarrer toute tâche utilisant cette définition de tâche.
Dans les deux formats, remplacez `MyARN` par l'ARN dans SSM ou Amazon S3.  
Le `credspec` doit fournir un ARN dans Secrets Manager pour un secret contenant le nom d'utilisateur, le mot de passe et le domaine auquel se connecter. Pour une meilleure sécurité, l'instance n'est pas jointe au domaine pour l'authentification sans domaine. Les autres applications de l'instance ne peuvent pas utiliser les informations d'identification sans domaine. Vous pouvez utiliser ce paramètre pour exécuter des tâches sur la même instance, même si les tâches doivent être jointes à différents domaines. Pour plus d'informations, consultez les [sections Utilisation de g MSAs pour les conteneurs Windows](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows-gmsa.html) et [Utilisation de g MSAs pour les conteneurs Linux](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/linux-gmsa.html).

`privileged`  
Type : booléen  
Obligatoire : non  
Quand ce paramètre a la valeur true, le conteneur dispose de droits élevés sur l'instance de conteneur hôte (similaire à l'utilisateur `root`). Nous vous déconseillons d'exécuter des conteneurs avec `privileged`. Dans la plupart des cas, vous pouvez spécifier les privilèges exacts dont vous avez besoin en utilisant les paramètres spécifiques au lieu d'utiliser `privileged`.  
Ce paramètre correspond à `Privileged` dans la commande docker create-container et à l’option `--privileged` dans la commande docker run.  
Ce paramètre n'est pas pris en charge pour les conteneurs ou tâches Windows qui utilisent le type de lancement Fargate.
La valeur par défaut est `false`.  

```
"privileged": true|false
```

`user`  
Type : chaîne  
Obligatoire : non  
Utilisateur à utiliser à l'intérieur du conteneur. Ce paramètre correspond à `User` dans la commande docker create-container et à l’option `--user` dans la commande docker run.  
Lorsque vous exécutez des tâches en mode réseau `host`, n'exécutez pas de conteneurs à l'aide de l'utilisateur root (UID 0). Comme bonne pratique de sécurité, utilisez toujours un utilisateur non root.
Vous pouvez spécifier l'`user` à l'aide des formats suivants. Si vous spécifiez un UID ou GID, vous devez le spécifier en tant que nombre entier positif.  
+ `user`
+ `user:group`
+ `uid`
+ `uid:gid`
+ `user:gid`
+ `uid:group`
Ce paramètre n'est pas pris en charge par les conteneurs Windows.

```
"user": "string"
```

`dockerSecurityOptions`  
Type : tableau de chaînes  
Valeurs valides : « » \$1 no-new-privileges « apparmor:profile » \$1 « label : » \$1 « *value* credentialspec : » *CredentialSpecFilePath*  
Obligatoire : non  
Liste de chaînes pour fournir une configuration personnalisée pour plusieurs systèmes de sécurité.  
Pour les tâches Linux, ce paramètre peut être utilisé pour référencer des étiquettes personnalisées pour SELinux et des systèmes de sécurité à plusieurs niveaux AppArmor .  
Ce paramètre peut être utilisé pour référencer un fichier de spécification d’informations d’identification qui configure un conteneur pour l’authentification Active Directory. Pour plus d’informations, consultez [Utilisation des gMSA pour les conteneurs Windows EC2 pour Amazon ECS](windows-gmsa.md) et [Utilisation de gMSA pour les conteneurs Linux EC2 sur Amazon ECS](linux-gmsa.md).  
Ce paramètre correspond à `SecurityOpt` dans la commande docker create-container et à l’option `--security-opt` dans la commande docker run.  

```
"dockerSecurityOptions": ["string", ...]
```
L'agent de conteneur Amazon ECS en cours d'exécution sur une instance de conteneur doit s'enregistrer avec les variables d'environnement `ECS_SELINUX_CAPABLE=true` ou `ECS_APPARMOR_CAPABLE=true` pour que les conteneurs placés sur cette instance puissent utiliser ces options de sécurité. Pour de plus amples informations, veuillez consulter [Configuration de l'agent de conteneur Amazon ECS](ecs-agent-config.md).

#### Limites des ressources
<a name="container_definition_limits_ec2"></a>

`ulimits`  
Type : tableau d'objets  
Obligatoire : non  
Une liste de valeurs `ulimit` à définir pour un conteneur. Cette valeur remplace le paramètre de quota de ressources par défaut pour le système d'exploitation. Ce paramètre correspond à `Ulimits` dans la commande docker create-container et à l’option `--ulimit` dans la commande docker run.  
Ce paramètre nécessite la version 1.18 de l'API Docker Remote ou une version ultérieure sur votre instance de conteneur.  
Ce paramètre n'est pas pris en charge par les conteneurs Windows.

```
"ulimits": [
      {
        "name": "core"|"cpu"|"data"|"fsize"|"locks"|"memlock"|"msgqueue"|"nice"|"nofile"|"nproc"|"rss"|"rtprio"|"rttime"|"sigpending"|"stack",
        "softLimit": integer,
        "hardLimit": integer
      }
      ...
    ]
```  
`name`  
Type : Chaîne  
Valeurs valides : `"core" | "cpu" | "data" | "fsize" | "locks" | "memlock" | "msgqueue" | "nice" | "nofile" | "nproc" | "rss" | "rtprio" | "rttime" | "sigpending" | "stack"`  
Obligatoire : oui, lorsque des objets `ulimits` sont utilisés  
Le `type` d'`ulimit`.  
`hardLimit`  
Type : Integer  
Obligatoire : oui, lorsque des objets `ulimits` sont utilisés  
La limite stricte du type `ulimit`. La valeur peut être spécifiée en octets, en secondes ou en nombre, selon le `type` d’`ulimit`.  
`softLimit`  
Type : Integer  
Obligatoire : oui, lorsque des objets `ulimits` sont utilisés  
La limite flexible du type `ulimit`. La valeur peut être spécifiée en octets, en secondes ou en nombre, selon le `type` d’`ulimit`.

#### Étiquettes Docker
<a name="container_definition_labels_ec2"></a>

`dockerLabels`  
Type : mappage chaîne/chaîne  
Obligatoire : non  
Une key/value carte des étiquettes à ajouter au conteneur. Ce paramètre correspond à `Labels` dans la commande docker create-container et à l’option `--label` dans la commande docker run.   
Ce paramètre nécessite la version 1.18 de l'API Docker Remote ou une version ultérieure sur votre instance de conteneur.  

```
"dockerLabels": {"string": "string"
      ...}
```

### Autres paramètres de définition de conteneur
<a name="other_container_definition_params_ec2"></a>

Les paramètres de définition de conteneur suivants peuvent être utilisés lors de l'enregistrement des définitions de tâche dans la console Amazon ECS à l'aide de l'option **Configure via JSON** (Configurer via JSON). Pour de plus amples informations, veuillez consulter [Création d’une définition de tâche Amazon ECS à l’aide de la console](create-task-definition.md).

**Topics**
+ [Paramètres Linux](#container_definition_linuxparameters_ec2)
+ [Dépendances du conteneur](#container_definition_dependson_ec2)
+ [Temporisations de conteneurs](#container_definition_timeout_ec2)
+ [Contrôles système](#container_definition_systemcontrols_ec2)
+ [Interactive](#container_definition_interactive_ec2)
+ [Pseudo Terminal](#container_definition_pseudoterminal_ec2)

#### Paramètres Linux
<a name="container_definition_linuxparameters_ec2"></a>

`linuxParameters`  
Type : objet [LinuxParameters](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_LinuxParameters.html)  
Obligatoire : non  
Linux-des options spécifiques appliquées au conteneur, telles [KernelCapabilities](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_KernelCapabilities.html)que.  
Ce paramètre n'est pas pris en charge par les conteneurs Windows.

```
"linuxParameters": {
      "capabilities": {
        "add": ["string", ...],
        "drop": ["string", ...]
        }
      }
```  
`capabilities`  
Type : objet [KernelCapabilities](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_KernelCapabilities_ec2.html)  
Obligatoire : non  
Caractéristiques Linux du conteneur ajoutées ou supprimées de la configuration par défaut fournie par Docker. Pour plus d'informations sur ces caractéristiques Linux, veuillez consulter la page consacrée aux [caractéristiques(7)](http://man7.org/linux/man-pages/man7/capabilities.7.html) dans le manuel Linux (langue française non garantie).    
`add`  
Type : tableau de chaînes  
Valeurs valides : `"ALL" | "AUDIT_CONTROL" | "AUDIT_READ" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" | "WAKE_ALARM"`  
Obligatoire : non  
Caractéristiques Linux du conteneur à ajouter à la configuration par défaut fournie par Docker. Ce paramètre correspond à `CapAdd` dans la commande docker create-container et à l’option `--cap-add` dans la commande docker run.  
`add`  
Type : tableau de chaînes  
Valeurs valides : `"SYS_PTRACE"`  
Obligatoire : non  
Caractéristiques Linux du conteneur à ajouter à la configuration par défaut fournie par Docker. Ce paramètre correspond à `CapAdd` dans la commande docker create-container et à l’option `--cap-add` dans la commande docker run.  
`drop`  
Type : tableau de chaînes  
Valeurs valides : `"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" | "WAKE_ALARM"`  
Obligatoire : non  
Caractéristiques Linux du conteneur à supprimer de la configuration par défaut fournie par Docker. Ce paramètre correspond à `CapDrop` dans la commande docker create-container et à l’option `--cap-drop` dans la commande docker run.  
`devices`  
Tous les périphériques hôtes à exposer au conteneur. Ce paramètre correspond à `Devices` dans la commande docker create-container et à l’option `--device` dans la commande docker run.  
Type : tableau d'objets [Périphérique](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_Device.html)  
Obligatoire : non    
`hostPath`  
Chemin du périphérique dans l'instance de conteneur hôte.  
Type : Chaîne  
Obligatoire : oui  
`containerPath`  
Chemin auquel exposer l'appareil hôte à l'intérieur du conteneur.  
Type : chaîne  
Obligatoire : non  
`permissions`  
Autorisations explicites à fournir au conteneur pour le périphérique. Par défaut, le conteneur dispose des autorisations `read`, `write` et `mknod` sur l'appareil.  
Type : tableau de chaînes  
Valeurs valides : `read` \$1 `write` \$1 `mknod`  
`initProcessEnabled`  
Exécutez un processus `init` dans le conteneur afin de transmettre des signaux et de récolter les processus. Ce paramètre correspond à l’option `--init` de docker run.  
Ce paramètre nécessite la version 1.25 de l'API Docker à distance ou une version supérieure sur votre instance de conteneur.  
`maxSwap`  
Quantité totale de mémoire d'échange (en Mio) qu'un conteneur peut utiliser. Ce paramètre est converti en l’option `--memory-swap` de la commande docker run, où la valeur est la somme de la mémoire du conteneur et de la valeur `maxSwap`.  
Si la valeur `0` est spécifiée pour `maxSwap`, le conteneur n'utilise pas l'échange. Les valeurs acceptées sont `0` ou n'importe quel nombre entier positif. Si le paramètre `maxSwap` n'est pas spécifié, le conteneur utilise la configuration d'échange pour l'instance de conteneur sur laquelle il s'exécute. Une valeur `maxSwap` doit être définie pour que le paramètre `swappiness` soit utilisé.  
`sharedMemorySize`  
Valeur correspondant à la taille (en Mio) du volume `/dev/shm`. Ce paramètre correspond à l’option `--shm-size` de docker run.  
Type : Integer  
`swappiness`  
Vous pouvez utiliser ce paramètre pour régler le comportement d'échange de mémoire d'un conteneur. Une valeur `swappiness` de `0` empêche l'échange de se produire à moins que cela ne soit nécessaire. Une valeur `swappiness` de `100` entraîne fréquemment l'échange de pages. Les valeurs acceptées sont les nombres entiers compris entre `0` et `100`. Si vous ne spécifiez aucune valeur, la valeur par défaut `60` est utilisée. De plus, si vous ne spécifiez pas de valeur pour `maxSwap`, ce paramètre est ignoré. Ce paramètre correspond à l’option `--memory-swappiness` de docker run.  
Si vous utilisez des tâches sur Amazon Linux 2023, le paramètre `swappiness` n'est pas pris en charge.  
`tmpfs`  
Chemin du conteneur, options de montage et taille maximale (en Mio) du montage tmpfs. Ce paramètre correspond à l’option `--tmpfs` de docker run.  
Type : tableau d'objets [Tmpfs](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_Tmpfs.html)  
Obligatoire : non    
`containerPath`  
Chemin de fichier absolu où sera monté le volume tmpfs.  
Type : Chaîne  
Obligatoire : oui  
`mountOptions`  
Liste des options de montage du volume tmpfs.  
Type : tableau de chaînes  
Obligatoire : non  
Valeurs valides : `"defaults" | "ro" | "rw" | "suid" | "nosuid" | "dev" | "nodev" | "exec" | "noexec" | "sync" | "async" | "dirsync" | "remount" | "mand" | "nomand" | "atime" | "noatime" | "diratime" | "nodiratime" | "bind" | "rbind" | "unbindable" | "runbindable" | "private" | "rprivate" | "shared" | "rshared" | "slave" | "rslave" | "relatime" | "norelatime" | "strictatime" | "nostrictatime" | "mode" | "uid" | "gid" | "nr_inodes" | "nr_blocks" | "mpol"`  
`size`  
Taille maximale (en Mio) du volume tmpfs.  
Type : Integer  
Obligatoire : oui

#### Dépendances du conteneur
<a name="container_definition_dependson_ec2"></a>

`dependsOn`  
Type : tableau d’objets [ContainerDependency](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDependency.html)  
Obligatoire : non  
Dépendances définies pour le démarrage et l'arrêt de conteneurs. Un conteneur peut contenir plusieurs dépendances. Lorsqu'une dépendance est définie pour le démarrage des conteneurs, elle est inversée pour leur arrêt. Pour obtenir un exemple, consultez [Dépendances du conteneur](example_task_definitions.md#example_task_definition-containerdependency).  
Si un conteneur ne respecte pas une contrainte de dépendance ou s'écoule avant de respecter la contrainte, Amazon ECS ne fait pas progresser pas les conteneurs dépendants vers leur état suivant.
Les instances nécessitent au moins la version `1.26.0` de l’agent de conteneur pour activer les dépendances de conteneur. Toutefois, nous vous recommandons d'utiliser la dernière version de l'agent de conteneur. Pour plus d'informations sur la vérification de la version de votre agent et la mise à jour à la dernière version, consultez [Mise à jour de l'agent de conteneur Amazon ECS](ecs-agent-update.md). Si vous utilisez l'AMI Linux Amazon optimisée pour Amazon ECS, votre instance doit au moins disposer de la version `1.26.0-1` du package `ecs-init`. Si vos instances de conteneur sont lancées à partir de la version `20190301` ou ultérieure, elles contiennent les versions requises de l'agent de conteneur et `ecs-init`. Pour de plus amples informations, veuillez consulter [Linux optimisé pour Amazon ECS AMIs](ecs-optimized_AMI.md).  

```
"dependsOn": [
    {
        "containerName": "string",
        "condition": "string"
    }
]
```  
`containerName`  
Type : Chaîne  
Obligatoire : oui  
Nom de conteneur qui doit répondre à la condition spécifiée.  
`condition`  
Type : Chaîne  
Obligatoire : oui  
Condition de dépendance du conteneur. Voici les conditions disponibles et leur comportement :  
+ `START` - Cette condition émule le comportement de liens et de volumes aujourd'hui. La condition vérifie qu'un conteneur dépendant est démarré avant d'autoriser d'autres conteneurs à démarrer.
+ `COMPLETE` - Cette condition vérifie qu'un conteneur dépendant exécute un cycle complet (sorties) avant d'autoriser d'autres conteneurs à démarrer. Cela peut être utile pour les conteneurs non essentiels qui exécutent un script, puis se ferment. Cette condition ne peut pas être définie sur un conteneur essentiel.
+ `SUCCESS` - Cette condition est identique à `COMPLETE`, mais elle nécessite également que le conteneur se termine par un état `zero`. Cette condition ne peut pas être définie sur un contenant essentiel.
+ `HEALTHY` - Cette condition vérifie que la surveillance de l'état du conteneur dépendant réussit avant d'autoriser d'autres conteneurs à démarrer. Cela nécessite que le conteneur dépendant dispose de surveillances de l'état configurées dans la définition de la tâche. Cette condition est confirmée uniquement au démarrage de la tâche.

#### Temporisations de conteneurs
<a name="container_definition_timeout_ec2"></a>

`startTimeout`  
Type : Integer  
Obligatoire : non  
Exemples de valeur : `120`  
Durée d'attente (en secondes) avant l'abandon de la résolution de dépendances pour un conteneur.  
Par exemple, vous spécifiez deux conteneurs dans une définition de tâche, où le `containerA` dispose d'une dépendance au `containerB` avec un état `COMPLETE`, `SUCCESS` ou `HEALTHY`. Si une valeur `startTimeout` est spécifiée pour `containerB` et qu'il n'a pas atteint l'état souhaité dans ce délai, alors le `containerA` ne démarre pas.  
Si un conteneur ne respecte pas une contrainte de dépendance ou s'écoule avant de respecter la contrainte, Amazon ECS ne fait pas progresser pas les conteneurs dépendants vers leur état suivant.
La valeur maximale est de 120 secondes.

`stopTimeout`  
Type : Integer  
Obligatoire : non  
Exemples de valeur : `120`  
Durée (en secondes) à attendre avant que le conteneur soit expressément tué s'il ne s'achève pas normalement tout seul.  
Si le paramètre `stopTimeout` n’est pas spécifié, la valeur définie pour la variable de configuration `ECS_CONTAINER_STOP_TIMEOUT` de l’agent de conteneur Amazon ECS est utilisée. Si ni le paramètre `stopTimeout` ni la variable de configuration de l'agent `ECS_CONTAINER_STOP_TIMEOUT` ne sont définis, les valeurs par défaut de 30 secondes pour les conteneurs Linux et de 30 secondes pour les conteneurs Windows sont utilisées. Les instances de conteneur doivent au moins disposer de la version 1.26.0 de l'agent de conteneur pour permettre une valeur de temporisation d'arrêt d'un conteneur. Toutefois, nous vous recommandons d'utiliser la dernière version de l'agent de conteneur. Pour plus d'informations sur la vérification de la version de votre agent et la mise à jour à la dernière version, consultez [Mise à jour de l'agent de conteneur Amazon ECS](ecs-agent-update.md). Si vous utilisez l'AMI Amazon Linux optimisée pour Amazon ECS, votre instance doit au moins disposer de la version 1.26.0-1 du package `ecs-init`. Si vos instances de conteneur sont lancées à partir de la version `20190301` ou ultérieure, elles contiennent les versions requises de l'agent de conteneur et `ecs-init`. Pour de plus amples informations, veuillez consulter [Linux optimisé pour Amazon ECS AMIs](ecs-optimized_AMI.md).

#### Contrôles système
<a name="container_definition_systemcontrols_ec2"></a>

`systemControls`  
Type : objet [SystemControl](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_SystemControl.html)  
Obligatoire : non  
Liste des paramètres du noyau de l’espace de noms à définir dans le conteneur. Ce paramètre correspond à `Sysctls` dans la commande docker create-container et à l’option `--sysctl` dans la commande docker run. Par exemple, vous pouvez configurer le paramètre `net.ipv4.tcp_keepalive_time` pour maintenir des connexions de plus longue durée.  
Il n'est pas recommandé de spécifier des paramètres `systemControls` liés au réseau pour plusieurs conteneurs dans une seule tâche qui utilise également le mode réseau `awsvpc` ou `host`. En procédant ainsi, vous vous exposez aux inconvénients suivants :  
+ Pour les tâches qui utilisent le mode réseau `awsvpc`, si vous définissez le paramètre `systemControls` pour un conteneur, il s'applique à tous les conteneurs de la tâche. Si vous définissez différents paramètres `systemControls` pour plusieurs conteneurs dans une seule tâche, c'est le conteneur qui est démarré en dernier qui détermine le paramètre `systemControls` qui prend effet.
+ Les définitions de tâche qui utilisent le mode réseau `host`, l'espace de noms `systemControls` ne sont pas prises en charge.
Si vous définissez un espace de noms des ressources IPC à utiliser pour les conteneurs de la tâche, les conditions suivantes s'appliquent aux contrôles de système. Pour de plus amples informations, veuillez consulter [Mode IPC](task_definition_parameters.md#task_definition_ipcmode).  
+ Pour les tâches qui utilisent le mode IPC `host`, les `systemControls` liés à l'espace de noms IPC ne sont pas pris en charge.
+ Pour les tâches qui utilisent le mode IPC `task`, les valeurs des `systemControls` liés à l'espace de noms IPC s'appliquent à tous les conteneurs au sein d'une tâche.
Ce paramètre n'est pas pris en charge par les conteneurs Windows.

```
"systemControls": [
    {
         "namespace":"string",
         "value":"string"
    }
]
```  
`namespace`  
Type : chaîne  
Obligatoire : non  
Paramètre du noyau de l’espace de noms pour lequel définir une `value`.  
Valeurs d'espace de noms IPC valides : `"kernel.msgmax" | "kernel.msgmnb" | "kernel.msgmni" | "kernel.sem" | "kernel.shmall" | "kernel.shmmax" | "kernel.shmmni" | "kernel.shm_rmid_forced"`, et `Sysctls` qui commencent par `"fs.mqueue.*"`  
Valeurs d'espace de noms de réseau valides : `Sysctls` qui commencent par `"net.*"`  
`value`  
Type : chaîne  
Obligatoire : non  
Valeur du paramètre du noyau de l’espace de noms spécifié dans `namespace`.

#### Interactive
<a name="container_definition_interactive_ec2"></a>

`interactive`  
Type : booléen  
Obligatoire : non  
Lorsque ce paramètre est `true`, vous pouvez déployer des applications conteneurisées qui nécessitent l'allocation d'une `stdin` ou d'un `tty`. Ce paramètre correspond à `OpenStdin` dans la commande docker create-container et à l’option `--interactive` dans la commande docker run.  
La valeur par défaut est `false`.

#### Pseudo Terminal
<a name="container_definition_pseudoterminal_ec2"></a>

`pseudoTerminal`  
Type : booléen  
Obligatoire : non  
Lorsque ce paramètre a la valeur `true`, un TTY est alloué. Ce paramètre correspond à `Tty` dans la commande docker create-container et à l’option `--tty` dans la commande docker run.  
La valeur par défaut est `false`.

## Nom de l'accélérateur Elastic Inference (obsolète)
<a name="elastic-Inference-accelerator_ec2"></a>

L'exigence de la ressource d'accélérateur Elastic Inference pour votre définition de tâche. 

**Note**  
Amazon Elastic Inference (EI) n’est plus disponible pour les clients.

Les paramètres suivants sont autorisés dans une définition de tâche :

`deviceName`  
Type : Chaîne  
Obligatoire : oui  
Nom de l'appareil accélérateur d'inférence élastique pour l'instance. `deviceName` doit également être référencé dans une définition du conteneur. Consultez [Elastic Inference accelerator](task_definition_parameters.md#ContainerDefinition-elastic-inference).

`deviceType`  
Type : Chaîne  
Obligatoire : oui  
L'accélérateur Elastic Inference à utiliser.

## Contraintes de placement des tâches
<a name="constraints_ec2"></a>

Lorsque vous enregistrez une définition de tâche, vous pouvez fournir des contraintes de placement des tâches qui personnalisent la façon dont Amazon ECS place les tâches.

Vous pouvez utiliser des contraintes pour placer des tâches en fonction de la zone de disponibilité, du type d’instance ou d’attributs personnalisés. Pour de plus amples informations, veuillez consulter [Définition des instances de conteneur utilisées par Amazon ECS pour les tâches](task-placement-constraints.md).

Les paramètres suivants sont autorisés dans une définition de conteneur:

`expression`  
Type : chaîne  
Obligatoire : non  
Expression de langage de requête de cluster à appliquer à la contrainte. Pour de plus amples informations, veuillez consulter [Création d’expressions pour définir des instances de conteneur pour les tâches Amazon ECS](cluster-query-language.md).

`type`  
Type : Chaîne  
Obligatoire : oui  
Type de contrainte. Utilisez `memberOf` pour limiter la sélection à un groupe de candidats valides.

## Configuration du proxy
<a name="proxyConfiguration_ec2"></a>

`proxyConfiguration`  
Type : objet [ProxyConfiguration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ProxyConfiguration.html)  
Obligatoire : non  
Détails de configuration pour le proxy App Mesh.  
Pour les tâches qui utilisent EC2, les instances de conteneur nécessitent au moins la version 1.26.0 de l’agent de conteneur et au moins la version 1.26.0-1 du package `ecs-init` pour activer une configuration proxy. Si vos instances de conteneur sont lancées à partir de la version d'AMI `20190301` ou ultérieure optimisée pour Amazon ECS, elles contiennent les versions requises de l'agent de conteneur et `ecs-init`. Pour de plus amples informations, veuillez consulter [Linux optimisé pour Amazon ECS AMIs](ecs-optimized_AMI.md).  
Ce paramètre n'est pas pris en charge par les conteneurs Windows.

```
"proxyConfiguration": {
    "type": "APPMESH",
    "containerName": "string",
    "properties": [
        {
           "name": "string",
           "value": "string"
        }
    ]
}
```  
`type`  
Type : Chaîne  
Valeur valeurs : `APPMESH`  
Obligatoire : non  
Type de proxy. La seule valeur prise en charge est `APPMESH`.  
`containerName`  
Type : Chaîne  
Obligatoire : oui  
Nom du conteneur qui fait office de proxy App Mesh.  
`properties`  
Type : tableau d’objets [KeyValuePair](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_KeyValuePair.html)  
Obligatoire : non  
L'ensemble de paramètres de configuration réseau pour fournir le plug-in Container Network Interface (CNI), spécifié sous la forme de paires clé-valeur.  
+ `IgnoredUID` – (Obligatoire) ID d'utilisateur (UID) du conteneur de proxy, tel que défini par le paramètre `user` dans une définition de conteneur. Ce port est utilisé pour garantir que le proxy ignore son propre trafic. Si vous avez spécifié `IgnoredGID`, ce champ doit être vide.
+ `IgnoredGID` – (Obligatoire) ID de groupe (GID) du conteneur de proxy, tel que défini par le paramètre `user` dans une définition de conteneur. Ce port est utilisé pour garantir que le proxy ignore son propre trafic. Si vous avez spécifié `IgnoredUID`, ce champ doit être vide.
+ `AppPorts` - (Obligatoire) Liste des ports utilisés par l'application. Le trafic réseau vers ces ports est transmis à `ProxyIngressPort` et `ProxyEgressPort`.
+ `ProxyIngressPort` – (Obligatoire) Spécifie le port auquel le trafic entrant vers `AppPorts` est dirigé.
+ `ProxyEgressPort` – (Obligatoire) Spécifie le port auquel le trafic sortant de `AppPorts` est dirigé.
+ `EgressIgnoredPorts` – (Obligatoire) Le trafic sortant accédant à ces ports spécifiés est ignoré et n'est pas redirigé vers le `ProxyEgressPort`. Cela peut être une liste vide.
+ `EgressIgnoredIPs` – (Obligatoire) Le trafic sortant accédant à ces adresses IP spécifiées est ignoré et n'est pas redirigé vers le `ProxyEgressPort`. Cela peut être une liste vide.  
`name`  
Type : chaîne  
Obligatoire : non  
Nom de la paire clé-valeur.  
`value`  
Type : chaîne  
Obligatoire : non  
Valeur de la paire clé-valeur.

## Volumes
<a name="volumes_ec2"></a>

Lorsque vous enregistrez une définition de tâche, vous pouvez spécifier une liste de volumes à transmettre au démon Docker sur une instance de conteneur, à laquelle d’autres conteneurs de la même instance de conteneur pourront accéder.

Les types de volumes de données qui peuvent être utilisés sont les suivants :
+ Volumes Amazon EBS : fournit un stockage par blocs rentable, durable et performant pour les charges de travail conteneurisées gourmandes en données. Vous pouvez attacher un volume Amazon EBS par tâche Amazon ECS lorsque vous exécutez une tâche autonome ou lorsque vous créez ou mettez à jour un service. Les volumes Amazon EBS sont pris en charge pour les tâches Linux. Pour de plus amples informations, veuillez consulter [Utilisation des volumes Amazon EBS avec Amazon ECS](ebs-volumes.md).
+ Volumes Amazon EFS : fournit un stockage de fichiers simple, évolutif et permanent à utiliser avec vos tâches Amazon ECS. Avec Amazon EFS, la capacité de stockage est élastique. Elle augmente et diminue automatiquement au fil de vos ajouts et suppressions de fichiers. Vos applications peuvent disposer de l'espace de stockage dont elles ont besoin, au moment où elles en ont besoin. Les volumes Amazon EFS sont pris en charge. Pour de plus amples informations, veuillez consulter [Utilisation des volumes Amazon EFS avec Amazon ECS](efs-volumes.md).
+ FSx pour les volumes de serveurs de fichiers Windows : fournit des serveurs de fichiers Microsoft Windows entièrement gérés. Ces serveurs de fichiers sont basés sur un système de fichiers Windows. Lorsque vous utilisez FSx un serveur de fichiers Windows avec Amazon ECS, vous pouvez fournir à vos tâches Windows un stockage de fichiers persistant, distribué, partagé et statique. Pour de plus amples informations, veuillez consulter [Utilisation FSx pour les volumes de serveurs de fichiers Windows avec Amazon ECS](wfsx-volumes.md).

  Les conteneurs Windows sur Fargate ne prennent pas en charge cette option.
+ Volumes Docker : volume géré par Docker qui est créé sous `/var/lib/docker/volumes` sur l’instance Amazon EC2 hôte. Les pilotes de volume Docker (également appelés plugins) sont utilisés pour intégrer les volumes à des systèmes de stockage externes, tels qu'Amazon EBS. Le pilote de volume `local` intégré ou un pilote de volume tiers peut être utilisé. Les volumes Docker sont pris en charge uniquement lors de l’exécution de tâches sur des instances Amazon EC2. Les conteneurs Windows prennent uniquement en charge l’utilisation du pilote `local`. Pour utiliser des volumes Docker, spécifiez un `dockerVolumeConfiguration` dans votre définition de tâche.
+ Montages liés : un fichier ou un dossier sur la machine hôte est monté dans un conteneur. Les volumes hôtes à montage lié sont pris en charge. Pour utiliser des volumes hôte de montage lié, spécifiez un `host` et éventuellement une valeur `sourcePath` dans votre définition de tâche.

Pour de plus amples informations, veuillez consulter [Options de stockage pour les tâches Amazon ECS](using_data_volumes.md).

Les paramètres suivants sont autorisés dans une définition de conteneur.

`name`  
Type : chaîne  
Obligatoire : non  
Nom du volume. Jusqu’à 255 lettres (majuscules et minuscules), chiffres, traits d’union (`-`) et traits de soulignement (`_`) sont autorisés. Ce nom est référencé dans le paramètre `sourceVolume` de l’objet `mountPoints` de définition du conteneur.

`host`  
Obligatoire : non  
Le paramètre `host` est utilisé pour lier le cycle de vie du montage lié à l'instance Amazon EC2 hôte, plutôt qu'à la tâche et à l'endroit où elle est stockée. Si le paramètre `host` est vide, le démon Docker attribue un chemin hôte au volume de données, mais la persistance des données après l'arrêt des conteneurs qui lui sont associés n'est pas garantie.  
Les conteneurs Windows peuvent monter des répertoires entiers sur le même lecteur que `$env:ProgramData`.  
Le `sourcePath` paramètre est pris en charge uniquement lors de l'utilisation de tâches hébergées sur des instances Amazon EC2 ou des instances gérées Amazon ECS.  
`sourcePath`  
Type : chaîne  
Obligatoire : non  
Lorsque le paramètre `host` est utilisé, spécifiez un paramètre `sourcePath` pour déclarer le chemin d'accès sur l'instance Amazon EC2 hôte qui est présentée au conteneur. Si ce paramètre est vide, le démon Docker attribue un chemin hôte pour vous. Si le paramètre `host` contient un emplacement de fichier `sourcePath`, le volume de données persiste à l'emplacement spécifié sur l'instance Amazon EC2 hôte jusqu'à ce que vous le supprimiez manuellement. Si la valeur `sourcePath` n'existe pas sur l'instance Amazon EC2 hôte, le démon Docker la crée. Si l'emplacement n'existe pas, le contenu du chemin source est exporté.

`configuredAtLaunch`  
Type : booléen  
Obligatoire : non  
Spécifie si un volume est configurable au lancement. Lorsqu’il est défini sur `true`, vous pouvez configurer le volume lors de l’exécution d’une tâche autonome ou lors de la création ou de la mise à jour d’un service. Lorsque cette option est définie sur `true`, vous ne pourrez pas fournir d’autre configuration de volume dans la définition de tâche. Ce paramètre doit être défini sur `true` pour configurer un volume Amazon EBS à rattacher à une tâche. En définissant `configuredAtLaunch` sur `true` et en reportant la configuration du volume à la phase de lancement, vous pouvez créer des définitions de tâches qui ne sont pas limitées à un type de volume ou à des paramètres de volume spécifiques. Cela rend votre définition de tâche réutilisable dans différents environnements d’exécution. Pour plus d'informations, consultez [Volumes Amazon EBS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ebs-volumes.html).

`dockerVolumeConfiguration`  
Type : [DockerVolumeConfiguration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DockerVolumeConfiguration.html)Objet  
Obligatoire : non  
Ce paramètre est spécifié lorsque vous utilisez des volumes Docker. Les volumes Docker sont pris en charge uniquement lors de l’exécution de tâches sur des instances EC2. Les conteneurs Windows prennent uniquement en charge l’utilisation du pilote `local`. Pour utiliser des montages liés, spécifiez plutôt un paramètre `host`.    
`scope`  
Type : Chaîne  
Valeurs valides : `task` \$1 `shared`  
Obligatoire : non  
Portée du volume Docker, qui détermine son cycle de vie. Les volumes Docker destinés à un élément `task` sont automatiquement mis en service lorsque la tâche commence, et détruits lorsque la tâche s'arrête. Les volumes Docker définis comme `shared` ne sont pas supprimés lorsque la tâche s'arrête.  
`autoprovision`  
Type : Boolean  
Valeur par défaut : `false`  
Obligatoire : non  
Si cette valeur est `true`, le volume Docker est créé s'il n'existe pas déjà. Ce champ n’est utilisé que si `scope` a la valeur `shared`. Si le champ `scope` a la valeur `task`, ce paramètre doit être omis.  
`driver`  
Type : chaîne  
Obligatoire : non  
Pilote de volume Docker à utiliser. La valeur du pilote doit correspondre au nom du pilote fourni par Docker, car ce nom est utilisé pour le placement des tâches. Si le pilote a été installé à l’aide de l’interface CLI du plug-in Docker, utilisez `docker plugin ls` pour récupérer le nom du pilote à partir de votre instance de conteneur. Si le pilote a été installé à l’aide d’une autre méthode, utilisez la découverte du plug-in Docker pour récupérer le nom du pilote.  
`driverOpts`  
Type : chaîne  
Obligatoire : non  
Mappage des options spécifiques au pilote Docker à transmettre. Ce paramètre correspond à `DriverOpts` dans la section « Créer un volume » de Docker.  
`labels`  
Type : chaîne  
Obligatoire : non  
Métadonnées personnalisées à ajouter à votre volume Docker.

`efsVolumeConfiguration`  
Type : objet [EFSVolumede configuration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_EFSVolumeConfiguration.html)  
Obligatoire : non  
Ce paramètre est spécifié lorsque vous utilisez des volumes Amazon EFS.    
`fileSystemId`  
Type : Chaîne  
Obligatoire : oui  
ID du système de fichiers Amazon EFS à utiliser.  
`rootDirectory`  
Type : chaîne  
Obligatoire : non  
Répertoire du système de fichiers Amazon EFS à monter en tant que répertoire racine à l'intérieur de l'hôte. Si ce paramètre est omis, la racine du volume Amazon EFS est utilisée. La spécification de `/` a le même effet que l'omission de ce paramètre.  
Si un point d’accès EFS est spécifié dans `authorizationConfig`, le paramètre de répertoire racine doit être omis ou défini sur `/`, ce qui imposera le chemin défini sur le point d’accès EFS.  
`transitEncryption`  
Type : Chaîne  
Valeurs valides : `ENABLED` \$1 `DISABLED`  
Obligatoire : non  
Indique si vous souhaitez activer ou non le chiffrement des données Amazon EFS en transit entre l'hôte Amazon ECS et le serveur Amazon EFS. Si l'autorisation Amazon EFS IAM est utilisée, le chiffrement de transit doit être activé. Si ce paramètre est omis, la valeur par défaut `DISABLED` est utilisée. Pour plus d'informations, consultez [Chiffrement des données en transit](https://docs.aws.amazon.com/efs/latest/ug/encryption-in-transit.html) dans le *Guide de l'utilisateur Amazon Elastic File System*.  
`transitEncryptionPort`  
Type : Integer  
Obligatoire : non  
Port à utiliser lors de l'envoi de données chiffrées entre l'hôte Amazon ECS et le serveur Amazon EFS. Si vous ne spécifiez pas de port de chiffrement en transit, la tâche utilisera la stratégie de sélection de port adoptée par l’assistant de montage Amazon EFS. Pour plus d'informations, consultez [Assistant de montage EFS](https://docs.aws.amazon.com/efs/latest/ug/efs-mount-helper.html) dans le *Guide de l'utilisateur Amazon Elastic File System User*.  
`authorizationConfig`  
Type : objet [EFSAuthorizationConfig](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_EFSAuthorizationConfig.html)  
Obligatoire : non  
Détails de configuration des autorisations pour le système de fichiers Amazon EFS.    
`accessPointId`  
Type : chaîne  
Obligatoire : non  
ID du point d'accès à utiliser. Si un point d’accès est spécifié, la valeur du répertoire racine dans `efsVolumeConfiguration` doit être omise ou définie sur `/`, ce qui imposera le chemin défini sur le point d’accès EFS. Si un point d'accès est utilisé, le chiffrement de transit doit être activé dans `EFSVolumeConfiguration`. Pour plus d'informations, consultez [Utilisation des points d'accès Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html) dans le *Guide de l'utilisateur Amazon Elastic File System*.  
`iam`  
Type : Chaîne  
Valeurs valides : `ENABLED` \$1 `DISABLED`  
Obligatoire : non  
Indique s’il faut ou non utiliser le rôle IAM de tâche Amazon ECS spécifié dans une définition de tâche lors du montage du système de fichiers Amazon EFS. Si cette option est activée, le chiffrement en transit doit être activé dans la configuration `EFSVolumeConfiguration`. Si ce paramètre est omis, la valeur par défaut `DISABLED` est utilisée. Pour plus d'informations, consultez [Rôles IAM pour les tâches](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html).

`FSxWindowsFileServerVolumeConfiguration`  
Type : [FSxWindowsFileServerVolumeConfiguration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_FSxWindowsFileServerVolumeConfiguration.html)Objet  
Obligatoire : oui  
Ce paramètre est spécifié lorsque vous utilisez un système de fichiers [Amazon FSx pour Windows File Server](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/what-is.html) pour le stockage des tâches.    
`fileSystemId`  
Type : Chaîne  
Obligatoire : oui  
L' FSx identifiant du système de fichiers Windows File Server à utiliser.  
`rootDirectory`  
Type : Chaîne  
Obligatoire : oui  
Le répertoire du système FSx de fichiers Windows File Server à monter en tant que répertoire racine sur l'hôte.  
`authorizationConfig`    
`credentialsParameter`  
Type : Chaîne  
Obligatoire : oui  
Options d'informations d'identification d'autorisation.  

**Options :**
+ Amazon Resource Name (ARN) d’un secret [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html).
+ ARN d’un paramètre [AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/integration-ps-secretsmanager.html).  
`domain`  
Type : Chaîne  
Obligatoire : oui  
Nom de domaine complet hébergé par un répertoire [AWS Directory Service for Microsoft Active Directory](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html) (AWS Managed Microsoft AD) ou un Active Directory EC2 autohébergé.

## Étiquettes
<a name="tags_ec2"></a>

Lorsque vous enregistrez une définition de tâche, vous pouvez éventuellement spécifier des étiquettes de métadonnées qui sont appliquées à la définition de tâche. Les balises vous aident à classer et à organiser votre définition de tâche. Chaque balise est constituée d’une clé et d’une valeur facultative. Vous définissez ces deux éléments. Pour de plus amples informations, veuillez consulter [Balisage des ressources Amazon ECS](ecs-using-tags.md).

**Important**  
N'ajoutez pas de données d'identification personnelle ou d'autres informations confidentielles ou sensibles dans les étiquettes. Les tags sont accessibles à de nombreux AWS services, y compris la facturation. Les étiquettes ne sont pas destinées à être utilisées pour des données privées ou sensibles.

Les paramètres suivants sont autorisés dans un objet balise.

`key`  
Type : chaîne  
Obligatoire : non  
Partie d'une paire clé-valeur qui constitue une étiquette. Une clé est une étiquette générale qui fait office de catégorie pour les valeurs d'étiquette plus spécifiques.

`value`  
Type : chaîne  
Obligatoire : non  
Partie facultative d'une paire clé-valeur qui constitue une étiquette. Une valeur agit comme un descripteur au sein d'une catégorie d'étiquette (clé).

## Autres paramètres de définition de tâche
<a name="other_task_definition_params_ec2"></a>

Les paramètres de définition de tâche suivants peuvent être utilisés lors de l'enregistrement des définitions de tâches dans la console Amazon ECS à l'aide de l'option **Configure via JSON** (Configurer via JSON). Pour de plus amples informations, veuillez consulter [Création d’une définition de tâche Amazon ECS à l’aide de la console](create-task-definition.md).

**Topics**
+ [Mode IPC](#task_definition_ipcmode_ec2)
+ [Mode PID](#task_definition_pidmode_ec2)
+ [Injection de pannes](#task_definition_faultInjection_ec2)

### Mode IPC
<a name="task_definition_ipcmode_ec2"></a>

`ipcMode`  
Type : chaîne  
Obligatoire : non  
Espace de noms de ressource IPC à utiliser pour les conteneurs de la tâche. Les valeurs valides sont `host`, `task` ou `none`. Si `host` est spécifié, tous les conteneurs des tâches ayant spécifié le mode IPC `host` sur la même instance de conteneur partagent les mêmes ressources IPC avec l'instance Amazon EC2 hôte. Si `task` est spécifié, tous les conteneurs de la tâche spécifiée partagent les mêmes ressources IPC. Si `none` est spécifié, les ressources IPC des conteneurs d'une tâche sont privés et ne partagent rien avec les autres conteneurs d'une tâche ou d'une instance de conteneur. Si aucune valeur n'est spécifiée, le partage de l'espace de noms de ressource IPC dépend du paramètre du démon Docker sur l'instance de conteneur.  
Si le mode IPC `host` est utilisé, il existe un risque accru d'exposition à un espace de noms IPC indésirable.  
Si vous définissez les paramètres du noyau placés dans un espace de noms à l'aide de `systemControls` pour les conteneurs de la tâche, les éléments suivants s'appliquent à votre espace de noms de ressource IPC.   
+ Pour les tâches qui utilisent le mode IPC `host`, les `systemControls` liés à l'espace de noms IPC ne sont pas pris en charge.
+ Pour les tâches qui utilisent le mode IPC `task`, les `systemControls` liés à l'espace de noms IPC s'appliquent à tous les conteneurs au sein d'une tâche.

### Mode PID
<a name="task_definition_pidmode_ec2"></a>

`pidMode`  
Type : Chaîne  
Valeurs valides : `host` \$1 `task`  
Obligatoire : non  
Espace de noms de processus à utiliser pour les conteneurs de la tâche. Les valeurs valides sont `host` ou `task`. Par exemple, la surveillance des sidecars peut avoir besoin de `pidMode` pour accéder à des informations sur d'autres conteneurs exécutés dans le cadre de la même tâche.  
Si `host` est spécifié, tous les conteneurs des tâches ayant spécifié le mode PID `host` sur la même instance de conteneur partagent le même espace de noms de processus avec l'instance Amazon EC2 hôte.  
Si `task` est spécifié, tous les conteneurs de la tâche spécifiée partagent le même espace de noms de processus.  
Si aucune valeur n'est spécifiée, la valeur par défaut est un espace de noms privé pour chaque conteneur.   
Si le mode PID `host` est utilisé, il existe un risque accru d'exposition à un espace de noms de processus indésirable.

**Note**  
Ce paramètre n'est pas pris en charge par les conteneurs Windows.

### Injection de pannes
<a name="task_definition_faultInjection_ec2"></a>

`enableFaultInjection`  
Type : Boolean  
Valeurs valides : `true` \$1 `false`  
Obligatoire : non  
Si ce paramètre est défini sur `true`, dans les données utiles d’une tâche, Amazon ECS accepte les requêtes d’injection de pannes provenant des conteneurs de la tâche. Par défaut, ce paramètre est défini sur `false`.