Paramètres de définition de tâche - Amazon Elastic Container Service

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

Les définitions de tâches sont divisées en plusieurs parties : la famille de tâches, le rôle de tâche AWS Identity and Access Management (IAM), le mode réseau, les définitions des conteneurs, les volumes, les contraintes de placement des tâches et les types de lancement. 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. Pour plus d’informations, consultez Exemples de définitions de tâches liées aux options de journalisation.

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

Famille

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.

Types de lancement

Lorsque vous enregistrez une définition de tâche, vous pouvez spécifier un type de lancement par rapport auquel 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. Pour plus d’informations, consultez Types de lancement Amazon ECS.

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

requiresCompatibilities

Type : tableau de chaînes

Obligatoire : non

Valeurs valides : EC2 | FARGATE | EXTERNAL

Les types de lancement pour lesquels la définition de tâche doit être validée. Cela permet de lancer une vérification afin de s'assurer que tous les paramètres utilisés dans la définition de la tâche correspondent aux exigences du type de lancement.

Rôle de tâche

taskRoleArn

Type : chaîne

Obligatoire : non

Lorsque vous enregistrez une définition de tâche, vous pouvez fournir un rôle de tâche pour un rôle IAM qui permet aux conteneurs dans l'autorisation de tâche d'appeler en votre nom les API AWS qui sont spécifiées dans les stratégies qui lui associées. Pour plus d’informations, consultez Rôle IAM de tâche.

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 plus d’informations, consultez Configuration supplémentaire des rôles IAM pour les tâches Windows.

Rôle d'exécution de tâche

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.

Note

Le rôle IAM d'exécution de la tâche est requis en fonction des besoins de votre tâche. Pour plus d’informations, consultez Rôle IAM d'exécution de tâche Amazon ECS.

Mode réseau

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 utilisé est default. Pour les tâches Amazon ECS hébergées sur Fargate, awsvpc le mode réseau est requis.

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.

Important

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.

Pour les types de lancement Amazon EC2, si le mode réseau est sélectionnéawsvpc, une interface Elastic Network est allouée à la tâche, et vous devez en spécifier une NetworkConfiguration lorsque vous créez un service ou exécutez une tâche avec la définition de la tâche. Pour plus d’informations, consultez Mise en réseau des tâches pour les tâches sur les instances Amazon EC2.

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.

Pour les types de lancement Fargate, lorsque le mode réseau awsvpc est activé, une interface Elastic Network est allouée à la tâche, et vous devez en spécifier NetworkConfiguration une lorsque vous créez un service ou exécutez une tâche avec la définition de la tâche. Pour plus d'informations, consultez Fargate Task Networking. Le mode réseau awsvpc offre les meilleures performances de mise en réseau pour les conteneurs, car ils utilisent la pile de réseau Amazon EC2. Les ports de conteneur exposés sont mappés directement au port attaché de l'interface réseau Elastic. Pour cette raison, vous ne pouvez pas utiliser de mappages de ports hôtes dynamiques.

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.

Si vous utilisez le type de lancement Fargate, le mode réseau awsvpc est requis. Si vous utilisez le type de lancement EC2, le mode réseau 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

operatingSystemFamily

Type : chaîne

Obligatoire : Conditionnelle

Par défaut : LINUX

Ce paramètre est requis pour les tâches Amazon ECS hébergées sur Fargate.

Lorsque vous enregistrez une définition de tâche, vous spécifiez la famille du système d'exploitation.

Les valeurs valides des tâches Amazon ECS hébergées sur Fargate sont les suivantes :LINUX, WINDOWS_SERVER_2019_FULL, WINDOWS_SERVER_2019_CORE, WINDOWS_SERVER_2022_FULL et WINDOWS_SERVER_2022_CORE.

Les valeurs valides des tâches Amazon ECS hébergées sur EC2 sont les suivantes : LINUX, WINDOWS_SERVER_2022_CORE, WINDOWS_SERVER_2022_FULL, WINDOWS_SERVER_2019_FULL, et 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

Par défaut : X86_64

Ce paramètre est requis pour les tâches Amazon ECS hébergées sur Fargate. Si le paramètre est laissé sur null, la valeur par défaut est automatiquement attribuée lors du lancement d'une tâche hébergée sur Fargate.

Lorsque vous enregistrez une définition de tâche, vous spécifiez l'architecture du processeur. Les valeurs valides sont X86_64 et ARM64.

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 pour le type de lancement Fargate ou le type de lancement EC2, vous pouvez définir la valeur sur ARM64. Pour plus d’informations, consultez Utilisation des charges de travail ARM 64 bits sur Amazon ECS.

Taille de la tâche

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. Pour les tâches hébergées sur Fargate (Linux et Windows), ces champs sont obligatoires et des valeurs spécifiques sont disponibles selon le cpu et la memory pris en charge.

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.

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

cpu

Type : chaîne

Obligatoire : Conditionnelle

Note

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. Il peut être exprimé à l'aide d'unités CPU (par exemple,1024) ou à l'aide de vCPU (par exemple, 1 vCPU ou1 vcpu) dans une définition de tâche. Lorsque la définition de tâche est enregistrée, la valeur de vCPU (processeurs virtuels) est convertie en un nombre entier indiquant les unités UC.

Pour les tâches qui s'exécutent sur des instances EC2 ou externes, 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 pour les tâches exécutées sur des instances EC2 ou externes se situent entre les vCPU 0.125 et les vCPU 10.

Pour les tâches exécutées sur Fargate (containers Linux et Windows), ce champ est obligatoire et vous devez utiliser l'une des valeurs suivantes, qui détermine la plage de valeurs prises en charge pour le paramètre memory. Le tableau suivant indique les combinaisons valides d'UC et de mémoire au niveau de la tâche.

Valeur d'UC

Valeur de mémoire

Systèmes d'exploitation pris en charge pour AWS Fargate

256 (0,25 vCPU)

512 Mio, 1 Go, 2 Go

Linux

512 (0,5 vCPU)

1 Go, 2 Go, 3 Go, 4 Go

Linux

1 024 (1 vCPU)

2 Go, 3 Go, 4 Go, 5 Go, 6 Go, 7 Go, 8 Go

Linux, Windows

2 048 (2 vCPU)

Entre 4 Go et 16 Go par incréments de 1 Go

Linux, Windows

4 096 (4 vCPU)

Entre 8 Go et 30 Go par incréments de 1 Go

Linux, Windows

8192 (8 vCPU)

Note

Cette option nécessite la plateforme Linux 1.4.0 ou ultérieure

Entre 16 Go et 60 Go par incréments de 4 Go

Linux

16384 (16vCPU)

Note

Cette option nécessite la plateforme Linux 1.4.0 ou ultérieure

Entre 32 Go et 120 Go par incréments de 8 Go

Linux

memory

Type : chaîne

Obligatoire : Conditionnelle

Note

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

Limite stricte (en Mio) de la quantité de mémoire à présenter à la tâche. Il peut être exprimé à l'aide de MiB (par exemple1024) ou de Go (par exemple 1GB ou1 GB) dans une définition de tâche. 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.

Pour les tâches hébergées sur des instances Amazon EC2, 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 plus d’informations, consultez Gestion de la mémoire des instances de conteneurs.

Si vos tâches sont hébergées sur Fargate (Linux et Windows), ce champ est obligatoire et vous devez utiliser l'une des valeurs suivantes, qui détermine la plage de valeurs prises en charge pour le paramètre cpu :

Valeur de mémoire (en MiB, avec une valeur équivalente approximative en Go)

Valeur d'UC

Systèmes d'exploitation pris en charge pour Fargate

512 (0,5 Go), 1 024 (1 Go), 2 048 (2 Go)

256 (0,25 vCPU)

Linux

1 024 (1 Go), 2 048 (2 Go), 3 072 (3 Go), 4 096 (4 Go)

512 (0,5 vCPU)

Linux

2 048 (2 Go), 3072 (3 Go), 4 096 (4 Go), 5 120 (5 Go), 6 144 (6 Go), 7 168 (7 Go), 8 192 (8 Go)

1 024 (1 vCPU)

Linux, Windows

Entre 4 096 (4 Go) et 16 384 (16 Go) par incréments de 1 024 (1 Go)

2 048 (2 vCPU)

Linux, Windows

Entre 8 192 (8 Go) et 30 720 (30 Go) par incréments de 1 024 (1 Go)

4 096 (4 vCPU)

Linux, Windows

Entre 16 Go et 60 Go par incréments de 4 Go

Note

Cette option nécessite la plateforme Linux 1.4.0 ou ultérieure

8192 (8 vCPU)

Linux

Entre 32 Go et 120 Go par incréments de 8 Go

Note

Cette option nécessite la plateforme Linux 1.4.0 ou ultérieure

16384 (16vCPU)

Linux

Définitions de conteneur

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.

Paramètres de définition de conteneur standards

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

Nom

name

Type : chaîne

Obligatoire : non

Le nom d'un conteneur. Il peut comporter jusqu'à 255 lettres (majuscules et minuscules), des chiffres, des tirets ou des traits de soulignement. 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

image

Type : chaîne

Obligatoire : non

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 se mappe à Image dans la section Create a container (Création d'un conteneur) de Docker Remote API (L'API Docker à distance) et le paramètre IMAGE de 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.

  • Les images des registres privés sont prises en charge. Pour plus d’informations, consultez Authentification de registre privé pour les tâches.

  • 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).

Mémoire

memory

Type : entier

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 section Create a container (Créer un conteneur) de l'API Docker à distance et l'option --memory correspond à docker run.

Si vous utilisez le type de lancement Fargate, ce paramètre est facultatif.

Si vous utilisez le type de lancement EC2, vous devez spécifier une valeur de mémoire au niveau de la tâche ou une valeur de mémoire 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.

Note

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 Gestion de la mémoire des instances de conteneurs.

memoryReservation

Type : entier

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 section Create a container (Créer un conteneur) de l'API Docker à distance et l'option --memory-reservation correspond à 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.

Note

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.

Note

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 Gestion de la mémoire des instances de conteneurs.

Mappages de port

portMappings

Type : tableau d'objets

Obligatoire : non

Les mappages de ports permettent aux conteneurs d'accéder aux ports sur l'instance du conteneur hôte pour le trafic entrant ou sortant.

Pour les définitions de tâche qui utilisent le mode réseau awsvpc, spécifiez uniquement containerPort. Le paramètre hostPort peut rester vide ou comporter la même valeur que containerPort.

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) correspond à PortBindings dans la section Créer un conteneur de l'API Docker à distance et l'option --publish correspond à 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.

Note

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 plus d’informations, consultez Service Connect.

Valeurs de protocole valides : "HTTP" | "HTTP2" | "GRPC"

containerPort

Type : entier

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.

Si vous utilisez des conteneurs dans une tâche avec le type de lancement Fargate, les ports exposés doivent être spécifiés avec containerPort.

Pour les conteneurs Windows sur Fargate, vous ne pouvez pas utiliser le port 3 150 pour containerPort. C'est parce qu'il est réservé.

Supposons que vous utilisiez des conteneurs dans une tâche ayant le type de lancement 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 plus d’informations, consultez 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 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 à la fois pour les types de lancement EC2 et AWS Fargate.

  • 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 #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 dans le Guide du développeur Amazon ECS (langue française non garantie).

Vous pouvez appeler DescribeTasks 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 plus d’informations, consultez Automatisez les réponses aux erreurs Amazon ECS à l'aide de EventBridge.

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 : entier

Obligatoire : non

Le numéro de port sur l'instance de conteneur à réserver pour votre conteneur.

Si vous utilisez des conteneurs dans une tâche ayant le type de lancement Fargate, le paramètre hostPort peut rester vide ou comporter la même valeur que containerPort.

Supposons que vous utilisiez des conteneurs dans une tâche ayant le type de lancement EC2. 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.

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 le champ remainingResources de la sortie 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 soit configuré dans un service

Nom utilisé pour le mappage de port. Ce paramètre s'applique uniquement à Service Connect. Ce paramètre correspond au nom que vous utilisez dans la configuration Service Connect d'un service.

Pour plus d’informations, consultez Service Connect.

Dans l'exemple suivant, les deux champs obligatoires pour Service Connect 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. L’argument par défaut est tcp.

Important

Seul tcp est pris en charge pour Service Connect. N'oubliez pas que tcp est implicite si ce champ n'est pas défini.

Important

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.

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é

repositoryCredentials

Type : objet RepositoryCredentials

Obligatoire : non

Informations d'identification du référentiel pour l'authentification de registre privé.

Pour plus d’informations, consultez Authentification de registre privé pour les tâches.

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 plus d’informations, consultez Authentification de registre privé pour les tâches.

Note

Lorsque vous utilisez l'API Amazon ECS AWS CLI, ou AWS les SDK, 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

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.

Surveillance de l'état

healthCheck

Commande de surveillance de l'état du conteneur et paramètres de configuration associés pour le conteneur. Pour plus d’informations, consultez Déterminer l'état des tâches Amazon ECS à l'aide de vérifications de l'état des conteneurs.

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 panneau AWS Management Console JSON AWS CLI, ou des API, 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. Pour plus d'informations, consultez HealthCheck dans la section Create a container (Créer un conteneur) de Docker Remote API.

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 3 nouvelles 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.

Environnement

cpu

Type : entier

Obligatoire : non

Le nombre d'unités cpu que l'agent de conteneur Amazon ECS réserve pour le conteneur. Sur Linux, ce paramètre correspond à CpuShares dans la section Create a container (Créer un conteneur) de l'API Docker à distance et l'option --cpu-shares correspond à docker run.

Ce champ est facultatif pour les tâches qui utilisent le type de lancement Fargate. La quantité totale de processeurs réservée pour tous les conteneurs au sein d'une tâche doit être inférieure à la valeur cpu au niveau de la tâche.

Note

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 par 1 024 le nombre de vCPU répertoriés pour ce type d'instance sur la page détaillée Instances Amazon EC2.

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. Pour plus d'informations, consultez la section CPU share constraint dans la documentation Docker. La valeur de parts d'UC minimale autorisée par le noyau Linux est de 2. Toutefois, le paramètre UC n'est pas obligatoire et vous pouvez utiliser des valeurs d'UC inférieures à 2 dans vos définitions de conteneur. Pour les valeurs d'UC inférieures à 2 (y compris null), 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..

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.

gpu

Type : objet ResourceRequirement

Obligatoire : non

Le nombre de GPUs physiques que l'agent de conteneur Amazon ECS réserve pour le conteneur. Le nombre de GPU réservés pour tous les conteneurs dans une tâche ne doit pas dépasser le nombre de GPU disponibles sur l'instance de conteneur sur laquelle la tâche est lancée. Pour plus d’informations, consultez Utilisation des GPU sur Amazon ECS.

Note

Ce paramètre n'est pas pris en charge pour les conteneurs Windows ou les conteneurs hébergés sur Fargate.

Elastic Inference accelerator

Type : objet ResourceRequirement

Obligatoire : non

Pour le type InferenceAccelerator, value correspond à deviceName d'un InferenceAccelerator spécifié dans une définition de tâche. Pour plus d’informations, consultez Nom de l'accélérateur Elastic Inference.

Note

À compter du 15 avril 2023, AWS nous n'intégrerons pas de nouveaux clients à Amazon Elastic Inference (EI) et nous aiderons les clients actuels à migrer leurs charges de travail vers des options offrant un meilleur prix et de meilleures performances. Après le 15 avril 2023, les nouveaux clients ne pourront plus lancer d'instances avec les accélérateurs Amazon EI sur Amazon SageMaker, Amazon ECS ou Amazon EC2. Toutefois, les clients qui ont utilisé Amazon EI au moins une fois au cours des 30 derniers jours sont considérés comme des clients actuels et pourront continuer à utiliser le service.

Note

Ce paramètre n'est pas pris en charge pour les conteneurs Windows ou les conteneurs hébergés sur Fargate.

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 plus d’informations, consultez Architecture de votre application.

"essential": true|false
entryPoint
Important

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. Ce paramètre correspond à Entrypoint dans la section Create a container (Créer un conteneur) de l'API Docker à distance et l'option --entrypoint correspond à docker run. Pour plus d'informations sur le paramètre Docker ENTRYPOINT, veuillez consulter https://docs.docker.com/engine/reference/builder/#entrypoint.

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

Type : tableau de chaînes

Obligatoire : non

La commande transmise au conteneur. Ce paramètre correspond à Cmd dans la section Create a container (Création d'un conteneur) de Docker Remote API (API distante Docker) et au paramètre COMMAND de docker run. Pour plus d'informations sur le paramètre Docker CMD, veuillez consulter https://docs.docker.com/engine/reference/builder/#cmd. 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 (Créer un conteneur) de l'API Docker à distance et l'option --workdir correspond à docker run.

"workingDirectory": "string"
environmentFiles

Type : tableau d'objets

Obligatoire : non

Liste des fichiers contenant les variables d'environnement à transmettre à un conteneur. Ce paramètre se mappe à l'option --env-file sur docker run.

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. Pour de plus amples informations sur la syntaxe appropriée du fichier de variable d'environnement, consultez Déclarer les variables d'environnement par défaut dans le fichier.

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 plus d’informations, consultez Utiliser les paramètres de définition des tâches pour transmettre des variables d'environnement à un conteneur.

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 section Create a container (Créer un conteneur) de l'API Docker à distance et l'option --env correspond à docker run.

Important

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 plus d’informations, consultez Transmission de données sensibles à un conteneur.

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.

Note

Si le paramètre Systems Manager Parameter Store existe au même Région AWS endroit 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

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 correspond à NetworkDisabled dans la section Create a container (Crer un conteneur) de Docker Remote API.

Note

Ce paramètre n'est pas pris en charge pour les conteneurs ou tâches Windows qui utilisent le mode réseau awsvpc.

L’argument par défaut est false.

"disableNetworking": true|false

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. Pour plus d'informations sur la liaison de conteneurs Docker, veuillez consulter https://docs.docker.com/engine/userguide/networking/default_network/dockerlinks/. Ce paramètre correspond à Links dans la section Create a container (Créer un conteneur) de l'API Docker à distance et l'option --link correspond à docker run.

Note

Ce paramètre n'est pas pris en charge pour les conteneurs ou tâches Windows qui utilisent le mode réseau awsvpc.

Important

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 la section Create a container (Créer un conteneur) de l'API Docker à distance et l'option --hostname correspond à docker run.

Note

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 correspond à Dns dans la section Create a container (Créer un conteneur) de l'API Docker à distance et l'option --dns correspond à docker run.

Note

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-.]{0,253}[a-zA-Z0-9]$

Liste des domaines de recherche DNS qui sont présentés au conteneur. Ce paramètre correspond à DnsSearch dans la section Create a container (Créer un conteneur) de l'API Docker à distance et l'option --dns-search correspond à docker run.

Note

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 section Create a container (Créer un conteneur) de l'API Docker à distance et l'option --add-host correspond à docker run.

Note

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

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 section Create a container (Créer un conteneur) de l'API Docker à distance et l'option --read-only correspond à docker run.

Note

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

L’argument par défaut est false.

"readonlyRootFilesystem": true|false
mountPoints

Type : tableau d'objets

Obligatoire : non

Les points de montage des volumes de données de votre conteneur. Ce paramètre correspond à Volumes dans la section Create a container (Créer un conteneur) de l'API Docker à distance et l'option --volume correspond à 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.

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.

volumesFrom

Type : tableau d'objets

Obligatoire : non

Volumes de données à monter à partir d'un autre conteneur. Ce paramètre correspond à VolumesFrom dans la section Create a container (Créer un conteneur) de l'API Docker à distance et l'option --volumes-from correspond à 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 : LogConfigurationObjet

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 Exemples de définitions de tâches.

Ce paramètre correspond à LogConfig dans la section Create a container (Créer un conteneur) de l'API Docker à distance et l'option --log-driver correspond à 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). Pour plus d'informations sur les options relatives aux différents pilotes du journal pris en charge, veuillez consulter Configurer les pilotes de journalisation dans la documentation Docker (langue française non garantie).

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. Les pilotes de journal supplémentaires qui ne sont pas pris en charge actuellement seront peut-être disponibles dans les prochaines versions de l'agent de conteneur Amazon ECS.

  • Ce paramètre nécessite la version 1.18 ou ultérieure de l'API Docker à distance sur votre instance de conteneur.

  • Pour les tâches utilisant le type de lancement EC2, l'agent de conteneur Amazon ECS en cours d'exécution 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 des options de configuration de journal. Pour plus d’informations, consultez Configuration de l'agent de conteneur Amazon ECS.

  • Pour les tâches utilisant le type de lancement Fargate, tout logiciel supplémentaire nécessaire doit être installé en dehors de la tâche, car vous n'avez pas accès à l'infrastructure sous-jacente sur laquelle vos tâches sont hébergées. Par exemple, les agrégateurs de sortie Fluentd ou un hôte distant exécutant Logstash auquel envoyer des journaux Gelf.

"logConfiguration": { "logDriver": "awslogs","fluentd","gelf","json-file","journald","logentries","splunk","syslog","awsfirelens", "options": {"string": "string" ...}, "secretOptions": [{ "name": "string", "valueFrom": "string" }] }
logDriver

Type : chaîne

Valeurs valides : "awslogs","fluentd","gelf","json-file","journald","logentries","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.

Pour les tâches utilisant le type de lancement Fargate, les pilotes de journal pris en charge sont awslogs, splunk et awsfirelens.

Pour les tâches utilisant le type de lancement EC2, les pilotes de journal pris en charge sont awslogs, fluentd, gelf, json-file, journald, logentries, 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, consultezUtilisation du pilote du journal awslogs.

Pour de plus amples informations sur l'utilisation du pilote de journal awsfirelens, consultez Routage personnalisé des journaux.

Note

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 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 à distance ou une version supérieure sur votre instance de conteneur.

options

Type : mappage chaîne/chaîne

Obligatoire : non

La correspondance clé/valeur des options de configuration à envoyer au pilote du journal.

Lorsque vous acheminez les journaux FireLens 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-limitoption permettant de limiter le nombre d'événements mis en mémoire tampon avant d'être envoyés 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 plus d’informations, consultez Limite de tampons Fluentd.

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 plus d’informations, consultez Transmission de données sensibles à un conteneur.

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 : FirelensConfigurationObjet

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 plus d’informations, consultez Utilisation du routage personnalisé des journaux.

{ "firelensConfiguration": { "type": "fluentd", "options": { "KeyName": "" } } }
options

Type : mappage chaîne/chaîne

Obligatoire : non

La correspondance clé/valeur des options à utiliser lors de la configuration du routeur de journal. 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:::mybucket/fluent.conf|filepath"}. Pour plus d’informations, consultez Spécifier une FireLens configuration dans une définition de tâche.

type

Type : chaîne

Obligatoire : oui

Routeur de journal à utiliser. Les valeurs valides sont fluentd ou fluentbit.

Sécurité

Pour de plus amples informations sur la sécurité du conteneur, consultez Sécurité des tâches et des conteneurs dans le Guide des meilleures pratiques Amazon ECS.

credentialSpecs

Type : tableau de chaînes

Obligatoire : non

Une liste d'ARN dans SSM ou Amazon S3 associée à un fichier de spécifications d'informations 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 maximal d'ARN est de 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, veuillez consulter Utilisation de gMSA pour les conteneurs Windows et Utilisation de gMSAs pour les conteneurs Linux.

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 section Create a container (Créer un conteneur) de l'API Docker à distance et l'option --privileged correspond à docker run.

Note

Ce paramètre n'est pas pris en charge pour les conteneurs ou tâches Windows qui utilisent le type de lancement Fargate.

L’argument 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 section Create a container (Créer un conteneur) de l'API Docker à distance et l'option --user correspond à docker run.

Important

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

Note

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

"user": "string"
dockerSecurityOptions

Type : tableau de chaînes

Valeurs valides : « » | no-new-privileges « apparmor:profile » | « label : value » | « credentialspec : » CredentialSpecFilePath

Obligatoire : non

Liste de chaînes pour fournir une configuration personnalisée pour plusieurs systèmes de sécurité. Pour de plus amples informations sur les valeurs valides, consultez Configuration de la sécurité d'exécution de Docker. Ce champ n'est pas valide pour les conteneurs dans les tâches qui utilisent le type de lancement Fargate.

Pour les tâches Linux sur EC2, 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 .

Pour toute tâche sur EC2, 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 sur Amazon EC2 et Utilisation gMSA pour les Linux conteneurs sur Amazon EC2.

Ce paramètre correspond à SecurityOpt dans la section Create a container (Créer un conteneur) de l'API Docker à distance et l'option --security-opt correspond à docker.

"dockerSecurityOptions": ["string", ...]
Note

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 plus d’informations, consultez Configuration de l'agent de conteneur Amazon ECS.

Limites des ressources

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 section Create a container (Créer un conteneur) de l'API Docker à distance et l'option --ulimit correspond à docker run.

Les tâches Amazon ECS hébergées sur Fargate utilisent les valeurs de limite définies par défaut par le système d'exploitation, à l'exception du paramètre de limite de ressources nofile. La limite de ressources nofile restreint le nombre de fichiers ouverts qu'un conteneur peut utiliser. Sur Fargate, la limite flexible par défaut nofile est 1024 et la limite stricte est 65535. Vous pouvez définir les valeurs des deux limites jusqu'à 1048576. Pour de plus amples informations, veuillez consulter Limites des ressources de tâche.

Ce paramètre nécessite la version 1.18 de l'API Docker à distance ou une version supérieure sur votre instance de conteneur.

Note

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 : entier

Obligatoire : oui, lorsque des objets ulimits sont utilisés

La limite stricte du type ulimit.

softLimit

Type : entier

Obligatoire : oui, lorsque des objets ulimits sont utilisés

La limite flexible du type ulimit.

Étiquettes Docker

dockerLabels

Type : mappage chaîne/chaîne

Obligatoire : non

Correspondance clé/valeur des étiquettes à ajouter au conteneur. Ce paramètre correspond à Labels dans la section Create a container (Créer un conteneur) de l'API Docker à distance et l'option --label correspond à docker run.

Ce paramètre nécessite la version 1.18 de l'API Docker à distance ou une version supérieure sur votre instance de conteneur.

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

Autres paramètres de définition de conteneur

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 plus d’informations, consultez Création d'une définition de tâche à l'aide de la console.

Paramètres Linux

linuxParameters

Type : objet LinuxParameters

Obligatoire : non

Linux-des options spécifiques appliquées au conteneur, telles KernelCapabilitiesque.

Note

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

"linuxParameters": { "capabilities": { "add": ["string", ...], "drop": ["string", ...] } }
capabilities

Type : objet KernelCapabilities

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 les caractéristiques par défaut et les autres caractéristiques disponibles, veuillez consulter Privilège d'exécution et fonctionnalités Linux dans la référence Docker run (langue française non garantie). Pour plus d'informations sur ces caractéristiques Linux, veuillez consulter la page consacrée aux caractéristiques(7) 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 section Create a container (Créer un conteneur) de Docker Remote API et l'option --cap-add à la commande docker run.

Note

Les tâches lancées sur Fargate ne prennent en charge que l'ajout de la capacité du noyau SYS_PTRACE.

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 section Create a container (Créer un conteneur) de Docker Remote API et l'option --cap-add à 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 section Create a container (Créer un conteneur) de Docker Remote API et l'option --cap-drop à la commande docker run.

devices

Tous les périphériques hôtes à exposer au conteneur. Ce paramètre correspond à Devices dans la section Create a container (Créer un conteneur) de Docker Remote API et l'option --device à la commande docker run.

Note

Le paramètre devices n'est pas pris en charge lorsque vous utilisez le type de lancement Fargate ou des conteneurs Windows.

Type : tableau d'objets Périphérique

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 | write | mknod

initProcessEnabled

Exécutez un processus init dans le conteneur afin de transmettre des signaux et de récolter les processus. Ce paramètre est mappé à 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 plus 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é.

Note

Si vous utilisez des tâches qui ont recours au type de lancement Fargate, le paramètre maxSwap n'est pas pris en charge.

sharedMemorySize

Valeur correspondant à la taille (en Mio) du volume /dev/shm. Ce paramètre est mappé à l'option --shm-size de docker run.

Note

Si vous utilisez des tâches qui ont recours au type de lancement Fargate, le paramètre sharedMemorySize n'est pas pris en charge.

Type : entier

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 est mappé à l'option --memory-swappiness de docker run.

Note

Si vous utilisez des tâches qui ont recours au type de lancement Fargate, le paramètre swappiness n'est pas pris en charge.

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 est mappé à l'option --tmpfs de docker run.

Note

Si vous utilisez des tâches qui ont recours au type de lancement Fargate, le paramètre tmpfs n'est pas pris en charge.

Type : tableau d'objets Tmpfs

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 : entier

Obligatoire : oui

Dépendances du conteneur

dependsOn

Type : tableau d’objets ContainerDependency

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.

Note

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.

Pour les tâches Amazon ECS hébergées sur des instances Amazon EC2, ces instances nécessitent au minimum la version 1.26.0 de l'agent de conteneur pour activer les dépendances de conteneur. Cependant, 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. 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 plus d’informations, consultez AMI optimisée pour Amazon ECS.

Pour les tâches Amazon ECS hébergées sur Fargate, ce paramètre exige que la tâche ou le service utilise la version de plateforme 1.3.0 ou une version ultérieure (Linux) ou 1.0.0 (Windows).

"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 conteneur 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 tâche.

Temporisations de conteneurs

startTimeout

Type : entier

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.

Note

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.

Pour les tâches Amazon ECS hébergées sur Fargate, ce paramètre exige que la tâche ou le service utilise la version de plateforme 1.3.0 ou une version ultérieure (Linux). La valeur maximale est de 120 secondes.

stopTimeout

Type : entier

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.

Pour les tâches Amazon ECS hébergées sur Fargate, ce paramètre exige que la tâche ou le service utilise la version de plateforme 1.3.0 ou une version ultérieure (Linux). Si le paramètre n'est pas spécifié, alors la valeur par défaut de 30 secondes est utilisée. La valeur maximale est de 120 secondes.

Pour les tâches utilisant le type de lancement EC2, si le paramètre stopTimeout n'est pas spécifié, la valeur définie pour la variable de configuration de l'agent de conteneur Amazon ECS ECS_CONTAINER_STOP_TIMEOUT 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. Cependant, 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. 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 plus d’informations, consultez AMI optimisée pour Amazon ECS.

Contrôles système

systemControls

Type : objet SystemControl

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 section Create a container (Créer un conteneur) de l'API Docker à distance et l'option --sysctl correspond à 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, y compris Fargate, 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 plus d’informations, consultez Mode 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 valeurs des systemControls liés à l'espace de noms IPC s'appliquent à tous les conteneurs au sein d'une tâche.

Note

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

Note

Ce paramètre est uniquement pris en charge pour les tâches hébergées sur AWS Fargate , si elles utilisent la version de plateforme 1.4.0 ou ultérieure (Linux). Cela n'est pas pris en charge par les conteneurs Windows sur Fargate.

"systemControls": [ { "namespace":"string", "value":"string" } ]
namespace

Type : chaîne

Obligatoire : non

Le paramètre du noyau de l'espace de noms pour lequel définir un value nom.

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.*"

Toutes ces valeurs sont prises en charge par Fargate.

value

Type : chaîne

Obligatoire : non

La valeur du paramètre de noyau de l'espace de noms spécifié dansnamespace.

Interactive

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 section Create a container (Créer un conteneur) de l'API Docker à distance et l'option --interactive correspond à docker run.

L’argument par défaut est false.

Pseudo Terminal

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 section Create a container (Créer un conteneur) de l'API Docker à distance et l'option --tty correspond à docker run.

L’argument par défaut est false.

Nom de l'accélérateur Elastic Inference

Note

À compter du 15 avril 2023, AWS nous n'intégrerons pas de nouveaux clients à Amazon Elastic Inference (EI) et nous aiderons les clients actuels à migrer leurs charges de travail vers des options offrant un meilleur prix et de meilleures performances. Après le 15 avril 2023, les nouveaux clients ne pourront plus lancer d'instances avec les accélérateurs Amazon EI sur Amazon SageMaker, Amazon ECS ou Amazon EC2. Toutefois, les clients qui ont utilisé Amazon EI au moins une fois au cours des 30 derniers jours sont considérés comme des clients actuels et pourront continuer à utiliser le service.

L'exigence de la ressource d'accélérateur Elastic Inference pour votre définition de tâche. Pour plus d'informations, consultez Qu'est-ce qu'Amazon Elastic Inference ? dans le guide du développeur Amazon Elastic Inference.

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.

deviceType

Type : chaîne

Obligatoire : oui

L'accélérateur Elastic Inference à utiliser.

Contraintes de placement des tâches

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.

Si vous utilisez le type de lancement Fargate, les contraintes de placement des tâches ne sont pas prises en charge. Par défaut, les tâches Fargate sont réparties entre les zones de disponibilité.

Pour les tâches qui utilisent le type de lancement EC2, vous pouvez utiliser des contraintes afin de placer les tâches en fonction de la zone de disponibilité, du type d'instance ou d'attributs personnalisés. Pour plus d’informations, consultez Définissez les instances de conteneur qu'Amazon ECS utilise pour les tâches.

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 plus d’informations, consultez Création d'expressions pour définir des instances de conteneur pour les tâches Amazon ECS.

type

Type : chaîne

Obligatoire : oui

Type de contrainte. Utilisez memberOf pour limiter la sélection à un groupe de candidats valides.

Configuration du proxy

proxyConfiguration

Type : objet ProxyConfiguration

Obligatoire : non

Détails de configuration pour le proxy App Mesh.

Pour les tâches qui utilisent le type de lancement EC2, les instances de conteneur doivent au moins disposer de la version 1.26.0 de l'agent de conteneur et au moins de 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 plus d’informations, consultez AMI optimisée pour Amazon ECS.

Pour les tâches utilisant le type de lancement Fargate, cette fonction exige que la tâche ou le service utilise la version 1.3.0 ou ultérieure de la plateforme.

Note

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

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

Lorsque vous enregistrez une définition de tâche, vous pouvez éventuellement spécifier une liste de volumes à transmettre au Docker démon sur une instance de conteneur, qui sera ensuite accessible aux autres conteneurs de la même instance de conteneur.

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 joindre 1 volume Amazon EBS par tâche Amazon ECS lors de l'exécution d'une tâche autonome, ou lors de la création ou de la mise à jour d'un service. Les volumes Amazon EBS sont pris en charge pour les tâches Linux hébergées sur des instances Fargate ou Amazon EC2. Pour plus d’informations, consultez Volumes Amazon EBS.

  • 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 qui leur est nécessaire, au moment où elles en ont besoin. Les volumes Amazon EFS sont pris en charge lorsque vous exécutez des tâches sur des instances Fargate ou Amazon EC2. Pour plus d’informations, consultez Volumes Amazon EFS.

  • Volumes FSx for Windows File Server : 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 for Windows File Server avec Amazon ECS, vous pouvez allouer vos tâches Windows avec un stockage de fichiers permanent, distribué, partagé et statique. Pour plus d’informations, consultez Volumes FSx for Windows File Server.

    Les conteneurs Windows sur Fargate ne prennent pas en charge cette option.

  • Volumes Docker : volume géré par Docker créé sous l'instance Amazon /var/lib/docker/volumes EC2 hôte. Des pilotes de volume Docker (également appelés plug-ins) permettent d'intégrer les volumes avec des systèmes de stockage externe, tels qu'Amazon EBS. Le pilote de volume local intégré ou un pilote de volume tiers peut être utilisé. Les volumes Docker ne sont pris en charge que lors de l'exécution de tâches sur des instances Amazon EC2. Les conteneurs Windows ne prennent en charge que l'utilisation du local pilote. Pour utiliser des volumes Docker, spécifiez un dockerVolumeConfiguration dans votre définition de tâche. Pour plus d'informations, consultez Utilisation des volumes.

  • Montages par liaison : fichier ou répertoire de la machine hôte monté dans un conteneur. Les volumes hôtes à montage par liaison sont pris en charge lors de l'exécution de tâches sur des AWS instances Fargate ou Amazon EC2. 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 plus d'informations, consultez Utilisation de montages liés.

Pour plus d’informations, consultez Utilisation de volumes de données dans des tâches.

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, tirets () et traits de soulignement (-) sont autorisés. _ Ce nom est référencé dans le sourceVolume paramètre de l'mountPointsobjet 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.

Note

Le sourcePath paramètre est pris en charge uniquement lors de l'utilisation de tâches hébergées sur des instances Amazon EC2.

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. Lorsque ce paramètre est défini surtrue, 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 ce paramètre est défini surtrue, 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 à associer à une tâche. Le paramétrage configuredAtLaunch true et le report de la configuration du volume jusqu'à la phase de lancement vous permettent de 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 la section Amazon EBS volumes.

dockerVolumeConfiguration

Type : DockerVolumeConfigurationObjet

Obligatoire : non

Ce paramètre est spécifié lorsque vous utilisez des volumes Docker. Les volumes Docker ne sont pris en charge que lors de l'exécution de tâches sur des instances EC2. Les conteneurs Windows ne prennent en charge que l'utilisation du local pilote. Pour utiliser des montages liés, spécifiez plutôt un paramètre host.

scope

Type : chaîne

Valeurs valides : task | 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 : booléen

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 c'est le casshared. Si tel scope est le castask, ce paramètre doit être omis ou défini sur. false

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 la CLI du plugin Docker, utilisez-le docker plugin ls pour récupérer le nom du pilote depuis votre instance de conteneur. Si le pilote a été installé à l'aide d'une autre méthode, utilisez Docker plugin discovery pour récupérer le nom du pilote. Pour plus d'informations, veuillez consulter Découverte de plug-ins Docker. Ce paramètre correspond à Driver dans la section Create a volume (Créer un volume) de Docker Remote API et mappe l'option --driver à docker volume create.

driverOpts

Type : chaîne

Obligatoire : non

Une carte des options spécifiques au pilote Docker à utiliser. Ce paramètre correspond à DriverOpts dans la section Create a volume (Créer un volume) de Docker Remote API et mappe l'option --opt à docker volume create.

labels

Type : chaîne

Obligatoire : non

Métadonnées personnalisées à ajouter à votre volume Docker. Ce paramètre correspond à Labels dans la section Create a volume (Créer un volume) de Docker Remote API et mappe l'option --label à docker volume create.

efsVolumeConfiguration

Type : VolumeConfiguration objet EFS

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.

Important

Si un point d'accès EFS est spécifié dans leauthorizationConfig, le paramètre du répertoire racine doit être omis ou défini sur/, ce qui appliquera le chemin défini sur le point d'accès EFS.

transitEncryption

Type : chaîne

Valeurs valides : ENABLED | 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 dans le Guide de l'utilisateur Amazon Elastic File System.

transitEncryptionPort

Type : entier

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 de transit, la tâche utilisera la stratégie de sélection de port utilisée par l'assistant de montage Amazon EFS. Pour plus d'informations, consultez Assistant de montage EFS dans le Guide de l'utilisateur Amazon Elastic File System User.

authorizationConfig

Type : AuthorizationConfiguration objet EFS

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 efsVolumeConfiguration doit être omise ou définie sur/, ce qui appliquera 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 dans le Guide de l'utilisateur Amazon Elastic File System.

iam

Type : chaîne

Valeurs valides : ENABLED | DISABLED

Obligatoire : non

Spécifie s'il faut utiliser le rôle IAM de tâche Amazon ECS défini 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.

FSxWindowsFileServerVolumeConfiguration

Type : SxWindowsFileServerVolumeConfiguration Objet F

Obligatoire : oui

Ce paramètre est spécifié lorsque vous utilisez un système de fichiers Amazon FSx for Windows File Server pour le stockage des tâches.

fileSystemId

Type : chaîne

Obligatoire : oui

ID du système de fichiers FSx for Windows File Server à utiliser.

rootDirectory

Type : chaîne

Obligatoire : oui

Répertoire du système de fichiers FSx for Windows File Server à monter en tant que répertoire racine à l'intérieur de l'hôte.

authorizationConfig
credentialsParameter

Type : chaîne

Obligatoire : oui

Options d'informations d'identification d'autorisation.

Options :
domain

Type : chaîne

Obligatoire : oui

Nom de domaine complet hébergé par un annuaire AWS Directory Service for Microsoft Active Directory(AWS Managed Microsoft AD) ou un annuaire EC2 Active Directory auto-hébergé.

Balises

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 plus d’informations, consultez Balisage des ressources Amazon ECS.

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

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 plus d’informations, consultez Création d'une définition de tâche à l'aide de la console.

Stockage éphémère

ephemeralStorage

Type : objet EphemeralStorage

Obligatoire : non

Quantité de stockage éphémère (en Go) à allouer pour la tâche. Ce paramètre est utilisé pour étendre la quantité totale de stockage éphémère disponible, au-delà de la quantité par défaut, pour les tâches hébergées sur AWS Fargate. Pour plus d’informations, consultez Montages liés.

Note

Ce paramètre est uniquement pris en charge pour les tâches hébergées sur AWS Fargate utilisant la version de plateforme 1.4.0 ou ultérieure (Linux) ou 1.0.0 ou ultérieure (Windows).

Mode IPC

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. Pour plus d'informations, consultez la section IPC settings (Paramètres IPC) sur la page Docker run reference.

Si le mode IPC host est utilisé, il existe un risque accru d'exposition à un espace de noms IPC indésirable. Pour plus d'informations, consultez Sécurité Docker.

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 plus d’informations, consultez Contrôles système.

  • 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.

Note

Ce paramètre n'est pas pris en charge pour les conteneurs ou tâches Windows qui utilisent le type de lancement Fargate.

Mode PID

pidMode

Type : chaîne

Valeurs valides : host | task

Obligatoire : non

Espace de noms de processus à utiliser pour les conteneurs de la tâche. Les valeurs valides sont host ou task. Sur les conteneurs Fargate pour Linux, la seule valeur valide est 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. Pour plus d'informations, consultez la section PID settings (Paramètres PID) sur la page Docker run reference.

Si le mode PID host est utilisé, il existe un risque accru d'exposition à un espace de noms de processus indésirable. Pour plus d'informations, consultez Sécurité Docker.

Note

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

Note

Ce paramètre est uniquement pris en charge pour les tâches hébergées sur AWS Fargate , si elles utilisent la version de plateforme 1.4.0 ou ultérieure (Linux). Cela n'est pas pris en charge par les conteneurs Windows sur Fargate.