Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Paramètres de définition de tâche Amazon ECS pour les instances gérées Amazon ECS
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 et la capacité. Les définitions de famille et de conteneur sont requises dans une définition de tâche. En revanche, le rôle de tâche, le mode réseau, les volumes et la capacité sont facultatifs.
Vous pouvez utiliser ces paramètres dans un fichier JSON pour configurer votre définition de tâche.
Vous trouverez ci-dessous une description plus détaillée de chaque paramètre de définition de tâche pour les instances gérées Amazon ECS.
Family
family-
Type : String
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.
Capacité
Lorsque vous enregistrez une définition de tâche, vous pouvez spécifier la capacité par rapport à laquelle Amazon ECS doit valider la définition de tâche. Une exception client est renvoyée si la définition de tâche n'est pas conforme aux compatibilités spécifiées. Pour plus d’informations, consultez la section 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 :
MANAGED_INSTANCESLa capacité par rapport à laquelle valider la définition de tâche. Une vérification est alors lancée afin de s’assurer que tous les paramètres utilisés dans la définition de tâche répondent aux exigences des instances gérées Amazon ECS.
Rôle de tâche
taskRoleArn-
Type : chaîne
Obligatoire : non
Lorsque vous enregistrez une définition de tâche, vous pouvez attribuer un rôle de tâche à un rôle IAM qui permet aux conteneurs concernés par l'autorisation de tâche d'appeler AWS APIs les conteneurs spécifiés dans les politiques associées en votre nom. Pour de plus amples informations, veuillez consulter rôle IAM de tâche Amazon ECS.
Rôle d'exécution de tâche
executionRoleArn-
Type : String
Obligatoire : Conditionnelle
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. Pour de plus amples informations, veuillez consulter Rôle IAM d'exécution de tâche Amazon ECS.
Note
Le rôle IAM d'exécution de la tâche est requis en fonction des besoins de votre tâche. Le rôle est requis pour les extractions d'images ECR privées et pour l'utilisation du pilote de
awslogsjournal.
Mode réseau
networkMode-
Type : chaîne
Obligatoire : non
Par défaut :
awsvpcMode réseau à utiliser pour les conteneurs de la tâche. Pour les tâches Amazon ECS hébergées sur des instances gérées Amazon ECS, les valeurs valides sont
awsvpcethost. Si aucun mode réseau n’est spécifié, le mode réseau par défaut estawsvpc.Si le mode réseau est activé
host, la tâche contourne l'isolation du réseau et les conteneurs utilisent directement la pile réseau de l'hôte.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.Si le mode réseau est
awsvpc, une interface réseau Elastic est attribuée à la tâche, et vous devez spécifier une configurationNetworkConfigurationlorsque vous créez un service ou exécutez une tâche avec la définition de tâche. Pour de plus amples informations, veuillez consulter Mise en réseau des tâches Amazon ECS pour les instances gérées Amazon ECS.Les modes
awsvpcréseauhostet offrent les meilleures performances réseau pour les conteneurs, car ils utilisent la pile EC2 réseau Amazon. Avec les modes réseauhostetawsvpc, les ports de conteneur exposés sont mappés directement au port hôte correspondant (pour le mode réseau hôtehost) ou au port de l'interface réseau Elastic (pour le mode réseauawsvpc). Pour cette raison, vous ne pouvez pas utiliser de mappages de ports hôtes dynamiques.
Plateforme d'exécution
operatingSystemFamily-
Type : chaîne
Obligatoire : non
Par défaut : LINUX
Lorsque vous enregistrez une définition de tâche, vous spécifiez la famille du système d'exploitation.
La valeur valide pour ce champ est
LINUX.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
platformFamilydu service. cpuArchitecture-
Type : String
Obligatoire : Conditionnelle
Lorsque vous enregistrez une définition de tâche, vous spécifiez l'architecture du processeur. Les valeurs valides sont
X86_64etARM64.Si vous ne spécifiez aucune valeur, Amazon ECS tente de placer les tâches sur l'architecture de processeur disponible en fonction de la configuration du fournisseur de capacité. Pour garantir que les tâches sont placées sur une architecture de processeur spécifique, spécifiez une valeur pour
cpuArchitecturedans la définition des tâches.Toutes les définitions de tâches qui sont utilisées dans un service doivent avoir la même valeur pour ce paramètre.
Pour plus d’informations sur
ARM64, consultez Définitions de tâche Amazon ECS pour les charges de travail ARM 64 bits.
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 EC2 instances Amazon, ces champs sont facultatifs.
Note
Les paramètres d'UC et de mémoire de niveau tâche sont ignorés pour les conteneurs Windows. Nous vous recommandons de spécifier des ressources de niveau conteneur pour les conteneurs Windows.
cpu-
Type : String
Obligatoire : Conditionnelle
Limite stricte du nombre d'unités UC à présenter pour la tâche. Vous pouvez spécifier les valeurs du processeur dans le fichier JSON sous forme de chaîne en unités de processeur ou en mode virtuel CPUs (vCPUs). Par exemple, vous pouvez spécifier une valeur de processeur soit
1024en unités de processeur, soit1 vCPUen CPUs v. Lorsque la définition de tâche est enregistrée, une valeur vCPU est convertie en un entier indiquant les unités du processeur.Ce champ est facultatif. Si votre cluster n'a pas d'instances de conteneur enregistrées avec les unités UC demandées disponibles, la tâche échoue. Les valeurs prises en charge sont comprises entre
0.12510v CPUs et CPUs v.
memory-
Type : String
Obligatoire : Conditionnelle
Limite stricte de quantité de mémoire à allouer à la tâche. Vous pouvez spécifier les valeurs de mémoire dans la définition de la tâche sous forme de chaîne en mébioctets (Mio) ou en gigaoctets (Go). Par exemple, vous pouvez spécifier une valeur de mémoire de
3072en Mio ou de3 GBen Go. Lorsque la définition de tâche est enregistrée, la valeur en Go est convertie en un nombre entier indiquant la quantité de Mio.Ce champ est facultatif et n'importe quelle valeur peut être utilisée. Si une valeur de mémoire au niveau de la tâche est spécifiée, la valeur de mémoire au niveau du conteneur est facultative. Si votre cluster n'a pas d'instances de conteneur enregistrées avec la mémoire demandée disponible, la tâche échoue. Vous pouvez optimiser l'utilisation de vos ressources en fournissant à vos tâches autant de mémoire que possible pour un type d'instance particulier. Pour de plus amples informations, veuillez consulter Réservation de mémoire pour une instance de conteneur Amazon ECS Linux.
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 de plus amples informations, veuillez consulter Création d’une définition de tâche Amazon ECS à l’aide de la console.
Rubriques
Stockage éphémère
ephemeralStorage-
Note
Ce paramètre n’est pas pris en charge pour les tâches exécutées sur les instances gérées Amazon ECS.
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 de plus amples informations, veuillez consulter Utilisation de montages liés avec Amazon ECS.
Mode IPC
ipcMode-
Note
Ce paramètre n’est pas pris en charge pour les tâches exécutées sur les instances gérées Amazon ECS.
Type : chaîne
Obligatoire : non
Espace de noms de ressource IPC à utiliser pour les conteneurs de la tâche. Les valeurs valides sont
host,taskounone. Si cette optionhostest spécifiée, tous les conteneurs inclus dans les tâches qui ont spécifié le modehostIPC sur la même instance de conteneur partagent les mêmes ressources IPC avec l'instance Amazon EC2 hôte. Sitaskest spécifié, tous les conteneurs de la tâche spécifiée partagent les mêmes ressources IPC. Sinoneest 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 des ressources IPC dépend de la configuration d'exécution du conteneur.
Mode PID
pidMode-
Type : chaîne
Obligatoire : non
Espace de noms de processus à utiliser pour les conteneurs de la tâche. Les valeurs valides sont
hostoutask. Si cette optionhostest spécifiée, tous les conteneurs inclus dans les tâches qui ont spécifié le modehostPID sur la même instance de conteneur partagent le même espace de noms de processus avec l' EC2 instance Amazon hôte. Sitaskest spécifié, tous les conteneurs qui se trouvent dans 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é.Si le mode PID
hostest utilisé, il existe un risque accru d'exposition à un espace de noms de processus indésirable.
Configuration du proxy
proxyConfiguration-
Note
Ce paramètre n’est pas pris en charge pour les tâches exécutées sur les instances gérées Amazon ECS.
Type : objet ProxyConfiguration
Obligatoire : non
Détails de configuration pour le proxy App Mesh.
Étiquettes
Métadonnées que vous appliquez à une définition de tâche pour faciliter le classement et l’organisation. Chaque balise est constituée d'une clé et d'une valeur facultative. Vous définissez ces deux éléments.
Les restrictions de base suivantes s’appliquent aux balises :
-
Nombre maximal de balises par ressource - 50
-
Pour chaque ressource, chaque clé d'identification doit être unique, et chaque clé d'identification peut avoir une seule valeur.
-
Longueur de clé maximale - 128 caractères Unicode en UTF-8
-
Longueur de valeur maximale - 256 caractères Unicode en UTF-8
-
Si votre schéma d'identification est utilisé pour plusieurs services et ressources, n'oubliez pas que d'autres services peuvent avoir des restrictions concernant les caractères autorisés. Les caractères généralement autorisés sont les lettres, les chiffres et les espaces représentables en UTF-8, ainsi que les caractères suivants : + - =. _ :/@.
-
Les clés et valeurs d'étiquette sont sensibles à la casse.
-
N'utilisez pas
aws:AWS:, ni aucune combinaison majuscules ou minuscules, comme un préfixe pour les clés ou les valeurs, car il est réservé à l'usage. AWS Vous ne pouvez pas modifier ni supprimer des clés ou valeurs d'étiquette ayant ce préfixe. Les étiquettes avec ce préfixe ne sont pas comptabilisées comme vos étiquettes pour la limite de ressources.
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é).
Accélérateur Elastic Inference (obsolète)
Note
Amazon Elastic Inference (EI) n’est plus disponible pour les clients.
inferenceAccelerator-
Note
Ce paramètre n’est pas pris en charge pour les tâches exécutées sur les instances gérées Amazon ECS.
Type : objet InferenceAccelerator
Obligatoire : non
Accélérateurs d'inférence élastique à utiliser pour les conteneurs de la tâche.
Contraintes de placement
placementConstraints-
Type : tableau d’objets TaskDefinitionPlacementConstraint
Obligatoire : non
Un tableau d'objets de contraintes de placement à utiliser pour la tâche. Vous pouvez spécifier 10 contraintes maximum par tâche (cette limite comprend les contraintes de la définition de tâche et celles spécifiées lors de l'exécution).
Amazon ECS prend en charge les contraintes de placement
distinctInstaceetmemberOfpour les tâches exécutées sur les instances gérées Amazon ECS. Les attributs suivants sont pris en charge pour les tâches qui utilisent la contrainte de placementmemberOf:-
ecs.subnet-id -
ecs.availability-zone -
ecs.cpu-architecture -
ecs.instance-type
Pour plus d’informations sur les contraintes de placement, consultez la section Définissez les instances de conteneur qu'Amazon ECS utilise pour les tâches.
-
Volumes
Lorsque vous enregistrez une définition de tâche, vous pouvez éventuellement spécifier une liste de volumes pour vos tâches. Cela vous permet d’utiliser des volumes de données dans vos tâches.
Pour de plus amples informations sur les types de volume et d’autres paramètres, consultez la section Options de stockage pour les tâches Amazon ECS.
name-
Type : String
Obligatoire : oui
Le nom du volume. Il peut comporter jusqu'à 255 lettres (majuscules et minuscules), des chiffres et des tirets. Ce nom est référencé dans le
sourceVolumeparamètre de définition de conteneurmountPoints. host-
Type : objet HostVolumeProperties
Obligatoire : non
Ce paramètre est spécifié lorsque vous utilisez des volumes hôtes de montage lié. Le contenu du paramètre
hostdétermine si votre volume hôte de montage lié persiste sur l'instance de conteneur hôte et où il est stocké. Si lehostparamètre est vide, le système attribue un chemin d'hôte à votre volume de données. Toutefois, il n'est pas garanti que les données perdureront après l'arrêt de l'exécution des conteneurs associés. dockerVolumeConfiguration-
Note
Ce paramètre n’est pas pris en charge pour les tâches exécutées sur les instances gérées Amazon ECS.
Type : objet DockerVolumeConfiguration
Obligatoire : non
Ce paramètre est spécifié lorsque vous utilisez des volumes Docker.
efsVolumeConfiguration-
Type : objet EFSVolumede configuration
Obligatoire : non
Ce paramètre est spécifié lorsque vous utilisez un système de fichiers Amazon EFS pour le stockage des tâches.
fsxWindowsFileServerVolumeConfiguration-
Note
Ce paramètre n’est pas pris en charge pour les tâches exécutées sur les instances gérées Amazon ECS.
Type : objet FSxWindowsFileServerVolumeConfiguration
Obligatoire : non
Ce paramètre est spécifié lorsque vous utilisez le système de fichiers Amazon FSx pour Windows File Server pour le stockage des tâches.
configuredAtLaunch-
Type : booléen
Obligatoire : non
Indique si le volume doit être configuré lors du lancement. Cette méthode est utilisée pour créer des volumes Amazon EBS pour des tâches autonomes ou des tâches créées dans le cadre d’un service. Chaque révision de définition de tâche ne peut comporter qu’un seul volume configuré lors du lancement dans la configuration du volume.
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.
Rubriques
Nom
name-
Type : String
Obligatoire : oui
Le nom d'un conteneur. Jusqu'à 255 lettres (majuscules et minuscules), chiffres, traits d'union et traits de soulignement sont autorisés. Si vous associez plusieurs conteneurs dans une définition de tâche, vous pouvez spécifier l'option
named'un conteneur dans l'optionlinksd'un autre conteneur. Cela permet de connecter les conteneurs.
Image
image-
Type : String
Obligatoire : oui
Image utilisée pour démarrer un conteneur. Cette chaîne est transmise directement au démon Docker. Par défaut, les images dans le registre Docker Hub sont disponibles. Vous pouvez également spécifier d'autres référentiels avec soit
, soitrepository-url/image:tag. Il peut comporter jusqu'à 255 lettres (majuscules et minuscules), des chiffres, des tirets, des traits de soulignement, deux points, des points, des barres obliques et des signes dièse. Ce paramètre correspond àrepository-url/image@digestImagedans la commande docker create-container et au paramètreIMAGEde la commande docker run.-
Lorsqu'une nouvelle tâche démarre, l'agent de conteneur Amazon ECS extrait la version la plus récente de l'image et de l'étiquette spécifiées afin que le conteneur puisse les utiliser. Notez cependant que les mises à jour ultérieures apportées à une image de référentiel ne sont pas répercutées sur les tâches déjà en cours d'exécution.
-
Lorsque vous ne spécifiez pas de balise ou de résumé dans le chemin de l'image dans la définition de tâche, l'agent de conteneur Amazon ECS utilise la
latestbalise pour extraire l'image spécifiée. -
Les mises à jour ultérieures d'une image de référentiel ne sont pas propagées aux tâches déjà en cours d'exécution.
-
Les images des registres privés sont prises en charge. Pour de plus amples informations, veuillez consulter Utilisation d'images autres que des AWS conteneurs dans Amazon ECS.
-
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:tagouregistry/repository@digest(par exemple,aws_account_id.dkr.ecr.region.amazonaws.com/oumy-web-app:latestaws_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,
ubuntuoumongo). -
Les images dans les autres référentiels sur Docker Hub sont qualifiées par un nom d'organisation (par exemple,
amazon/amazon-ecs-agent). -
Les images dans les autres référentiels en ligne sont qualifiées par un nom de domaine (par exemple,
quay.io/assemblyline/ubuntu).
-
versionConsistency-
Type : String
Valeurs valides :
enabled|disabledObligatoire : non
Spécifie si Amazon ECS résoudra la balise d’image de conteneur fournie dans la définition du conteneur en un condensé d’image. Par défaut, ce comportement est
enabled. Si vous définissez la valeur d’un conteneur surdisabled, Amazon ECS ne résoudra pas la balise d’image de conteneur en un condensé et utilisera l’URI d’image d’origine spécifiée dans la définition du conteneur pour le déploiement. Pour plus d’informations sur la résolution des images de conteneur, consultez la section Résolution de l'image du conteneur.
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
memoryde la tâche, si cette valeur est spécifiée. Ce paramètre correspond àMemorydans la commande docker create-container et à l’option--memorydans la commande docker run.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 Réservation de mémoire pour une instance de conteneur Amazon ECS Linux.
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 àMemoryReservationdans la commande docker create-container et à l’option--memory-reservationdans la commande docker run.Si aucune valeur de mémoire au niveau de la tâche n'est spécifiée, vous devez indiquer un nombre entier différent de zéro pour
memoryoumemoryReservationdans une définition de conteneur. Si vous spécifiez les deux,memorydoit être supérieur àmemoryReservation. Si vous spécifiezmemoryReservation, cette valeur est soustraite des ressources mémoire disponibles pour l'instance de conteneur sur laquelle le conteneur est placé. Sinon, c'est la valeurmemoryqui 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
memoryReservationde 128 Mio et une limite strictememoryde 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.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 Réservation de mémoire pour une instance de conteneur Amazon ECS Linux.
CPU
cpu-
Type : entier
Obligatoire : non
Le nombre d'unités
cpuréservées pour le conteneur. Ce paramètre correspond àCpuSharesdans la commande docker create-container et à l’option--cpu-sharesdans la commande docker run.Ce champ est facultatif pour les tâches utilisant des fournisseurs de EC2 capacité, et la seule exigence est que la quantité totale de CPU réservée à tous les conteneurs d'une tâche soit inférieure à la valeur au niveau de la tâche
cpu.Note
Vous pouvez déterminer le nombre d'unités de processeur disponibles par type d' EC2 instance en multipliant le v CPUs répertorié pour ce type d'instance sur la page détaillée d'Amazon EC2 Instances
par 1 024. Les conteneurs Linux partagent des unités d'UC non allouées avec les autres conteneurs de l'instance de contenu selon le même ratio que la quantité allouée. Par exemple, si vous exécutez une tâche à un seul conteneur sur un type d’instance à un seul cœur avec 512 unités d’UC spécifiées pour ce conteneur, et que c’est la seule tâche en cours d’exécution sur l’instance de conteneur, ce conteneur pourrait utiliser la totalité de la totalité des 1 024 unités d’UC à tout moment. Toutefois, si vous avez lancé une autre copie de la même tâche sur cette instance de conteneur, chaque tâche se voit garantir un minimum de 512 unités de processeur si nécessaire. De plus, chaque conteneur pourrait bénéficier d'une utilisation plus importante du processeur si l'autre conteneur ne l'utilisait pas. Toutefois, si les deux tâches étaient actives à 100 % en permanence, elles seraient limitées à 512 unités de processeur.
Sur les instances de conteneur Linux, le démon Docker de l'instance de conteneur se sert de la valeur d'UC pour calculer les ratios de partage d'UC 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 de processeur n'est pas obligatoire et vous pouvez utiliser des valeurs de processeur 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 d'agent inférieures ou égales à 1.1.0 : Les valeurs d'UC null et égales à zéro sont transmises à Docker en tant que 0, ce que Docker convertit ensuite en 1024 parts d'UC. Les valeurs d'UC de 1 sont transmises à Docker en tant que 1, ce que le noyau Linux convertit en deux parts d'UC.
-
Versions d'agent supérieures ou égales à 1.2.0 : Les valeurs d'UC null, et égales à zéro et à 1 sont transmises à Docker en tant que 2.
Sur les instances de conteneur Windows, la limite d'UC est appliquée comme limite absolue ou quota. 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 d'UC null ou nulle est transmise à Docker comme
0, que Windows interprète comme 1 % d'un processeur. -
Mappages de ports
portMappings-
Type : tableau d'objets
Obligatoire : non
Les mappages de ports exposent les ports réseau de votre conteneur au monde extérieur, ce qui permet aux clients d’accéder à votre application. Ils sont également utilisés pour la communication entre conteneurs au sein d’une même tâche.
Pour les définitions de tâche qui utilisent le mode réseau
awsvpc, spécifiez uniquementcontainerPort. LehostPortest toujours ignoré et le port du conteneur est automatiquement mappé à un port aléatoire portant un numéro élevé sur l’hôte.La plupart des champs de ce paramètre (y compris
containerPort,hostPort,protocol) correspondent àPortBindingsdans la commande docker create-container et à l’option--publishde docker run. Si le mode réseau d'une définition de tâche est défini surhost, 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
networkBindingsde la sortie de la commande describe-tasks. -
API : la réponse
DescribeTasks. -
Métadonnées : point de terminaison des métadonnées de la tâche.
appProtocol-
Type : chaîne
Obligatoire : non
Protocole d'application utilisé pour le mappage de port. Ce paramètre s'applique uniquement à Service Connect. Nous vous conseillons de définir ce paramètre de manière cohérente avec le protocole que votre application utilise. Si vous définissez ce paramètre, Amazon ECS ajoute une gestion de connexion spécifique au protocole au proxy Service Connect. Si vous définissez ce paramètre, Amazon ECS ajoute une télémétrie spécifique au protocole dans la console Amazon ECS et. CloudWatch
Si vous ne définissez aucune valeur pour ce paramètre, le protocole TCP est utilisé. Toutefois, Amazon ECS n'ajoute pas de télémétrie spécifique au protocole pour TCP.
Pour de plus amples informations, veuillez consulter Utilisez Service Connect pour connecter les services Amazon ECS avec des noms abrégés.
Valeurs de protocole valides :
"HTTP" | "HTTP2" | "GRPC" containerPort-
Type : entier
Obligatoire : oui, lorsque des objets
portMappingssont utilisésLe numéro de port sur le conteneur qui est lié au port hôte spécifié par l'utilisateur ou affecté automatiquement.
Pour les tâches utilisant le mode réseau
awsvpc, vous utilisezcontainerPortpour spécifier les ports exposés. 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ètreportMappings. 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
awsvpc. -
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 dehostPortRangeest définie comme suit :-
Pour les conteneurs d'une tâche en mode réseau
awsvpc, lehostPortest défini sur la même valeur que lecontainerPort. Il s'agit d'une stratégie de mappage statique.
-
-
Les valeurs valides de
containerPortRangesont 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
hostPortRangecorrespondant aux ports hôtes liés aux ports de conteneur.Les plages de ports ne sont pas incluses dans les événements de tâches Amazon ECS, qui sont envoyés à EventBridge. Pour de plus amples informations, veuillez consulter Automatisez les réponses aux erreurs Amazon ECS à l'aide de EventBridge.
-
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.
Le
hostPortpeut rester vide ou avoir la même valeur quecontainerPort.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 de49153–65535est 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 à32768ne sont pas compris dans la plage de ports éphémères.Les ports réservés par défaut sont le port
22pour SSH, les ports Docker2375et2376, et les ports d'agent de conteneur Amazon ECS51678-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 champremainingResourcesde 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 : String
Obligatoire : Non, requis pour que Service Connect et VPC Lattice soient configurés dans un service
Nom utilisé pour le mappage de port. Ce paramètre ne s’applique qu’à Service Connect et VPC Lattice. Ce paramètre correspond au nom que vous utilisez dans la configuration Service Connect et VPC Lattice d’un service.
Pour de plus amples informations, veuillez consulter Utilisez Service Connect pour connecter les services Amazon ECS avec des noms abrégés.
Dans l’exemple suivant, les deux champs obligatoires pour Service Connect et VPC Lattice sont utilisés.
"portMappings": [ { "name":string, "containerPort":integer} ] protocol-
Type : chaîne
Obligatoire : non
Le protocole utilisé pour le mappage de port. Les valeurs valides sont
tcpetudp. La valeur par défaut esttcp.Important
Seul
tcpest pris en charge pour Service Connect. N'oubliez pas quetcpest implicite si ce champ n'est pas défini.
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 de plus amples informations, veuillez consulter Utilisation d'images autres que des AWS conteneurs dans Amazon ECS.
-
credentialsParameter -
Type : String
Obligatoire : oui, lorsque des objets
repositoryCredentialssont utilisésL'Amazon Resource Name (ARN) du secret contenant les informations d'identification du référentiel privé.
Pour de plus amples informations, veuillez consulter Utilisation d'images autres que des AWS conteneurs dans Amazon ECS.
Note
Lorsque vous utilisez l'API Amazon ECS AWS CLI AWS SDKs, ou si le secret existe dans la même région que la tâche que vous lancez, vous pouvez utiliser l'ARN complet ou le nom du secret. Lorsque vous utilisez le AWS Management Console, vous devez spécifier l'ARN complet du secret.
Voici un extrait de code d'une définition de tâche indiquant les paramètres requis :
"containerDefinitions": [ { "image": "private-repo/private-image", "repositoryCredentials": { "credentialsParameter": "arn:aws:secretsmanager:region:aws_account_id:secret:secret_name" } } ]
-
Essential
essential-
Type : booléen
Obligatoire : non
Si le paramètre
essentiald'un conteneur a la valeurtrue, et que ce conteneur échoue ou s'arrête pour une raison quelconque, tous les autres conteneurs qui font partie de la tâche sont arrêtés. Si le paramètreessentiald'un conteneur est marqué commefalse, 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. Si vous avez une application composée de plusieurs conteneurs, regroupez les conteneurs utilisés dans un même but et séparer les différents composants en plusieurs définitions de tâche. Pour de plus amples informations, veuillez consulter Architectez votre application pour Amazon ECS.
Point d'entrée
entryPoint-
Type : tableau de chaînes
Obligatoire : non
Point d'entrée qui est transmis au conteneur. Ce paramètre correspond à
Entrypointdans la commande docker create-container et à l’option--entrypointdans la commande docker run."entryPoint": ["string", ...]
Commande
command-
Type : tableau de chaînes
Obligatoire : non
La commande transmise au conteneur. Ce paramètre correspond à
Cmddans la commande docker create-container et au paramètreCOMMANDdans docker run. S'il existe plusieurs arguments, chaque argument est une chaîne séparée dans le tableau."command": ["string", ...]
Répertoire de travail
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 à
WorkingDirdans la commande docker create-container et à l’option--workdirdans la commande docker run.
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.
Rubriques
Politique de redémarrage
restartPolicy-
La politique de redémarrage du conteneur et les paramètres de configuration associés. Lorsque vous configurez une politique de redémarrage pour un conteneur, Amazon ECS peut redémarrer le conteneur sans avoir à remplacer la tâche. Pour de plus amples informations, veuillez consulter Redémarrage de conteneurs individuels dans les tâches Amazon ECS à l’aide de politiques de redémarrage de conteneurs.
enabled-
Type : booléen
Obligatoire : oui
Spécifie si une politique de redémarrage est activée pour le conteneur.
ignoredExitCodes-
Type : tableau integer
Obligatoire : non
Liste des codes de sortie qu’Amazon ECS ignorera et pour lesquels il ne tentera pas de redémarrage. Vous pouvez spécifier un maximum de 50 codes de sortie de conteneur. Par défaut, Amazon ECS n’ignore aucun code de sortie.
restartAttemptPeriod-
Type : entier
Obligatoire : non
Durée (en secondes) pendant laquelle le conteneur doit fonctionner avant de pouvoir tenter un redémarrage. Un conteneur ne peut être redémarré qu’une fois toutes les
restartAttemptPeriodsecondes. Si un conteneur n’est pas en mesure de fonctionner pendant cette période et qu’il se ferme prématurément, il ne sera pas redémarré. Vous pouvez définir unerestartAttemptPeriodminimale de 60 secondes et unerestartAttemptPeriodmaximale de 1 800 secondes. Par défaut, un conteneur doit fonctionner pendant 300 secondes avant de pouvoir être redémarré.
Surveillance de l'état
healthCheck-
Commande de surveillance de l'état du conteneur et paramètres de configuration associés pour le conteneur. Pour de plus amples informations, veuillez consulter Dé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
CMDpour exécuter directement les arguments de la commande, ou parCMD-SHELLpour exécuter la commande avec le shell par défaut du conteneur. Si vous n'en spécifiez aucun,CMDest 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 1Lorsque vous enregistrez une définition de tâche à l'aide du AWS CLI panneau AWS Management Console JSON APIs, placez la liste des commandes entre crochets. Un exemple d'entrée pour une surveillance de l'état est le suivant.
[ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ]Un code de sortie de 0, avec aucune sortie
stderr, indique la réussite et un code de sortie autre que zéro indique qu'il s'agit d'un échec. interval-
La durée (en secondes) entre chaque surveillance de l'état. Vous pouvez indiquer une durée comprise entre 5 et 300 secondes. La valeur par défaut est de 30 secondes.
timeout-
La durée (en secondes) d'attente pour qu'une surveillance de l'état réussisse avant qu'elle ne soit considérée comme un échec. Vous pouvez indiquer une durée comprise entre 2 et 60 secondes. La valeur par défaut est de 5 secondes.
retries-
Nombre de nouvelles tentatives d'exécution d'une surveillance de l'état ayant échoué avant que le conteneur soit considéré comme défectueux. Vous pouvez indiquer un nombre de tentatives compris en 1 et 10. La valeur par défaut est de trois tentatives.
startPeriod-
La période de grâce facultative pour donner aux conteneurs le temps de démarrer avant l'échec des surveillance de l'état est prise en compte dans le nombre maximal de tentatives. Vous pouvez spécifier une valeur comprise entre 0 et 300. Par défaut, la
startPeriodest désactivée.Si une vérification de l'état aboutit dans le délai défini par
startPeriod, le conteneur est considéré comme sain et toutes les défaillances suivantes sont prises en compte dans le nombre maximal de nouvelles tentatives.
Environnement
cpu-
Type : entier
Obligatoire : non
Le nombre d'unités
cpuque l'agent de conteneur Amazon ECS réserve pour le conteneur. Sous Linux, ce paramètre correspond àCpuSharesdans la section Créer un conteneur. Ce champ est facultatif pour les tâches exécutées sur les instances gérées Amazon ECS. La quantité totale de processeurs réservée pour tous les conteneurs au sein d'une tâche doit être inférieure à la valeur
cpuau niveau de la tâche.Les conteneurs Linux partagent des unités de processeur non allouées avec les autres conteneurs de l'instance de conteneur selon le même ratio que la quantité allouée. Par exemple, supposons que vous exécutez une tâche à conteneur unique sur un type d'instance à cœur unique avec 512 unités de processeur spécifiées pour ce conteneur. De plus, cette tâche est la seule tâche en cours d'exécution sur l'instance de conteneur. Dans cet exemple, le conteneur peut utiliser le partage complet de 1 024 unités UC à tout moment. Toutefois, supposons que vous ayez lancé une autre copie de la même tâche sur cette instance de conteneur. Un minimum de 512 unités de processeur est affecté à chaque tâche si nécessaire. De même, si l'autre conteneur n'utilise pas le processeur restant, chaque conteneur peut bénéficier d'une utilisation plus importante du processeur. Toutefois, si les deux tâches sont actives à 100 % en permanence, elles sont limitées à 512 unités d'UC.
Sur les instances de conteneur Linux, le démon Docker de l'instance de conteneur se sert de la valeur de processeur pour calculer les ratios de partage de processeur relatifs pour les conteneurs en cours d'exécution. La valeur de parts d’UC minimale autorisée par le noyau Linux est de 2, et la valeur de parts d’UC maximale autorisée par le noyau Linux est de 262 144. Toutefois, le paramètre UC n’est pas obligatoire et vous pouvez utiliser des valeurs d’UC inférieures à 2 ou supérieures à 262 144 dans vos définitions de conteneur. Pour les valeurs d’UC inférieures à 2 (y compris null) ou supérieures à 262 144, le comportement varie selon la version de l’agent de conteneur Amazon ECS :
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
GPUsphysiques que l'agent de conteneur Amazon ECS réserve pour le conteneur. Le nombre de conteneurs GPUs réservés à tous les conteneurs d'une tâche ne doit pas dépasser le nombre de conteneurs disponibles GPUs sur l'instance de conteneur sur laquelle la tâche est lancée. Pour de plus amples informations, veuillez consulter Définitions de tâches Amazon ECS pour les charges de travail GPU. Elastic Inference accelerator-
Note
Ce paramètre n’est pas pris en charge pour les conteneurs hébergés sur instances gérées Amazon ECS.
Type : objet ResourceRequirement
Obligatoire : non
Pour le type
InferenceAccelerator,valuecorrespond àdeviceNamed'unInferenceAcceleratorspécifié dans une définition de tâche. Pour de plus amples informations, veuillez consulter Nom de l'accélérateur Elastic Inference (obsolète). essential-
Type : booléen
Obligatoire : non
Supposons que le paramètre
essentiald'un conteneur soit marqué commetrue, 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ètreessentiald'un conteneur a la valeurfalse, son échec n'a pas d'incidence sur le reste des conteneurs dans la tâche. Si ce paramètre n'est pas spécifié, le conteneur est supposé essentiel.Toutes les tâches doivent comporter au moins un conteneur essentiel. Supposons que vous disposiez d'une application composée de plusieurs conteneurs. Ensuite, les conteneurs de groupes qui sont utilisés dans un même but pour former des composants, et séparer les différents composants en plusieurs définitions de tâches. Pour de plus amples informations, veuillez consulter Architectez votre application pour Amazon ECS.
"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 utiliserentryPoint, mettez à jour l'agent de conteneur ou saisissez plutôt vos commandes et vos arguments sous forme d'éléments de tableaucommand.Type : tableau de chaînes
Obligatoire : non
Point d'entrée qui est transmis au conteneur.
"entryPoint": ["string", ...] command-
Type : tableau de chaînes
Obligatoire : non
La commande transmise au conteneur. Ce paramètre correspond à
Cmddans la commande create-container et au paramètreCOMMANDde docker run. S'il existe plusieurs arguments, assurez-vous que chaque argument est une chaîne séparée dans le tableau."command": ["string", ...] workingDirectory-
Type : chaîne
Obligatoire : non
Répertoire de travail dans lequel exécuter les commandes à l'intérieur du conteneur. Ce paramètre correspond à
WorkingDirdans la section Create a container(Créer un conteneur) de l'API Docker à distance et l'option --workdircorrespond à 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 correspond à l’option
--env-filede la commande docker run.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 formatVARIABLE=VALUE. Les lignes commençant par#sont traitées comme des commentaires et sont ignorées.Si des variables d'environnement individuelles sont spécifiées dans la définition du conteneur, elles ont priorité sur les variables contenues dans un fichier d'environnement. Si plusieurs fichiers d'environnement contenant la même variable sont spécifiés, ils sont traités de haut en bas. Nous vous recommandons d'utiliser des noms de variables uniques. Pour de plus amples informations, veuillez consulter Transmission d’une variable d’environnement individuelle à un conteneur Amazon ECS.
value-
Type : String
Obligatoire : oui
L'Amazon Resource Name (ARN) de l'objet Amazon S3 contenant le fichier de variable d'environnement.
type-
Type : String
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 à
Envdans la commande docker create-container et à l’option--envdans la commande 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 : String
Obligatoire : oui lorsque
environmentest utiliséNom de la variable d'environnement.
value-
Type : String
Obligatoire : oui lorsque
environmentest utiliséValeur de la variable d'environnement.
"environment" : [ { "name" : "string", "value" : "string" }, { "name" : "string", "value" : "string" } ] secrets-
Type : tableau d'objets
Obligatoire : non
Objet représentant le secret à exposer à votre conteneur. Pour de plus amples informations, veuillez consulter Transmission de données sensibles vers un conteneur Amazon ECS.
name-
Type : String
Obligatoire : oui
Valeur à définir comme variable d'environnement sur le conteneur.
valueFrom-
Type : String
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 ou le paramètre Secrets Manager existe au même endroit Région AWS que la tâche que vous lancez, vous pouvez utiliser l'ARN complet ou le nom du secret. Si le paramètre existe dans une autre région, l'ARN complet doit être spécifié.
"secrets": [ { "name": "environment_variable_name", "valueFrom": "arn:aws:ssm:region:aws_account_id:parameter/parameter_name" } ]
Sécurité
privileged-
Type : booléen
Obligatoire : non
Lorsque ce paramètre a la valeur
true, le conteneur dispose de droits élevés sur l’instance de conteneur hôte (similaire à l’utilisateurroot). Ce paramètre correspond àPrivilegeddans la commande docker create-container et à l’option--privilegeddans la commande docker run. user-
Type : chaîne
Obligatoire : non
Utilisateur à utiliser à l'intérieur du conteneur. Ce paramètre correspond à
Userdans la commande docker create-container et à l’option--userdans la commande docker run.Important
Lorsque vous exécutez des tâches en mode réseau
host, vous ne devez pas exécuter de conteneurs à l'aide de l'utilisateur root (UID 0). Pour plus de sécurité, nous recommandons l’utilisation d'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
-
readonlyRootFilesystem-
Type : booléen
Obligatoire : non
Lorsque 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 àReadonlyRootfsdans la commande docker create-container et à l’option--read-onlydans la commande docker run. dockerSecurityOptions-
Note
Ce paramètre n’est pas pris en charge pour les tâches exécutées sur les instances gérées Amazon ECS.
Type : tableau de chaînes
Obligatoire : non
Liste de chaînes fournissant des étiquettes personnalisées pour les systèmes SELinux de sécurité à AppArmor plusieurs niveaux. Ce champ n’est pas valide pour les conteneurs dans les tâches qui utilisent Fargate.
ulimits-
Type : tableau d’objets Ulimit
Obligatoire : non
Une liste d'
ulimitsà définir dans le conteneur. Si une valeur ulimit est spécifiée dans une définition de tâche, elle remplace les valeurs par défaut définies par Docker. Ce paramètre correspond àUlimitsdans la commande docker create-container et à l’option--ulimitdans la commande docker run. Les valeurs d'attribution de nom valides sont affichées dans le type de données Ulimit.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
nofilequi est remplacé par Fargate. La limite de ressourcesnofilerestreint le nombre de fichiers ouverts qu'un conteneur peut utiliser. Par défaut, la limite souplenofilea la valeur1024et la limite stricte a la valeur65535.Ce paramètre nécessite la version 1.18 de l'API Docker Remote ou une version ultérieure sur votre instance de conteneur. Pour vérifier la version de l'API Docker à distance de votre instance de conteneur, connectez-vous à votre instance de conteneur et exécutez la commande suivante :
sudo docker version --format '{{.Server.APIVersion}}'
dockerLabels-
Note
Ce paramètre n’est pas pris en charge pour les conteneurs hébergés sur instances gérées Amazon ECS.
Type : mappage chaîne/chaîne
Obligatoire : non
Une key/value carte des étiquettes à ajouter au conteneur. Ce paramètre correspond à
Labelsdans la commande docker create-container et à l’option--labeldans la commande docker run.Ce paramètre nécessite la version 1.18 de l'API Docker Remote ou une version ultérieure sur votre instance de conteneur.
"dockerLabels": {"string": "string" ...}
Paramètres réseau
disableNetworking-
Note
Ce paramètre n’est pas pris en charge pour les tâches exécutées sur les instances gérées Amazon ECS.
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.
La valeur par défaut est
false."disableNetworking": true|false links-
Note
Ce paramètre n’est pas pris en charge pour les tâches exécutées sur les instances gérées Amazon ECS.
Type : tableau de chaînes
Obligatoire : non
Le paramètre
linkpermet 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 surbridge. La constructionname:internalNameest analogue àname:aliasdans les liaisons Docker. Il peut comporter jusqu’à 255 lettres (majuscules et minuscules), des chiffres, des tirets ou des traits de soulignement.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-
Note
Ce paramètre n’est pas pris en charge pour les tâches exécutées sur les instances gérées Amazon ECS.
Type : chaîne
Obligatoire : non
Nom d'hôte à utiliser pour votre conteneur. Ce paramètre correspond à
Hostnamedans docker create-container et à l’option--hostnamede docker run."hostname": "string" dnsServers-
Note
Ce paramètre n’est pas pris en charge pour les tâches exécutées sur les instances gérées Amazon ECS.
Type : tableau de chaînes
Obligatoire : non
Liste de serveurs DNS qui sont présentés au conteneur.
"dnsServers": ["string", ...] extraHosts-
Note
Ce paramètre n’est pas pris en charge pour les tâches qui utilisent le mode réseau
awsvpc.Type : tableau d'objets
Obligatoire : non
Liste de noms d'hôte et de mappages d'adresses IP à ajouter au fichier
/etc/hostsdans le conteneur.Ce paramètre correspond à
ExtraHostsdans la commande docker create-container et à l’option--add-hostdans la commande docker run."extraHosts": [ { "hostname": "string", "ipAddress": "string" } ... ]hostname-
Type : String
Obligatoire : oui, lorsque des objets
extraHostssont utilisésNom d'hôte à utiliser dans l'entrée
/etc/hosts. ipAddress-
Type : String
Obligatoire : oui, lorsque des objets
extraHostssont utilisésAdresse 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 à
ReadonlyRootfsdans la commande docker create-container et à l’option--read-onlydans la commande docker run.La valeur par défaut est
false."readonlyRootFilesystem": true|false mountPoints-
Type : tableau d'objets
Obligatoire : non
Les points de montage pour les volumes de données dans votre conteneur. Ce paramètre correspond à
Volumesdans l’API Docker create-container et à l’option--volumede docker run.Les conteneurs Windows peuvent monter des répertoires entiers sur le même lecteur que
$env:ProgramData. Les conteneurs Windows ne peuvent pas monter de répertoires sur un autre lecteur, et les points de montage ne peuvent pas être utilisés sur plusieurs lecteurs. Vous devez spécifier des points de montage pour associer un volume Amazon EBS directement à une tâche Amazon ECS.sourceVolume-
Type : String
Obligatoire : oui, lorsque des objets
mountPointssont utilisésNom du volume à monter.
containerPath-
Type : String
Obligatoire : oui, lorsque des objets
mountPointssont utilisésLe 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 estfalse, le conteneur peut écrire sur le volume. La valeur par défaut estfalse.Pour les tâches exécutées sur EC2 des instances exécutant le système d'exploitation Windows, laissez la valeur par défaut de
false.
volumesFrom-
Type : tableau d'objets
Obligatoire : non
Volumes de données à monter à partir d'un autre conteneur. Ce paramètre correspond à
VolumesFromdans la commande docker create-container et à l’option--volumes-fromdans la commande docker run.sourceContainer-
Type : String
Obligatoire : oui lorsque
volumesFromest 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 estfalse, le conteneur peut écrire sur le volume. La valeur par défaut estfalse.
"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 Exemple de définitions de tâches Amazon ECS.
Ce paramètre correspond à
LogConfigdans la commande docker create-container et à l’option--log-driverdans la commande docker run. Par défaut, les conteneurs utilisent le même pilote de journalisation que celui utilisé par le démon Docker. Cependant, le conteneur peut utiliser un pilote de journalisation différent que celui du démon Docker en spécifiant un pilote de journal avec ce paramètre dans la définition de conteneur. Pour utiliser un pilote de journalisation différent pour un conteneur, le système de journal doit être configuré correctement sur l'instance de conteneur (ou sur un serveur de journal différent pour les options de journalisation à distance).Tenez compte des éléments suivants lorsque vous spécifiez une configuration de journal pour vos conteneurs :
-
Amazon ECS prend en charge un sous-ensemble des pilotes de journalisation qui sont disponibles pour le démon Docker.
-
Ce paramètre nécessite la version 1.18 ou ultérieure de l'API Docker à distance sur votre instance de conteneur.
"logConfiguration": { "logDriver": "awslogs",""splunk", "awsfirelens", "options": {"string": "string" ...}, "secretOptions": [{ "name": "string", "valueFrom": "string" }] }logDriver-
Type : String
Valeurs valides :
"awslogs","splunk","awsfirelens"Obligatoire : oui lorsque
logConfigurationest utiliséPilote de journal à utiliser pour le conteneur. Par défaut, les valeurs valides mentionnées ci-dessus sont les pilotes de journal avec lesquels l'agent de conteneur Amazon ECS peut communiquer.
Les pilotes de journalisation pris en charge sont
awslogs,splunketawsfirelens.Pour plus d'informations sur l'utilisation du pilote de
awslogsjournal dans les définitions de tâches pour envoyer les journaux de vos conteneurs à CloudWatch Logs, consultezEnvoyez les journaux Amazon ECS à CloudWatch .Pour plus d’informations sur l’utilisation du pilote de journalisation
awsfirelens, consultez la section Envoyer les journaux Amazon ECS à un AWS service ou AWS Partner.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 Remote ou une version ultérieure sur votre instance de conteneur.
options-
Type : mappage chaîne/chaîne
Obligatoire : non
key/value Carte des options de configuration à envoyer au pilote du journal.
Les options que vous pouvez spécifier dépendent du pilote de journalisation. Certaines des options que vous pouvez spécifier lorsque vous utilisez le
awslogsrouteur pour acheminer les journaux vers Amazon CloudWatch sont les suivantes :awslogs-create-group-
Obligatoire : non
Spécifiez si vous souhaitez que le groupe de journaux soit créé automatiquement. Si cette option n'est pas spécifiée, l'emplacement par défaut est
false.Note
Votre politique IAM doit inclure l'autorisation
logs:CreateLogGroupafin que vous puissiez essayer d'utiliserawslogs-create-group. awslogs-region-
Obligatoire : oui
Spécifiez Région AWS le pilote de
awslogsjournal auquel envoyer vos journaux Docker. Vous pouvez choisir d'envoyer tous vos journaux provenant de clusters situés dans différentes régions vers une seule région dans CloudWatch Logs. Cela leur permet d'être tous visibles en un seul endroit. Sinon, vous pouvez les séparer par région pour plus de granularité. Assurez-vous que le groupe de journaux spécifié existe dans la région que vous spécifiez avec cette option. awslogs-group-
Obligatoire : oui
Assurez-vous de spécifier un groupe de journaux auquel le pilote de journaux
awslogsenvoie ses flux de journaux. awslogs-stream-prefix-
Obligatoire : oui
Utilisez l'option
awslogs-stream-prefixpour associer un flux de journaux au préfixe spécifié, au nom du conteneur et à l'ID de la tâche Amazon ECS à laquelle appartient le conteneur. Si vous spécifiez un préfixe avec cette option, le format du flux de journaux est le suivant.prefix-name/container-name/ecs-task-idSi vous ne spécifiez pas de préfixe avec cette option, le flux de journaux est nommé d'après l'ID de conteneur attribué par le démon Docker sur l'instance de conteneur. Etant donné qu'il est difficile de suivre les journaux jusqu'au conteneur qui les a envoyé en utilisant uniquement l'ID de conteneur Docker (qui est uniquement disponible sur l'instance de conteneur), nous vous recommandons de spécifier un préfixe avec cette option.
Pour les services Amazon ECS, vous pouvez utiliser le nom du service comme préfixe. Ce faisant, vous pourrez suivre les flux de journaux et déterminer le service auquel appartient le conteneur, trouver le nom du conteneur qui les a envoyés, ainsi que l'ID de la tâche à laquelle le conteneur appartient.
Vous devez spécifier un préfixe de flux pour vos journaux pour qu'ils apparaissent dans le panneau des journaux lors de l'utilisation de la console Amazon ECS.
awslogs-datetime-format-
Obligatoire : non
Cette option définit un modèle de démarrage à plusieurs lignes au format
strftimePython. Un message de journal est composé de plusieurs lignes : une ligne correspondant au modèle et les lignes suivantes qui ne correspondent pas au modèle. La ligne mise en correspondance est le délimiteur entre les messages de journalisation.Ce format peut, par exemple, servir à analyser une sortie comme une pile de vidage, laquelle pourrait, dans le cas contraire, être consignée en plusieurs entrées. Le modèle adéquat permet de la capturer dans une seule entrée.
Pour de plus amples informations, veuillez consulter awslogs-datetime-format
. Vous ne pouvez pas configurer à la fois les options
awslogs-datetime-formatetawslogs-multiline-pattern.Note
La journalisation multiligne effectue l'analyse et la mise en correspondance des expressions régulières de tous les messages de journalisation. Cela peut avoir un impact négatif sur les performances de journalisation.
awslogs-multiline-pattern-
Obligatoire : non
Cette option définit un modèle de démarrage à plusieurs lignes à l'aide d'une expression régulière. Un message de journal est composé de plusieurs lignes : une ligne correspondant au modèle et les lignes suivantes qui ne correspondent pas au modèle. La ligne mise en correspondance est le délimiteur entre les messages de journalisation.
Pour de plus amples informations, veuillez consulter awslogs-multiline-pattern
. Cette option est ignorée si
awslogs-datetime-formatest également configuré.Vous ne pouvez pas configurer à la fois les options
awslogs-datetime-formatetawslogs-multiline-pattern.Note
La journalisation multiligne effectue l'analyse et la mise en correspondance des expressions régulières de tous les messages de journalisation. Cela peut avoir un impact négatif sur les performances de journalisation.
mode-
Obligatoire : non
Valeurs valides :
non-blocking|blockingCette option définit le mode de transmission des messages de journalisation du conteneur vers le pilote de journalisation
awslogs. Le mode de livraison que vous choisissez affecte la disponibilité de l’application lorsque le flux des journaux provenant du conteneur est interrompu.Si vous utilisez le
blockingmode et que le flux de logs CloudWatch est interrompu, les appels provenant du code du conteneur pour écrire dans lesstderrfluxstdoutet seront bloqués. Le fil de journalisation de l'application se bloquera en conséquence. Cela peut empêcher l'application de répondre et entraîner l'échec de vérification de l'état du conteneur.Si vous utilisez le mode
non-blocking, les journaux du conteneur sont plutôt stockés dans une mémoire tampon intermédiaire configurée avec l'optionmax-buffer-size. Cela empêche l'application de ne plus répondre lorsque les journaux ne peuvent pas être envoyés à CloudWatch. Nous vous recommandons d'utiliser ce mode si vous souhaitez garantir la disponibilité du service et si vous acceptez une certaine perte de journaux. Pour plus d’informations, consultez la section Prévention de la perte de journaux grâce au mode non bloquant dans le pilote de journalisation conteneurawslogs. max-buffer-size-
Obligatoire : non
Valeur par défaut :
1mQuand le mode
non-blockingest utilisé, l'option de journalisationmax-buffer-sizecontrôle la taille de la mémoire tampon utilisée pour le stockage des messages intermédiaires. Assurez-vous de spécifier une taille de mémoire tampon adéquate en fonction de votre application. Lorsque la mémoire tampon est pleine, il est impossible de stocker d'autres journaux. Les journaux qui ne peuvent pas être stockés sont perdus.
Pour acheminer les journaux à l’aide du routeur de journaux
splunk, vous devez spécifier unsplunk-tokenet unesplunk-url.Lorsque vous utilisez le routeur de
awsfirelensjournaux pour acheminer les journaux vers une AWS Partner Network destination Service AWS ou à des fins de stockage et d'analyse des journaux, vous pouvez définir l'log-driver-buffer-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 de plus amples informations, veuillez consulter Configuration des journaux Amazon ECS pour un débit élevé.Les autres options que vous pouvez spécifier lors de l’utilisation d’
awsfirelenspour acheminer les journaux dépendent de la destination. Lorsque vous exportez des journaux vers Amazon Data Firehose, vous pouvez spécifier le Région AWS formatregionet le nom du flux de journaux.delivery_streamLorsque vous exportez des journaux vers Amazon Kinesis Data Streams, vous pouvez spécifier la Région AWS avec
regionet un nom pour le flux de données avecstream.Lorsque vous exportez des journaux vers Amazon OpenSearch Service, vous pouvez spécifier des options telles que
NameHost(point de terminaison de OpenSearch service sans protocole)PortIndexType,Aws_auth,Aws_region,,Suppress_Type_Name, ettls.Lorsque vous exportez des journaux vers Amazon S3, vous pouvez spécifier le compartiment à l’aide de l’option
bucket. Vous pouvez également spécifierregion,total_file_size,upload_timeoutetuse_put_objecten tant qu’options.Ce paramètre nécessite la version 1.19 de l'API Docker à distance ou une version supérieure sur votre instance de conteneur.
secretOptions-
Type : tableau d'objets
Obligatoire : non
Objet qui représente le secret à transmettre à la configuration de journal. Les secrets utilisés dans la configuration du journal peuvent inclure un jeton d'authentification, un certificat ou une clé de chiffrement. Pour de plus amples informations, veuillez consulter Transmission de données sensibles vers un conteneur Amazon ECS.
name-
Type : String
Obligatoire : oui
Valeur à définir comme variable d'environnement sur le conteneur.
valueFrom-
Type : String
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 de plus amples informations, veuillez consulter Envoyer les journaux Amazon ECS à un AWS service ou AWS Partner.
{ "firelensConfiguration": { "type": "fluentd", "options": { "KeyName": "" } } }options-
Type : mappage chaîne/chaîne
Obligatoire : non
key/value Carte des options à utiliser lors de la configuration du routeur de journalisation. 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:::. Pour de plus amples informations, veuillez consulter Exemple de définition de tâche Amazon ECS : acheminement des journaux vers FireLens.amzn-s3-demo-bucket/fluent.conf|filepath"} type-
Type : String
Obligatoire : oui
Routeur de journal à utiliser. Les valeurs valides sont
fluentdoufluentbit.
Besoins en ressources
resourceRequirements-
Type : tableau d’objets ResourceRequirement
Obligatoire : non
Type et quantité d'une ressource à attribuer à un conteneur. Actuellement, la seule ressource prise en charge est un GPU.
type-
Type : String
Obligatoire : oui
Type d'une ressource à attribuer à un conteneur. La valeur prise en charge est
GPU. value-
Type : String
Obligatoire : oui
Valeur du type de ressource spécifié.
Si le type
GPUest utilisé, la valeur est le nombre d’élémentsGPUsphysiques que l’agent de conteneur Amazon ECS réserve pour le conteneur. Le nombre de conteneurs réservés à tous les conteneurs d'une tâche ne peut pas dépasser le nombre de conteneurs disponibles GPUs sur l'instance de conteneur sur GPUs laquelle la tâche est lancée.GPUs ne sont pas disponibles pour les tâches exécutées sur Fargate.
Temporisations de conteneurs
startTimeout-
Type : entier
Obligatoire : non
Exemples de valeur :
120Duré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
containerAdispose d'une dépendance aucontainerBavec un étatCOMPLETE,SUCCESSouHEALTHY. Si une valeurstartTimeoutest spécifiée pourcontainerBet qu'il n'a pas atteint l'état souhaité dans ce délai, alors lecontainerAne 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.
La valeur maximale est de 600 secondes (10 minutes).
stopTimeout-
Type : entier
Obligatoire : non
Exemples de valeur :
120Durée (en secondes) à attendre avant que le conteneur soit expressément tué s'il ne s'achève pas normalement tout seul.
Si le paramètre n'est pas spécifié, alors la valeur par défaut de 30 secondes est utilisée. La valeur maximale est de 86 400 secondes (24 heures).
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.
Ce paramètre exige que la tâche ou le service utilise la version de plateforme
1.3.0ou une version ultérieure (Linux) ou1.0.0(Windows)."dependsOn": [ { "containerName": "string", "condition": "string" } ]containerName-
Type : String
Obligatoire : oui
Nom de conteneur qui doit répondre à la condition spécifiée.
condition-
Type : String
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 étatzero. Cette condition ne peut pas être définie sur un contenant essentiel. -
HEALTHY- Cette condition vérifie que la surveillance de l'état du conteneur dépendant réussit avant d'autoriser d'autres conteneurs à démarrer. Cela nécessite que le conteneur dépendant dispose de surveillances de l'état configurées dans la définition de la tâche. Cette condition est confirmée uniquement au démarrage de la tâche.
-
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 à
Sysctlsdans la commande docker create-container et à l’option--sysctldans la commande docker run. Par exemple, vous pouvez configurer le paramètrenet.ipv4.tcp_keepalive_timepour maintenir des connexions de plus longue durée.Il n'est pas recommandé de spécifier des paramètres
systemControlsliés au réseau pour plusieurs conteneurs dans une seule tâche qui utilise également le mode réseauawsvpcouhost. En procédant ainsi, vous vous exposez aux inconvénients suivants :-
Si vous définissez
systemControlspour n’importe quel conteneur, cela s’applique à tous les conteneurs de la tâche. Si vous définissez différents paramètressystemControlspour plusieurs conteneurs dans une seule tâche, c'est le conteneur qui est démarré en dernier qui détermine le paramètresystemControlsqui prend effet.
Si vous définissez un espace de noms des ressources IPC à utiliser pour les conteneurs de la tâche, les conditions suivantes s'appliquent aux contrôles de système. Pour de plus amples informations, veuillez consulter Mode IPC.
-
Pour les tâches qui utilisent le mode IPC
host, lessystemControlsliés à l'espace de noms IPC ne sont pas pris en charge. -
Pour les tâches qui utilisent le mode IPC
task, les valeurs dessystemControlsliés à l'espace de noms IPC s'appliquent à tous les conteneurs au sein d'une tâche.
"systemControls": [ { "namespace":"string", "value":"string" } ]namespace-
Type : chaîne
Obligatoire : non
Paramètre du noyau de l’espace de noms pour lequel définir une
value.Valeurs d'espace de noms IPC valides :
"kernel.msgmax" | "kernel.msgmnb" | "kernel.msgmni" | "kernel.sem" | "kernel.shmall" | "kernel.shmmax" | "kernel.shmmni" | "kernel.shm_rmid_forced", etSysctlsqui commencent par"fs.mqueue.*"Valeurs d’espace de noms de réseau valides :
Sysctlsqui commencent par"net.*"Sur Fargate, seuls les espaces de nomsSysctlsexistant dans le conteneur sont acceptés.Toutes ces valeurs sont prises en charge par Fargate.
value-
Type : chaîne
Obligatoire : non
Valeur du paramètre du noyau de l’espace de noms spécifié dans
namespace.
-
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'unestdinou d'untty. Ce paramètre correspond àOpenStdindans la commande docker create-container et à l’option--interactivedans la commande docker run.La valeur 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 àTtydans la commande docker create-container et à l’option--ttydans la commande docker run.La valeur par défaut est
false.
Paramètres Linux
linuxParameters-
Type : objet LinuxParameters
Obligatoire : non
Modifications spécifiques à Linux appliquées au conteneur, comme les capacités de noyau Linux.
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.
devices-
Type : tableau d'objets Périphérique
Obligatoire : non
Tous les périphériques hôtes à exposer au conteneur. Ce paramètre correspond à
Devicesdans la commande docker create-container et à l’option--devicedans la commande docker run. initProcessEnabled-
Type : booléen
Obligatoire : non
Exécutez un processus
initdans le conteneur afin de transmettre des signaux et de récolter les processus. Ce paramètre correspond à l’option--initde docker run. maxSwap-
Note
Ce paramètre n’est pas pris en charge pour les tâches exécutées sur les instances gérées Amazon ECS.
Type : entier
Obligatoire : non
Quantité totale de mémoire d'échange (en Mio) qu'un conteneur peut utiliser. Ce paramètre est converti en l’option
--memory-swapde la commande docker run, où la valeur est la somme de la mémoire du conteneur et de la valeurmaxSwap. swappiness-
Note
Ce paramètre n’est pas pris en charge pour les tâches exécutées sur les instances gérées Amazon ECS.
Type : entier
Obligatoire : non
Ce paramètre vous permet de régler le comportement d'échange de mémoire d'un conteneur. Si la valeur de
swappinessest0, l'échange n'a pas lieu, sauf si cela s'avère absolument nécessaire. Avec la valeur100pourswappiness, l'échange de pages a lieu de manière très agressive. Les valeurs valides sont les nombres entiers compris entre0et100. Si le paramètreswappinessn'est pas spécifié, la valeur par défaut60est utilisée. Si aucune valeur n'est spécifiée pourmaxSwap, le paramètre est ignoré. Ce paramètre correspond à l’option--memory-swappinessde docker run. -
Note
Ce paramètre n’est pas pris en charge pour les tâches exécutées sur les instances gérées Amazon ECS.
Type : entier
Obligatoire : non
Taille (en Mio) du volume
/dev/shm. Ce paramètre correspond à l’option--shm-sizede docker run. tmpfs-
Note
Ce paramètre n’est pas pris en charge pour les tâches exécutées sur les instances gérées Amazon ECS.
Type : tableau d'objets Tmpfs
Obligatoire : non
Chemin du conteneur, options de montage et taille (en Mio) du montage tmpfs. Ce paramètre correspond à l’option
--tmpfsde docker run.