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 des tâches 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, 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.
Voici des descriptions plus détaillées de chaque paramètre de définition de tâche.
Famille
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.
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 de plus amples informations, veuillez consulter Types de ECS lancement d'Amazon.
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 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 la tâche Amazon ECS.
Lorsque vous lancez l'AMI Windows Server optimisée pour Amazon ECS, les rôles IAM pour les tâches sous Windows nécessitent que l'option
-EnableTaskIAMRole
soit définie. Vos conteneurs doivent également exécuter certains codes de configuration afin d'utiliser la fonctionnalité. Pour de plus amples informations, veuillez consulter Configuration supplémentaire de l'instance Amazon EC2 Windows.
Rôle d'exécution de tâche
executionRoleArn
-
Type : chaîne
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.
Note
Le rôle IAM d'exécution de la tâche est requis en fonction des besoins de votre tâche. Pour de plus amples informations, veuillez consulter Rôle IAM d'exécution de tâche Amazon ECS.
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 Amazon EC2 Linux, les valeurs valides sont
none
bridge
,awsvpc
, ethost
. Si aucun mode réseau n'est spécifié, le mode réseau par défaut estbridge
. Pour les tâches Amazon ECS hébergées sur des instances Amazon EC2 Windows, les valeurs valides sontdefault
etawsvpc
. Si aucun mode réseau n'est spécifié, c'est le modedefault
réseau qui est utilisé. 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 activé
bridge
, la tâche utilise le réseau virtuel intégré de Docker sous Linux, qui s'exécute dans chaque EC2 instance Amazon hébergeant la tâche. Le réseau virtuel intégré sous Linux utilise le pilote réseau Dockerbridge
.Si le mode réseau est activé
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 du conteneur directement à l'ENI de l' EC2 instance Amazon 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érohostPort
spécifique. Un numéro de port sur un hôte ne peut pas être utilisé par plusieurs tâches. Par conséquent, vous ne pouvez pas exécuter plusieurs tâches ayant la même définition de tâche sur une seule EC2 instance Amazon.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 EC2 lancement Amazon, si le mode réseau est activé
awsvpc
, une interface réseau élastique est allouée à la tâche, et vous devez en spécifier unNetworkConfiguration
lorsque vous créez un service ou exécutez une tâche avec la définition de la tâche. Pour de plus amples informations, veuillez consulter Options de mise en réseau des tâches Amazon ECS pour le type de EC2 lancement.Si le mode réseau est activé
default
, la tâche utilise le réseau virtuel intégré de Docker sous Windows, qui s'exécute dans chaque EC2 instance Amazon hébergeant la tâche. Le réseau virtuel intégré sous Windows utilise le pilote réseau Dockernat
.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écifierNetworkConfiguration
une lorsque vous créez un service ou exécutez une tâche avec la définition de la tâche. Pour de plus amples informations, veuillez consulter Options de mise en réseau des tâches Amazon ECS pour le type de lancement Fargate. Le modeawsvpc
réseau offre les meilleures performances réseau pour les conteneurs, car ils utilisent la pile EC2 réseau Amazon. 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
awsvpc
réseauhost
et offrent les meilleures performances réseau pour les conteneurs, car ils utilisent la pile EC2 réseau Amazon. Avec les modes réseauhost
etawsvpc
, 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.Si vous utilisez le type de lancement Fargate, le mode réseau
awsvpc
est requis. Si vous utilisez le type de EC2 lancement, le mode réseau autorisé dépend du système d'exploitation de l' EC2 instance sous-jacente. Sous Linux, n'importe quel mode réseau peut être utilisé. S'il s'agit de Windows, les modesdefault
etawsvpc
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
etWINDOWS_SERVER_2022_CORE
.Les valeurs valides pour les tâches Amazon ECS hébergées sur EC2 sont
LINUX
WINDOWS_SERVER_2022_CORE
WINDOWS_SERVER_2022_FULL
WINDOWS_SERVER_2019_FULL
,WINDOWS_SERVER_2019_CORE
,WINDOWS_SERVER_2016_FULL
,WINDOWS_SERVER_2004_CORE
, etWINDOWS_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
etARM64
.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 pour EC2 le type de lancement, vous pouvez définir la valeur sur.
ARM64
Pour de plus amples informations, veuillez consulter Définitions de tâches 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. 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. Vous pouvez spécifier les valeurs du processeur dans le fichier JSON sous forme de chaîne en unités de processeur ou en mode virtuel CPUs (vCPUs). Par exemple, vous pouvez spécifier une valeur de processeur soit
1024
en unités de processeur, soit1 vCPU
en CPUs v. Lorsque la définition de tâche est enregistrée, une valeur vCPU est convertie en un entier indiquant les unités du processeur.Pour les tâches exécutées sur des instances externes 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 EC2 ou sur des instances externes sont comprises entre
0.125
10
v CPUs et CPUs v.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érieureEntre 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érieureEntre 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.
La limite stricte de mémoire à présenter à la tâche. Vous pouvez spécifier des valeurs de mémoire dans la définition de tâche sous forme de chaîne en mégaoctets (MiB) ou en gigaoctets (Go). Par exemple, vous pouvez spécifier une valeur de mémoire
3072
en MiB ou3 GB
en Go. Lorsque la définition de tâche est enregistrée, la valeur en Go est convertie en un nombre entier indiquant la quantité de Mio.Pour les tâches hébergées sur des EC2 instances Amazon, 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 d'instance de conteneur Amazon ECS Linux.
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érieure8192 (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érieure16384 (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 conteneurs qui sont transmises au Docker daemon sur une instance de conteneur. Les paramètres suivants sont autorisés dans une définition de conteneur.
Rubriques
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 : String
Obligatoire : oui
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'optionlinks
d'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 Docker démon. Par défaut, les images du Docker Hub les registres 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 correspondrepository-url
/image
@digest
Image
à la commande docker create-container et au paramètreIMAGE
de la commande docker run.-
Lorsqu'une nouvelle tâche démarre, l'agent de conteneur Amazon ECS extrait la version la plus récente de l'image et de l'étiquette spécifiées afin que le conteneur puisse les utiliser. Notez cependant que les mises à jour ultérieures apportées à une image de référentiel ne sont pas répercutées sur les tâches déjà en cours d'exécution.
-
Lorsque vous ne spécifiez pas de balise ou de résumé dans le chemin de l'image dans la définition de la tâche, l'agent de conteneur Amazon ECS extrait la dernière version de l'image spécifiée.
-
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 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:tag
ouregistry/repository@digest
(par exemple,aws_account_id
.dkr.ecr.region
.amazonaws.com/
oumy-web-app
:latest
aws_account_id
.dkr.ecr.region
.amazonaws.com/
).my-web-app
@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE
-
Images dans les référentiels officiels sur Docker Hub utilisez un seul nom (par exemple,
ubuntu
oumongo
). -
Images dans d'autres référentiels sur Docker Hub sont qualifiés par le nom d'une 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
|disabled
Obligatoire : non
Spécifie si Amazon ECS transformera 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 comme suitdisabled
, Amazon ECS ne transformera pas la balise d'image du conteneur en résumé 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 de l'image du conteneur, consultezRésolution d'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
memory
de la tâche, si cette valeur est spécifiée. Ce paramètre correspondMemory
à la commande docker create-container et à l'option--memory
docker run.Si vous utilisez le type de lancement Fargate, ce paramètre est facultatif.
Si vous utilisez le type de EC2 lancement, vous devez spécifier une valeur de mémoire au niveau de la tâche ou au niveau du conteneur. Si vous spécifiez à la fois une valeur de
memory
au niveau du conteneur et une valeurmemoryReservation
, la valeur dememory
doit être supérieure à celle dememoryReservation
. 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 valeurmemory
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 Réservation de mémoire d'instance de conteneur Amazon ECS Linux.
memoryReservation
-
Type : entier
Obligatoire : non
La limite flexible (en Mio) de mémoire à réserver pour le conteneur. Lorsque la mémoire du système est bloquée, Docker tente de maintenir la mémoire du conteneur à cette limite souple. 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 correspondMemoryReservation
à la commande docker create-container et à l'option--memory-reservation
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
oumemoryReservation
dans une définition de conteneur. Si vous spécifiez les deux,memory
doit ê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 valeurmemory
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 strictememory
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 Réservation de mémoire d'instance de conteneur Amazon ECS Linux.
Mappages de port
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. Il est également utilisé pour la communication entre conteneurs dans le cadre d'une même tâche.
Pour les définitions de tâches (Fargate EC2 et type de lancement) qui utilisent
awsvpc
le mode réseau, spécifiez uniquement le.containerPort
LehostPort
est toujours ignoré et le port du conteneur est automatiquement mappé à un port aléatoire à numéro élevé sur l'hôte.Les mappages de ports sur Windows utilisent l'adresse de passerelle
NetNAT
plutôt quelocalhost
. 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
) sont mappésPortBindings
dans la commande docker create-container et dans l'option--publish
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
networkBindings
de la sortie de la commande describe-tasks. -
API : la réponse
DescribeTasks
. -
Métadonnées : point de terminaison des métadonnées de la tâche.
appProtocol
-
Type : chaîne
Obligatoire : non
Protocole d'application utilisé pour le mappage de port. Ce paramètre s'applique uniquement à Service Connect. Nous vous conseillons de définir ce paramètre de manière cohérente avec le protocole que votre application utilise. Si vous définissez ce paramètre, Amazon ECS ajoute une gestion de connexion spécifique au protocole au proxy Service Connect. Si vous définissez ce paramètre, Amazon ECS ajoute une télémétrie spécifique au protocole dans la console Amazon ECS et. CloudWatch
Si vous ne définissez aucune valeur pour ce paramètre, le protocole TCP est utilisé. Toutefois, Amazon ECS n'ajoute pas de télémétrie spécifique au protocole pour TCP.
Pour de plus amples informations, veuillez consulter 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
portMappings
sont 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 qui utilisent le type de lancement Fargate EC2 ou les tâches qui utilisent
awsvpc
le mode réseau, vous devez spécifier lescontainerPort
ports exposés.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 avec le type de EC2 lancement et que vous spécifiez un port de conteneur et non un port hôte. Ensuite, votre conteneur reçoit automatiquement un port hôte dans la plage de ports éphémères. Pour de plus amples informations, veuillez consulter
hostPort
. Les mappages de ports qui sont automatiquement affectés de cette façon ne sont pas comptabilisés dans le quota des 100 ports réservés d'une instance de conteneur. containerPortRange
-
Type : chaîne
Obligatoire : non
Plage de numéros de port du conteneur liée à la plage de ports hôtes mappés dynamiquement.
Vous ne pouvez définir ce paramètre qu'à l'aide de l'API
register-task-definition
. L'option est disponible dans le paramè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
bridge
ou le mode réseauawsvpc
. -
Ce paramètre est disponible pour les types de lancement Fargate 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 dehostPortRange
est définie comme suit :-
Pour les conteneurs d'une tâche en mode réseau
awsvpc
, lehostPort
est défini sur la même valeur que lecontainerPort
. 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 recommande de désactiver le docker-proxy dans Docker fichier de configuration du démon lorsque vous avez un grand nombre de ports.
Pour plus d'informations, consultez le numéro #11185
sur GitHub. Pour plus d'informations sur la façon de désactiver le docker-proxy dans le Docker fichier de configuration du démon, voir Docker daemon dans le manuel Amazon ECS Developer Guide.
Vous pouvez appeler
DescribeTasks
pour voir lahostPortRange
correspondant aux ports hôtes liés aux ports de conteneur.Les plages de ports ne sont pas incluses dans les événements de tâches Amazon ECS, qui sont envoyés à EventBridge. Pour de plus amples informations, veuillez consulter Automatisez les réponses aux erreurs Amazon ECS à l'aide de EventBridge.
-
hostPortRange
-
Type : chaîne
Obligatoire : non
Plage de numéros de port sur l'hôte utilisée avec la liaison réseau. Ceci est attribué par Docker et livré 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 quecontainerPort
.Supposons que vous utilisiez des conteneurs dans une tâche de type EC2 lancement. 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 sur0
) lorsque vous spécifiez uncontainerPort
. Votre conteneur reçoit automatiquement un port dans la plage de ports éphémères pour le système d'exploitation de votre instance de conteneur et Docker version. C'est ce que l'on appelle le mappage dynamique des ports hôtes.La plage de ports éphémères par défaut Docker les versions 1.6.0 et ultérieures sont répertoriées sur l'instance ci-dessous.
/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–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
22
pour SSH, Docker ports2375
et2376
, et les ports de l'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 champremainingResources
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 : String
Obligatoire : Non, obligatoire pour que Service Connect et VPC Lattice soient configurés dans un service
Nom utilisé pour le mappage de port. Ce paramètre s'applique uniquement à Service Connect et à VPC Lattice. Ce paramètre est le 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
tcp
etudp
. L’argument par défaut esttcp
.Important
Seul
tcp
est pris en charge pour Service Connect. N'oubliez pas quetcp
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 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
repositoryCredentials
sont 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
" } } ]
-
Paramètres de définition de conteneur avancés
Les paramètres de définition de conteneur avancés suivants fournissent des fonctionnalités étendues à la commande docker run utilisée pour lancer des conteneurs sur vos instances de conteneur Amazon ECS.
Rubriques
Politique de redémarrage
restartPolicy
-
Politique de redémarrage du conteneur et 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émarrer des conteneurs individuels dans des tâches Amazon ECS avec des 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 ne tentera pas de redémarrer. 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
Période (en secondes) pendant laquelle le conteneur doit fonctionner avant de pouvoir tenter de redémarrer. Un conteneur ne peut être redémarré qu'une fois par
restartAttemptPeriod
seconde. Si un conteneur n'est pas en mesure de fonctionner pendant cette période et qu'il sort plus tôt que prévu, il ne sera pas redémarré. Vous pouvez définir un minimumrestartAttemptPeriod
de 60 secondes et un maximumrestartAttemptPeriod
de 1800 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
CMD
pour exécuter directement les arguments de la commande, ou parCMD-SHELL
pour exécuter la commande avec le shell par défaut du conteneur. Si vous n'en spécifiez aucun,CMD
est utilisé.Lorsque vous enregistrez une définition de tâche dans le AWS Management Console, utilisez une liste de commandes séparées par des virgules. Ces commandes sont converties en une chaîne une fois la définition de tâche créée. Un exemple d'entrée pour une surveillance de l'état est le suivant.
CMD-SHELL, curl -f http://localhost/ || exit 1
Lorsque vous enregistrez une définition de tâche à l'aide du AWS CLI panneau AWS Management Console JSON APIs, placez la liste des commandes entre crochets. Un exemple d'entrée pour une surveillance de l'état est le suivant.
[ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ]
Un code de sortie de 0, avec aucune sortie
stderr
, indique la réussite et un code de sortie autre que zéro indique qu'il s'agit d'un échec. interval
-
La durée (en secondes) entre chaque surveillance de l'état. Vous pouvez indiquer une durée comprise entre 5 et 300 secondes. La valeur par défaut est de 30 secondes.
timeout
-
La durée (en secondes) d'attente pour qu'une surveillance de l'état réussisse avant qu'elle ne soit considérée comme un échec. Vous pouvez indiquer une durée comprise entre 2 et 60 secondes. La valeur par défaut est de 5 secondes.
retries
-
Nombre de nouvelles tentatives d'exécution d'une surveillance de l'état ayant échoué avant que le conteneur soit considéré comme défectueux. Vous pouvez indiquer un nombre de tentatives compris en 1 et 10. La valeur par défaut est 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.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
cpu
que l'agent de conteneur Amazon ECS réserve pour le conteneur. Sous Linux, ce paramètre correspondCpuShares
à la section Créer un conteneur. 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 disponibles pour chaque type d' EC2 instance Amazon. Pour ce faire, multipliez le nombre de v CPUs répertorié pour ce type d'instance sur la page détaillée EC2des instances Amazon
par 1 024. Linux les conteneurs partagent des unités de processeur non allouées avec d'autres conteneurs de l'instance de conteneur avec le même ratio que leur 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.
Activé Linux les instances de conteneur, les Docker le démon de l'instance de conteneur utilise la valeur du processeur pour calculer les ratios relatifs de partage du processeur pour l'exécution des conteneurs. La valeur de partage de processeur valide minimale autorisée par le noyau Linux est de 2, et la valeur maximale de partage de processeur valide autorisée par le noyau Linux est de 262 144. Cependant, le paramètre CPU n'est pas obligatoire et vous pouvez utiliser des valeurs de processeur inférieures à deux et supérieures à 262144 dans vos définitions de conteneur. Pour les valeurs de processeur inférieures à deux (y compris null) et supérieures à 262144, le comportement varie en fonction de la version de votre agent de conteneur Amazon ECS :
-
Versions de l'agent <= 1.1.0 : les valeurs de processeur nulles et nulles sont transmises à Docker comme 0. Docker convertit ensuite cette valeur en 1 024 partages de processeur. Les valeurs CPU de un sont transmises à Docker en tant que tel, lequel Linux le noyau est converti en deux partages de processeur.
-
Versions de l'agent >= 1.2.0 : les valeurs nulles, nulles et de processeur égales à un sont transmises à Docker sous la forme de deux partages de processeur.
-
Versions de l'agent >= 1.84.0 : les valeurs de processeur supérieures à 256 vCPU sont transmises à Docker comme 256, ce qui équivaut à 262 144 partages de processeur.
Activé Windows instances de conteneur, le quota de processeur est appliqué en tant que quota absolu. Windows les conteneurs ont uniquement accès à la quantité de CPU spécifiée dans la définition de la tâche. Une valeur de processeur nulle ou nulle est transmise à Docker comme
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 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 du GPU.Note
Ce paramètre n'est pas pris en charge pour Windows conteneurs ou conteneurs hébergés sur Fargate.
Elastic Inference accelerator
-
Type : objet ResourceRequirement
Obligatoire : non
Pour le type
InferenceAccelerator
,value
correspond àdeviceName
d'unInferenceAccelerator
spécifié dans une définition de tâche. Pour de plus amples informations, veuillez consulter Nom de l'accélérateur Elastic Inference.Note
Ce paramètre n'est pas pris en charge pour Windows conteneurs ou conteneurs hébergés sur Fargate.
essential
-
Type : booléen
Obligatoire : non
Supposons que le paramètre
essential
d'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ètreessential
d'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
Cmd
à la commande create-container et auCOMMAND
paramètre à docker run. S'il existe plusieurs arguments, assurez-vous que chaque argument est une chaîne séparée dans le tableau."command": ["string", ...]
workingDirectory
-
Type : chaîne
Obligatoire : non
Répertoire de travail dans lequel exécuter les commandes à l'intérieur du conteneur. Ce paramètre correspond à
WorkingDir
dans la section Create a container(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 correspond à l'
--env-file
option de la commande docker run.Lorsque FIPS est activé sur un hôte à l'aide du type de EC2 lancement, les noms des compartiments comportant des points (.) (par exemple, amzn-s3-demo-bucket1.name.example) ne sont pas pris en charge. La présence de points (.) dans le nom du compartiment empêche le démarrage de la tâche car l'agent ne peut pas extraire le fichier de variables d'environnement depuis Amazon S3.
Ce n'est pas disponible pour Windows conteneurs et conteneur Windows sur Fargate
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 Transmettre 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
Env
à la commande docker create-container et à l'option--env
à 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
environment
est utiliséNom de la variable d'environnement.
value
-
Type : String
Obligatoire : oui lorsque
environment
est utiliséValeur de la variable d'environnement.
"environment" : [ { "name" : "string", "value" : "string" }, { "name" : "string", "value" : "string" } ]
secrets
-
Type : tableau d'objets
Obligatoire : non
Objet représentant le secret à exposer à votre conteneur. Pour de plus amples informations, veuillez consulter Transférer des 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
" } ]
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.
Note
Ce paramètre n'est pas pris en charge pour Windows conteneurs ou tâches utilisant le mode
awsvpc
réseau.L’argument par défaut est
false
."disableNetworking": true|false
links
-
Type : tableau de chaînes
Obligatoire : non
Le paramètre
link
permet aux conteneurs de communiquer entre eux sans avoir besoin de définir des mappages de ports. Ce paramètre n'est pris en charge que si le mode réseau d'une définition de tâche est défini surbridge
. Laname:internalName
construction est analogue à celle dename:alias
Docker liens. Jusqu'à 255 lettres (majuscules et minuscules), chiffres, traits d'union et traits de soulignement sont autorisés.Note
Ce paramètre n'est pas pris en charge pour Windows conteneurs ou tâches utilisant le mode
awsvpc
réseau.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
au docker create-container et à l'option--hostname
docker run.Note
Si vous utilisez le mode réseau
awsvpc
, le paramètrehostname
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.
Note
Ce paramètre n'est pas pris en charge pour Windows conteneurs ou tâches utilisant le mode
awsvpc
réseau."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 à l'option
--dns-search
docker runDnsSearch
dans la commande docker create-container.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
à la commande docker create-container et à l'option--add-host
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 : String
Obligatoire : oui, lorsque des objets
extraHosts
sont utilisésNom d'hôte à utiliser dans l'entrée
/etc/hosts
. ipAddress
-
Type : String
Obligatoire : oui, lorsque des objets
extraHosts
sont 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 à l'option
--read-only
docker runReadonlyRootfs
dans la commande docker create-container.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
à l'API Docker create-container et--volume
à l'option 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
mountPoints
sont utilisésNom du volume à monter.
containerPath
-
Type : String
Obligatoire : oui, lorsque des objets
mountPoints
sont 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
VolumesFrom
à la commande docker create-container et à l'option--volumes-from
docker run.sourceContainer
-
Type : String
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 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 Exemples de définitions de tâches Amazon ECS.
Ce paramètre correspond
LogConfig
à la commande docker create-container et à l'option--log-driver
docker run. Par défaut, les conteneurs utilisent le même pilote de journalisation que le Docker le daemon utilise. Cependant, le conteneur peut utiliser un pilote de journalisation différent de celui du Docker daemon en spécifiant un pilote de journal avec ce paramètre dans la définition du 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 disponibles pour Docker démon. 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 du Docker API distante sur votre instance de conteneur.
-
Pour les tâches qui utilisent le type de EC2 lancement, l'agent de conteneur Amazon ECS qui s'exécute sur une instance de conteneur doit enregistrer les pilotes de journalisation disponibles sur cette instance avec la variable d'
ECS_AVAILABLE_LOGGING_DRIVERS
environnement avant que les conteneurs placés sur cette instance puissent utiliser ces options de configuration de journal. Pour de plus amples informations, veuillez consulter Configuration de l'agent de conteneur Amazon ECS. -
Pour les tâches utilisant le type de lancement Fargate, vous devez installer tout logiciel supplémentaire en dehors de la tâche. Par exemple, le Fluentd des agrégateurs de sortie ou un hôte distant exécutant Logstash pour envoyer Gelf se connecte à.
"logConfiguration": { "logDriver": "awslogs","fluentd","gelf","json-file","journald","logentries","splunk","syslog","awsfirelens", "options": {"
string
": "string
" ...}, "secretOptions": [{ "name": "string
", "valueFrom": "string
" }] }logDriver
-
Type : String
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
etawsfirelens
.Pour les tâches utilisant le type de EC2 lancement, les pilotes de journal pris en charge sont
awslogs
fluentd
gelf
json-file
,,journald
,logentries
,syslog
,splunk
, etawsfirelens
.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, consultezEnvoyez les journaux Amazon ECS à CloudWatch .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.
Les options que vous pouvez spécifier dépendent du pilote de journal. Certaines des options que vous pouvez spécifier lorsque vous utilisez le
awslogs
routeur pour acheminer les journaux vers Amazon CloudWatch sont les suivantes :awslogs-create-group
-
Obligatoire : non
Spécifiez si vous souhaitez que le groupe de journaux soit créé automatiquement. Si cette option n'est pas spécifiée, l'emplacement par défaut est
false
.Note
Votre politique IAM doit inclure l'autorisation
logs:CreateLogGroup
afin que vous puissiez essayer d'utiliserawslogs-create-group
. awslogs-region
-
Obligatoire : oui
Spécifiez Région AWS le pilote de
awslogs
journal auquel envoyer vos journaux Docker. Vous pouvez choisir d'envoyer tous vos journaux provenant de clusters situés dans différentes régions vers une seule région dans CloudWatch Logs. Cela leur permet d'être tous visibles en un seul endroit. Sinon, vous pouvez les séparer par région pour plus de granularité. Assurez-vous que le groupe de journaux spécifié existe dans la région que vous spécifiez avec cette option. awslogs-group
-
Obligatoire : oui
Assurez-vous de spécifier un groupe de journaux auquel le pilote de journaux
awslogs
envoie ses flux de journaux. awslogs-stream-prefix
-
Obligatoire : . Facultatif pour le type de EC2 lancement, obligatoire pour le type de lancement Fargate.
Utilisez l'option
awslogs-stream-prefix
pour associer un flux de journaux au préfixe spécifié, au nom du conteneur et à l'ID de la tâche Amazon ECS à laquelle appartient le conteneur. Si vous spécifiez un préfixe avec cette option, le format du flux de journaux est le suivant.prefix-name
/container-name
/ecs-task-id
Si vous ne spécifiez pas de préfixe avec cette option, le flux de journaux est nommé d'après l'ID de conteneur attribué par le démon Docker sur l'instance de conteneur. Etant donné qu'il est difficile de suivre les journaux jusqu'au conteneur qui les a envoyé en utilisant uniquement l'ID de conteneur Docker (qui est uniquement disponible sur l'instance de conteneur), nous vous recommandons de spécifier un préfixe avec cette option.
Pour les services Amazon ECS, vous pouvez utiliser le nom du service comme préfixe. Ce faisant, vous pourrez suivre les flux de journaux et déterminer le service auquel appartient le conteneur, trouver le nom du conteneur qui les a envoyés, ainsi que l'ID de la tâche à laquelle le conteneur appartient.
Vous devez spécifier un préfixe de flux pour vos journaux pour qu'ils apparaissent dans le panneau des journaux lors de l'utilisation de la console Amazon ECS.
awslogs-datetime-format
-
Obligatoire : non
Cette option définit un modèle de démarrage à plusieurs lignes au format
strftime
Python. Un message de journal est composé de plusieurs lignes : une ligne correspondant au modèle et les lignes suivantes qui ne correspondent pas au modèle. La ligne mise en correspondance est le délimiteur entre les messages de journalisation.Ce format peut, par exemple, servir à analyser une sortie comme une pile de vidage, laquelle pourrait, dans le cas contraire, être consignée en plusieurs entrées. Le modèle adéquat permet de la capturer dans une seule entrée.
Pour de plus amples informations, veuillez consulter awslogs-datetime-format
. Vous ne pouvez pas configurer à la fois les options
awslogs-datetime-format
etawslogs-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-format
est également configuré.Vous ne pouvez pas configurer à la fois les options
awslogs-datetime-format
etawslogs-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
|blocking
Cette option définit le mode de livraison des messages de journal du conteneur au pilote du
awslogs
journal. Le mode de livraison que vous choisissez affecte la disponibilité des applications lorsque le flux de logs provenant du conteneur est interrompu.Si vous utilisez le
blocking
mode et que le flux de logs CloudWatch est interrompu, les appels provenant du code du conteneur pour écrire dans lesstderr
fluxstdout
et 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 journal grâce au mode non bloquant dans le pilote de journal duawslogs
conteneur. max-buffer-size
-
Obligatoire : non
Valeur par défaut :
1m
Quand le mode
non-blocking
est utilisé, l'option de journalisationmax-buffer-size
contrôle la taille de la mémoire tampon utilisée pour le stockage des messages intermédiaires. Assurez-vous de spécifier une taille de mémoire tampon adéquate en fonction de votre application. Lorsque la mémoire tampon est pleine, il est impossible de stocker d'autres journaux. Les journaux qui ne peuvent pas être stockés sont perdus.
Pour acheminer les journaux à l'aide du
splunk
routeur de journaux, vous devez spécifier asplunk-token
etsplunk-url
a.Lorsque vous utilisez le routeur de
awsfirelens
journaux pour acheminer les journaux vers une AWS Partner Network destination Service AWS ou à des fins de stockage et d'analyse des journaux, vous pouvez définir l'log-driver-buffer-limit
option permettant de limiter le nombre d'événements mis en mémoire tampon avant d'être envoyés au conteneur du routeur de journaux. Cela peut aider à résoudre un problème potentiel de perte de journal, car un débit élevé peut entraîner une pénurie de mémoire pour la mémoire tampon à l'intérieur de Docker. Pour plus d'informations, consultezConfiguration des journaux Amazon ECS pour un débit élevé.Les autres options que vous pouvez spécifier lors de l'utilisation
awsfirelens
pour acheminer les journaux dépendent de la destination. Lorsque vous exportez des journaux vers Amazon Data Firehose, vous pouvez spécifier le Région AWS formatregion
et le nom du flux de journaux.delivery_stream
Lorsque vous exportez des journaux vers Amazon Kinesis Data Streams, vous pouvez spécifier Région AWS un
region
with et un nomstream
de flux de données avec.Lorsque vous exportez des journaux vers Amazon OpenSearch Service, vous pouvez spécifier des options telles que
Name
Host
(point de terminaison de OpenSearch service sans protocole)Port
Index
Type
,Aws_auth
,Aws_region
,,Suppress_Type_Name
, ettls
.Lorsque vous exportez des journaux vers Amazon S3, vous pouvez spécifier le compartiment à l'aide de l'
bucket
option. Vous pouvez également spécifierregion
,total_file_size
upload_timeout
, etuse_put_object
en tant qu'options.Ce paramètre nécessite la version 1.19 de l'API Docker à distance ou une version supérieure sur votre instance de conteneur.
secretOptions
-
Type : tableau d'objets
Obligatoire : non
Objet qui représente le secret à transmettre à la configuration de journal. Les secrets utilisés dans la configuration du journal peuvent inclure un jeton d'authentification, un certificat ou une clé de chiffrement. Pour de plus amples informations, veuillez consulter Transférer des 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
La 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
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:::
. Pour de plus amples informations, veuillez consulter Exemple de définition de tâche Amazon ECS : acheminer les journaux vers FireLens.amzn-s3-demo-bucket
/fluent.conf|filepath"} type
-
Type : String
Obligatoire : oui
Routeur de journal à utiliser. Les valeurs valides sont
fluentd
oufluentbit
.
Sécurité
Pour plus d'informations sur la sécurité des conteneurs, consultez les meilleures pratiques en matière de sécurité des conteneurs et des tâches Amazon ECS.
credentialSpecs
-
Type : tableau de chaînes
Obligatoire : non
Liste des informations contenues ARNs dans SSM ou Amazon S3 dans un fichier de spécifications d'identification (
CredSpec
) qui configure le conteneur pour l'authentification Active Directory. Nous vous recommandons d'utiliser ce paramètre plutôt que lesdockerSecurityOptions
. Le nombre maximum de ARNs est 1.Il existe deux formats pour chaque ARN.
- credentialspecdomainless:MyARN
-
Vous utilisez
credentialspecdomainless:MyARN
pour fournir unCredSpec
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 unCredSpec
pour un domaine unique.Vous devez joindre l'instance de conteneur au domaine avant de démarrer toute tâche utilisant cette définition de tâche.
Dans les deux formats, remplacez
MyARN
par l'ARN dans SSM ou Amazon S3.Le
credspec
doit fournir un ARN dans Secrets Manager pour un secret contenant le nom d'utilisateur, le mot de passe et le domaine auquel se connecter. Pour une meilleure sécurité, l'instance n'est pas jointe au domaine pour l'authentification sans domaine. Les autres applications de l'instance ne peuvent pas utiliser les informations d'identification sans domaine. Vous pouvez utiliser ce paramètre pour exécuter des tâches sur la même instance, même si les tâches doivent être jointes à différents domaines. Pour plus d'informations, consultez les sections Utilisation de g MSAs pour les conteneurs Windows et Utilisation de g MSAs 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 avecprivileged
. 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'utiliserprivileged
.Ce paramètre correspond
Privileged
à la commande docker create-container et à l'option--privileged
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
à la commande docker create-container et à l'option--user
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é. Ce champ n'est pas valide pour les conteneurs dans les tâches qui utilisent le type de lancement Fargate.
Dans Linux tasks on EC2, ce paramètre peut être utilisé pour référencer des étiquettes personnalisées pour SELinux and AppArmor systèmes de sécurité à plusieurs niveaux.
Pour toutes les tâches sur EC2, ce paramètre peut être utilisé pour référencer un fichier de spécifications d'identification qui configure un conteneur pour l'authentification Active Directory. Pour plus d’informations, consultez Découvrez comment utiliser les conteneurs g MSAs pour EC2 Windows pour Amazon ECS et Utilisation gMSA pour EC2 Linux conteneurs sur Amazon ECS.
Ce paramètre correspond
SecurityOpt
à la commande docker create-container et à l'option--security-opt
docker run."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
ouECS_APPARMOR_CAPABLE=true
pour que les conteneurs placés sur cette instance puissent utiliser ces options de sécurité. Pour de plus amples informations, veuillez consulter Configuration de l'agent de conteneur Amazon ECS.
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 correspondUlimits
à la commande docker create-container et à l'option--ulimit
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 ressourcesnofile
restreint le nombre de fichiers ouverts qu'un conteneur peut utiliser. Sur Fargate, la limite flexible par défautnofile
est65535
et la limite stricte est65535
. 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 : String
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ésLe
type
d'ulimit
. hardLimit
-
Type : entier
Obligatoire : oui, lorsque des objets
ulimits
sont utilisésLa limite stricte du type
ulimit
. La valeur peut être spécifiée en octets, en secondes ou en tant que nombre, selon letype
ulimit
. softLimit
-
Type : entier
Obligatoire : oui, lorsque des objets
ulimits
sont utilisésLa limite flexible du type
ulimit
. La valeur peut être spécifiée en octets, en secondes ou en tant que nombre, selon letype
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
à la commande docker create-container et à l'option--label
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 de plus amples informations, veuillez consulter Création d'une définition de tâche Amazon ECS à l'aide de la console.
Rubriques
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 pour Windows conteneurs.
"linuxParameters": { "capabilities": { "add": ["string", ...], "drop": ["string", ...] } }
capabilities
-
Type : objet KernelCapabilities
Obligatoire : non
Le Linux fonctionnalités du conteneur qui sont ajoutées ou supprimées par rapport à la configuration par défaut fournie par Docker. Pour plus d'informations à ce sujet Linux capacités, consultez la page de manuel de capabilities (7)
Linux. 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
Le Linux capacités que le conteneur peut ajouter à la configuration par défaut fournie par Docker. Ce paramètre correspond
CapAdd
à la commande docker create-container et à l'option--cap-add
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
Le Linux capacités que le conteneur peut ajouter à la configuration par défaut fournie par Docker. Ce paramètre correspond
CapAdd
à la commande docker create-container et à l'option--cap-add
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
Le Linux capacités que le conteneur peut supprimer de la configuration par défaut fournie par Docker. Ce paramètre correspond
CapDrop
à la commande docker create-container et à l'option--cap-drop
docker run.
devices
-
Tous les périphériques hôtes à exposer au conteneur. Ce paramètre correspond
Devices
à la commande docker create-container et à l'option--device
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 : String
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
etmknod
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 correspond à l'--init
option 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 traduit en
--memory-swap
option docker run où la valeur est la somme de la mémoire du conteneur plus lamaxSwap
valeur.Si la valeur
0
est spécifiée pourmaxSwap
, le conteneur n'utilise pas l'échange. Les valeurs acceptées sont0
ou n'importe quel nombre entier positif. Si le paramètremaxSwap
n'est pas spécifié, le conteneur utilise la configuration d'échange pour l'instance de conteneur sur laquelle il s'exécute. Une valeurmaxSwap
doit être définie pour que le paramètreswappiness
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 correspond à l'--shm-size
option 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
de0
empêche l'échange de se produire à moins que cela ne soit nécessaire. Une valeurswappiness
de100
entraîne fréquemment l'échange de pages. Les valeurs acceptées sont les nombres entiers compris entre0
et100
. Si vous ne spécifiez aucune valeur, la valeur par défaut60
est utilisée. De plus, si vous ne spécifiez pas de valeur pourmaxSwap
, ce paramètre est ignoré. Ce paramètre correspond à l'--memory-swappiness
option 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
-
Le chemin du conteneur, les options de montage et la taille maximale (en MiB) du tmpfs monture. Ce paramètre correspond à l'
--tmpfs
option 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
-
Le chemin de fichier absolu où tmpfs le volume doit être monté.
Type : String
Obligatoire : oui
mountOptions
-
La liste des tmpfs options de montage du volume.
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
-
La taille maximale (en MiB) du tmpfs volume.
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 EC2 instances Amazon, les instances nécessitent au moins une version
1.26.0
de l'agent de conteneur pour activer les dépendances entre les conteneurs. 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 version1.26.0-1
du packageecs-init
. Si vos instances de conteneur sont lancées à partir de la version20190301
ou ultérieure, elles contiennent les versions requises de l'agent de conteneur etecs-init
. Pour de plus amples informations, veuillez consulter Linux optimisé pour Amazon ECS AMIs.Pour les tâches Amazon ECS hébergées sur Fargate, ce paramètre nécessite que la tâche ou le service utilise une version de plate-forme
1.3.0
ou 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 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 aucontainerB
avec un étatCOMPLETE
,SUCCESS
ouHEALTHY
. Si une valeurstartTimeout
est spécifiée pourcontainerB
et qu'il n'a pas atteint l'état souhaité dans ce délai, alors lecontainerA
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 nécessite que la tâche ou le service utilise une version de plate-forme
1.3.0
ou 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 nécessite que la tâche ou le service utilise une version de plate-forme
1.3.0
ou ultérieure (Linux). Si le paramètre n'est pas spécifié, la valeur par défaut de 30 secondes est utilisée. La valeur maximale de Fargate est de 120 secondes.Pour les tâches qui utilisent le type de EC2 lancement, si le
stopTimeout
paramètre n'est pas spécifié, la valeur définie pour la variable de configuration de l'agent de conteneur Amazon ECSECS_CONTAINER_STOP_TIMEOUT
est utilisée. Si ni lestopTimeout
paramètre ni la variable de configuration de l'ECS_CONTAINER_STOP_TIMEOUT
agent ne sont définis, les valeurs par défaut de 30 secondes pour Linux conteneurs et 30 secondes plus tard Windows des conteneurs sont utilisés. 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 packageecs-init
. Si vos instances de conteneur sont lancées à partir de la version20190301
ou ultérieure, elles contiennent les versions requises de l'agent de conteneur etecs-init
. Pour de plus amples informations, veuillez consulter Linux optimisé pour Amazon ECS AMIs.
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
à la commande docker create-container et à l'option--sysctl
docker run. Par exemple, vous pouvez configurer le paramètrenet.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éseauawsvpc
ouhost
. 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ètresystemControls
pour un conteneur, il s'applique à tous les conteneurs de la tâche. Si vous définissez différents paramètressystemControls
pour plusieurs conteneurs dans une seule tâche, c'est le conteneur qui est démarré en dernier qui détermine le paramètresystemControls
qui prend effet. -
Les définitions de tâche qui utilisent le mode réseau
host
, l'espace de nomssystemControls
ne sont pas prises en charge.
Si vous définissez un espace de noms des ressources IPC à utiliser pour les conteneurs de la tâche, les conditions suivantes s'appliquent aux contrôles de système. Pour de plus amples informations, veuillez consulter Mode IPC.
-
Pour les tâches qui utilisent le mode IPC
host
, lessystemControls
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 dessystemControls
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"
, etSysctls
qui commencent par"fs.mqueue.*"
Valeurs d'espace de noms réseau valides :
Sysctls
qui commencent"net.*"
par. Sur Fargate, seuls les espaces deSysctls
noms existant dans le conteneur sont acceptés.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é 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'unestdin
ou d'untty
. Ce paramètre correspondOpenStdin
à la commande docker create-container et à l'option--interactive
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 correspondTty
à la commande docker create-container et à l'option--tty
docker run.L’argument par défaut est
false
.
Nom de l'accélérateur Elastic Inference
L'exigence de la ressource d'accélérateur Elastic Inference pour votre définition de tâche.
Note
Amazon Elastic Inference (EI) n'est plus disponible pour les clients.
Les paramètres suivants sont autorisés dans une définition de tâche :
deviceName
-
Type : String
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 : String
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 EC2 lancement, vous pouvez utiliser des contraintes pour placer les tâches en fonction de la zone de disponibilité, du type d'instance ou d'attributs personnalisés. Pour de plus amples informations, veuillez consulter Dé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 de plus amples informations, veuillez consulter Création d'expressions pour définir des instances de conteneur pour les tâches Amazon ECS.
type
-
Type : String
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 EC2 lancement, les instances de conteneur nécessitent au moins la version 1.26.0 de l'agent de conteneur et au moins la version 1.26.0-1 du
ecs-init
package pour activer une configuration de proxy. Si vos instances de conteneur sont lancées à partir de la version d'AMI20190301
ou ultérieure optimisée pour Amazon ECS, elles contiennent les versions requises de l'agent de conteneur etecs-init
. Pour de plus amples informations, veuillez consulter Linux optimisé pour Amazon ECS AMIs.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 : String
Valeur valeurs :
APPMESH
Obligatoire : non
Type de proxy. La seule valeur prise en charge est
APPMESH
. containerName
-
Type : String
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ètreuser
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ètreuser
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
etProxyEgressPort
. -
ProxyIngressPort
– (Obligatoire) Spécifie le port auquel le trafic entrant versAppPorts
est dirigé. -
ProxyEgressPort
– (Obligatoire) Spécifie le port auquel le trafic sortant deAppPorts
est dirigé. -
EgressIgnoredPorts
– (Obligatoire) Le trafic sortant accédant à ces ports spécifiés est ignoré et n'est pas redirigé vers leProxyEgressPort
. 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 leProxyEgressPort
. 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 daemon sur une instance de conteneur, qui devient alors 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 de plus amples informations, veuillez consulter Utiliser des volumes Amazon EBS avec Amazon ECS.
-
Volumes Amazon EFS : fournit un stockage de fichiers simple, évolutif et permanent à utiliser avec vos tâches Amazon ECS. Avec Amazon EFS, la capacité de stockage est élastique. Elle augmente et diminue automatiquement au fil de vos ajouts et suppressions de fichiers. Vos applications peuvent disposer de l'espace de stockage dont elles ont besoin, au moment où elles en ont besoin. Les volumes Amazon EFS sont pris en charge pour les tâches hébergées sur des instances Fargate ou EC2 Amazon. Pour de plus amples informations, veuillez consulter Utiliser les volumes Amazon EFS avec Amazon ECS.
-
FSx pour les volumes de serveurs de fichiers Windows : fournit des serveurs de fichiers Microsoft Windows entièrement gérés. Ces serveurs de fichiers sont basés sur un système de fichiers Windows. Lorsque vous utilisez FSx un serveur de fichiers Windows avec Amazon ECS, vous pouvez fournir à vos tâches Windows un stockage de fichiers persistant, distribué, partagé et statique. Pour de plus amples informations, veuillez consulter Utilisation FSx pour les volumes de serveurs de fichiers Windows avec Amazon ECS.
Les conteneurs Windows sur Fargate ne prennent pas en charge cette option.
-
Volumes Docker : volume géré par Docker créé sous
/var/lib/docker/volumes
l'instance Amazon hôte. EC2 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 volumelocal
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 EC2 instances Amazon. Les conteneurs Windows ne prennent en charge que l'utilisation dulocal
pilote. Pour utiliser des volumes Docker, spécifiez undockerVolumeConfiguration
dans votre définition de tâche. -
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 EC2 Amazon. Pour utiliser des volumes hôte de montage lié, spécifiez un
host
et éventuellement une valeursourcePath
dans votre définition de tâche.
Pour de plus amples informations, veuillez consulter Options de stockage pour les tâches Amazon ECS.
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 lesourceVolume
paramètre de l'mountPoints
objet de définition du conteneur. host
-
Obligatoire : non
Le
host
paramètre est utilisé pour lier le cycle de vie du montage de liaison à l' EC2 instance Amazon hôte, plutôt qu'à la tâche et à l'endroit où elle est stockée. Si le paramètrehost
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 n'est pris en charge que lors de l'utilisation de tâches hébergées sur EC2 des instances Amazon.sourcePath
-
Type : chaîne
Obligatoire : non
Lorsque le
host
paramètre est utilisé, spécifiez asourcePath
pour déclarer le chemin sur l' EC2 instance Amazon 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 lehost
paramètre contient un emplacement desourcePath
fichier, le volume de données est conservé à l'emplacement spécifié sur l' EC2 instance Amazon hôte jusqu'à ce que vous le supprimiez manuellement. Si lasourcePath
valeur n'existe pas sur l' EC2 instance Amazon 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 sur
true
, vous pouvez configurer le volume lors de l'exécution d'une tâche autonome ou lors de la création ou de la mise à jour d'un service. Lorsque 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 surtrue
pour configurer un volume Amazon EBS à associer à une tâche. Le paramétrageconfiguredAtLaunch
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 Volumes Amazon EBS. 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 EC2 instances. 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ètrehost
.scope
-
Type : String
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 commeshared
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 siscope
c'est le casshared
. Si telscope
est le castask
, ce paramètre doit être omis. driver
-
Type : chaîne
Obligatoire : non
Pilote de volume Docker à utiliser. La valeur du pilote doit correspondre au nom du pilote fourni par Docker car ce nom est utilisé pour le placement des tâches. Si le pilote a été installé à l'aide de 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. driverOpts
-
Type : chaîne
Obligatoire : non
Une carte des options spécifiques au pilote Docker à utiliser. Ce paramètre correspond
DriverOpts
à la section Créer un volume de Docker. labels
-
Type : chaîne
Obligatoire : non
Métadonnées personnalisées à ajouter à votre volume Docker.
efsVolumeConfiguration
-
Type : objet EFSVolumede configuration
Obligatoire : non
Ce paramètre est spécifié lorsque vous utilisez des volumes Amazon EFS.
fileSystemId
-
Type : String
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 le
authorizationConfig
, 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 : String
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 aucun 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 : objet EFSAuthorizationConfig
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é dansEFSVolumeConfiguration
. 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 : String
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éfautDISABLED
est utilisée. Pour plus d'informations, consultez Rôles IAM pour les tâches.
FSxWindowsFileServerVolumeConfiguration
-
Type : FSxWindowsFileServerVolumeConfigurationObjet
Obligatoire : oui
Ce paramètre est spécifié lorsque vous utilisez un système de fichiers Amazon FSx pour Windows File Server pour le stockage des tâches.
fileSystemId
-
Type : String
Obligatoire : oui
L' FSx identifiant du système de fichiers Windows File Server à utiliser.
rootDirectory
-
Type : String
Obligatoire : oui
Le répertoire du système FSx de fichiers Windows File Server à monter en tant que répertoire racine sur l'hôte.
authorizationConfig
-
credentialsParameter
-
Type : String
Obligatoire : oui
Options d'informations d'identification d'autorisation.
Options :
Amazon Resource Name (ARN) d'un AWS Secrets Managersecret.
ARN d'un AWS Systems Managerparamètre.
domain
-
Type : String
Obligatoire : oui
Nom de domaine complet hébergé par un annuaire AWS Directory Service for Microsoft Active Directory(AWS Managed Microsoft AD) ou un Active Directory auto-hébergé EC2 .
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 de plus amples informations, veuillez consulter Marquer les 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 de plus amples informations, veuillez consulter Création d'une définition de tâche Amazon ECS à 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 de plus amples informations, veuillez consulter Utiliser des montages par liaison avec Amazon ECS.
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) ou1.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
ounone
. Si cette optionhost
est spécifiée, tous les conteneurs inclus dans les tâches qui ont spécifié le modehost
IPC sur la même instance de conteneur partagent les mêmes ressources IPC avec l'instance Amazon EC2 hôte. Sitask
est spécifié, tous les conteneurs de la tâche spécifiée partagent les mêmes ressources IPC. Sinone
est spécifié, les ressources IPC des conteneurs d'une tâche sont privés et ne partagent rien avec les autres conteneurs d'une tâche ou d'une instance de conteneur. Si aucune valeur n'est spécifiée, le partage de l'espace de noms de ressource IPC dépend du paramètre du démon Docker sur l'instance de conteneur.Si le mode IPC
host
est utilisé, il existe un risque accru d'exposition à un espace de noms IPC indésirable.Si vous définissez les paramètres du noyau placés dans un espace de noms à l'aide de
systemControls
pour les conteneurs de la tâche, les éléments suivants s'appliquent à votre espace de noms de ressource IPC.-
Pour les tâches qui utilisent le mode IPC
host
, lessystemControls
liés à l'espace de noms IPC ne sont pas pris en charge. -
Pour les tâches qui utilisent le mode IPC
task
, lessystemControls
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 : String
Valeurs valides :
host
|task
Obligatoire : non
Espace de noms de processus à utiliser pour les conteneurs de la tâche. Les valeurs valides sont
host
outask
. Sur les conteneurs Fargate pour Linux, la seule valeur valide esttask
. Par exemple, la surveillance des sidecars peut avoir besoin depidMode
pour accéder à des informations sur d'autres conteneurs exécutés dans le cadre de la même tâche.Si cette
host
option est spécifiée, tous les conteneurs des tâches qui ont spécifié le modehost
PID sur la même instance de conteneur partagent le même espace de noms de processus avec l' EC2instance Amazon hôte.Si
task
est spécifié, tous les conteneurs de la tâche spécifiée partagent le même espace de noms de processus.Si aucune valeur n'est spécifiée, la valeur par défaut est un espace de noms privé pour chaque conteneur.
Si le mode PID
host
est utilisé, il existe un risque accru d'exposition à un espace de noms de processus indésirable.
Note
Ce paramètre n'est pas pris en charge par les conteneurs Windows.
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.
Injection de défauts
enableFaultInjection
-
Type : booléen
Valeurs valides :
true
|false
Obligatoire : non
Si ce paramètre est défini sur
true
, dans la charge utile d'une tâche, Amazon ECS et Fargate acceptent les demandes d'injection d'erreurs provenant des conteneurs de la tâche. Par défaut, ce paramètre est défini surfalse
.