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 ECS de définition du service Amazon
Une définition de service définit comment exécuter votre ECS service Amazon. Les paramètres suivants peuvent être spécifiés dans une définition de service.
Type de lancement
launchType
-
Type : String
Valeurs valides :
EC2
|FARGATE
|EXTERNAL
Obligatoire : non
Type de lancement sur lequel vous pouvez exécuter votre service. Si aucun type de lancement n'est spécifié, the
capacityProviderStrategy
par défaut est utilisé par défaut. Pour de plus amples informations, veuillez consulter Types de ECS lancement d'Amazon.Si un
launchType
est spécifié, le paramètrecapacityProviderStrategy
doit être omis.
Stratégie de fournisseur de capacité
capacityProviderStrategy
-
Type : tableau d'objets
Obligatoire : non
Stratégie du fournisseur de capacité à utiliser pour le service.
Une stratégie de fournisseur de capacité consiste en un ou plusieurs fournisseurs de capacité avec le
base
etweight
à leur attribuer. Un fournisseur de capacité doit être associé au cluster à utiliser dans une stratégie de fournisseur de capacité. Le PutClusterCapacityProviders API est utilisé pour associer un fournisseur de capacité à un cluster. Seuls les fournisseurs de capacité ayant un statutACTIVE
ouUPDATING
peuvent être utilisés.Si un
capacityProviderStrategy
est spécifié, le paramètrelaunchType
doit être omis. Lorsque nicapacityProviderStrategy
nilaunchType
ne sont spécifiés, ledefaultCapacityProviderStrategy
pour le cluster est utilisé.Si vous souhaitez spécifier un fournisseur de capacité qui utilise un groupe Auto Scaling, le fournisseur de capacité doit déjà être créé. De nouveaux fournisseurs de capacité peuvent être créés grâce à l' CreateCapacityProvider APIopération.
Pour utiliser un AWS fournisseur de capacité Fargate, spécifiez le ou les fournisseurs
FARGATE
deFARGATE_SPOT
capacité. Les fournisseurs AWS de capacité Fargate sont disponibles pour tous les comptes et doivent uniquement être associés à un cluster pour être utilisés.L' PutClusterCapacityProviders APIopération est utilisée pour mettre à jour la liste des fournisseurs de capacité disponibles pour un cluster après sa création.
capacityProvider
-
Type : String
Obligatoire : oui
Le nom abrégé ou le nom complet de la ressource Amazon (ARN) du fournisseur de capacité.
weight
-
Type : entier
Plage valide : entiers compris entre 0 et 1 000.
Obligatoire : non
La valeur de poids indique le pourcentage relatif du nombre total de tâches lancées qui utilisent le fournisseur de capacité spécifié.
Par exemple, supposons que vous avez une stratégie qui contient deux fournisseurs de capacité et que les deux ont un poids de un. Lorsque la base est satisfaite, les tâches sont réparties équitablement entre les deux fournisseurs de capacité. En utilisant la même logique, supposons que vous spécifiez un poids de 1 pour capacityProvider A et un poids de 4 pour capacityProviderB. Ensuite, pour chaque tâche exécutée à l'aide de capacityProviderA, quatre tâches utilisent capacityProviderB.
base
-
Type : entier
Plage valide : entiers compris entre 0 et 100 000.
Obligatoire : non
La valeur de base indique le nombre minimum de tâches à exécuter sur le fournisseur de capacité spécifié. Une base ne peut être définie que pour un seul fournisseur de capacité dans une stratégie de fournisseur de capacité.
Définition de tâche
taskDefinition
-
Type : chaîne
Obligatoire : non
Le
family
etrevision
(family:revision
) ou le nom complet de la ressource Amazon (ARN) de la définition de tâche à exécuter dans votre service. Si unrevision
n'est pas spécifié, la dernière révisionACTIVE
de la famille spécifiée est utilisée.Une définition de tâche doit être spécifiée lors de l'utilisation du contrôleur de déploiement de mise à jour continue (
ECS
).
Système d'exploitation de la plateforme
platformFamily
-
Type : chaîne
Obligatoire : Conditionnelle
Par défaut : Linux
Ce paramètre est obligatoire pour les ECS services Amazon hébergés sur Fargate.
Ce paramètre est ignoré pour les ECS services Amazon hébergés sur AmazonEC2.
Système d'exploitation des conteneurs qui exécutent le service. Les valeurs valides sont
LINUX
,WINDOWS_SERVER_2019_FULL
,WINDOWS_SERVER_2019_CORE
,WINDOWS_SERVER_2022_FULL
etWINDOWS_SERVER_2022_CORE
.La valeur
platformFamily
pour chaque tâche que vous spécifiez pour le service doit correspondre à la valeurplatformFamily
du service. Par exemple, si vous définissezplatformFamily
surWINDOWS_SERVER_2019_FULL
, la valeurplatformFamily
de toutes les tâches doit êtreWINDOWS_SERVER_2019_FULL
.
Version de plateforme
platformVersion
-
Type : chaîne
Obligatoire : non
Version de la plateforme sur laquelle s'exécutent vos tâches dans le service. Une version de plateforme est spécifiée uniquement pour les tâches utilisant le type de lancement Fargate. Si vous ne spécifiez aucune valeur, la dernière version (
LATEST
) est utilisée par défaut.AWS Les versions de la plate-forme Fargate sont utilisées pour faire référence à un environnement d'exécution spécifique pour l'infrastructure de tâches Fargate. Lorsque vous spécifiez
LATEST
comme version de plateforme lors de l'exécution d'une tâche ou de la création d'un service, vous obtenez la version de plateforme la plus récente pour vos tâches. Lorsque vous mettez à l'échelle votre service, ces tâches reçoivent la version de plateforme spécifiée dans le déploiement actuel du service. Pour de plus amples informations, veuillez consulter Versions de la plateforme Fargate pour Amazon ECS.Note
Les versions de plate-forme ne sont pas spécifiées pour les tâches utilisant le type de EC2 lancement.
Cluster
cluster
-
Type : chaîne
Obligatoire : non
Le nom abrégé ou le nom complet de la ressource Amazon (ARN) du cluster sur lequel exécuter votre service. Si vous ne spécifiez aucun cluster, le cluster
default
est sélectionné.
Nom du service
serviceName
-
Type : String
Obligatoire : oui
Nom de votre service. Il peut comporter jusqu'à 255 lettres (majuscules et minuscules), des chiffres, des tirets ou des traits de soulignement. Dans un cluster, les noms de service doivent être uniques, mais certains services peuvent avoir des noms similaires dans des clusters différents d'une même région ou de plusieurs régions.
Stratégie de planification
schedulingStrategy
-
Type : String
Valeurs valides :
REPLICA
|DAEMON
Obligatoire : non
Stratégie de planification à utiliser. Si aucune stratégie de planification n'est spécifiée, la stratégie
REPLICA
est utilisée. Pour de plus amples informations, veuillez consulter ECSServices Amazon.Deux stratégies de planificateur de service sont disponibles :
-
REPLICA
– La stratégie de planification des réplicas place et gère le nombre de tâches souhaité dans votre cluster. Par défaut, le planificateur de service répartit les tâches entre les zones de disponibilité. Vous pouvez utiliser des stratégies et des contraintes de placement des tâches afin de personnaliser la façon dont les tâches sont placées. Pour de plus amples informations, veuillez consulter Stratégie de réplication. -
DAEMON
– La stratégie de planification du démon déploie exactement une tâche sur chaque instance de conteneur active qui répond à toutes les contraintes de placement des tâches spécifiées dans votre cluster. Lors de l'utilisation de cette stratégie, il n'est pas nécessaire de spécifier un nombre de tâches souhaité, une stratégie de placement des tâches ou d'utiliser les politiques Service Auto Scaling. Pour de plus amples informations, veuillez consulter Stratégie Daemon.Note
Les tâches Fargate ne prennent pas en charge la stratégie de planification
DAEMON
.
-
Nombre souhaité
desiredCount
-
Type : entier
Obligatoire : non
Nombre d'instances de la définition de tâche spécifiée à placer et à exécuter dans votre service.
Ce paramètre est requis si la stratégie de planification
REPLICA
est utilisée. Si le service utilise la stratégie de planificationDAEMON
, ce paramètre est facultatif.
Configuration de déploiement
deploymentConfiguration
-
Type : objet
Obligatoire : non
Paramètres de déploiement facultatifs qui contrôlent le nombre de tâches exécutées durant le déploiement et la commande d'arrêt et de démarrage des tâches.
maximumPercent
-
Type : entier
Obligatoire : non
Si un service utilise le type de déploiement de mise à jour propagée (
ECS
), le paramètremaximumPercent
représente une limite supérieure du nombre de tâches de votre service autorisées à avoir l'étatRUNNING
,STOPPING
ouPENDING
pendant un déploiement. Il est exprimé en tant que pourcentage dedesiredCount
arrondi à la valeur inférieure la plus proche. Vous pouvez utiliser ce paramètre pour définir la taille des lots de déploiement. Par exemple, si votre service utilise le planificateur de serviceREPLICA
et dispose d'undesiredCount
de quatre tâches, ainsi que d'une valeurmaximumPercent
de 200 %, le planificateur pourra lancer quatre nouvelles tâches avant d'arrêter les quatre tâches plus anciennes. Cela s'applique à condition que les ressources de cluster nécessaires à cette opération soient disponibles. La valeurmaximumPercent
par défaut pour un service à l'aide du planificateur de serviceREPLICA
est de 200 %.Si votre service utilise le type de planificateur de service
DAEMON
, lemaximumPercent
doit rester à 100 %. C’est la valeur par défaut.Le nombre maximum de tâches lors d'un déploiement est le
desiredCount
multiplié par lemaximumPercent
/100, arrondi au nombre entier inférieur le plus proche.Si un service utilise le type bleu/vert (
CODE_DEPLOY
) ou le type deEXTERNAL
déploiement et les tâches utilisant le type de EC2 lancement, la valeur maximale en pourcentage est définie sur la valeur par défaut. La valeur est utilisée pour définir la limite supérieure du nombre de tâches du service qui restent dansRUNNING
l'état alors que les instances de conteneur sont dansDRAINING
cet état.Note
Vous ne pouvez pas spécifier de
maximumPercent
valeur personnalisée pour un service qui utilise le type bleu/vert (CODE_DEPLOY
) ou le type deEXTERNAL
déploiement et dont les tâches utilisent le type de EC2 lancement.Si les tâches dans le service utilisent le type de lancement Fargate, la valeur de pourcentage maximal n'est pas utilisée, même si elle est renvoyée pour décrire votre service.
minimumHealthyPercent
-
Type : entier
Obligatoire : non
Si un service utilise le type de déploiement de mise à jour propagée (
ECS
),minimumHealthyPercent
représente une limite inférieure du nombre de tâches de votre service qui doivent rester l'étatRUNNING
pendant un déploiement. Cela est exprimé en tant que pourcentage dedesiredCount
arrondi à la valeur supérieure la plus proche. Vous pouvez utiliser ce paramètre pour procéder au déploiement sans avoir recours à une capacité de cluster supplémentaire. Par exemple, si votre service a undesiredCount
de quatre tâches et unminimumHealthyPercent
de 50 %, le planificateur de service peut arrêter deux tâches existantes pour libérer de la capacité de cluster avant de lancer deux nouvelles tâches.Pour les services qui n'utilisent pas d'équilibreur de charge, il convient de noter ce qui suit :
-
Un service est considéré comme intègre si tous les conteneurs essentiels dans les tâches du service réussissent leurs surveillances d'état.
-
Si une tâche n'a pas de conteneurs essentiels avec une surveillance de l'état définie, le planificateur de service attend 40 secondes une fois qu'une tâche a atteint l'état
RUNNING
avant que celle-ci soit comptée dans le pourcentage minimal total d'intégrité. -
Si une tâche comporte un ou plusieurs conteneurs essentiels avec une surveillance de l'état définie, le planificateur de service attend que la tâche atteigne un état intègre avant de la compter dans le pourcentage minimum total d'intégrité. Une tâche est considérée comme intègre lorsque tous ses conteneurs essentiels ont réussi leurs surveillances d'état. La durée pendant laquelle le planificateur de service peut attendre est déterminée par les paramètres de surveillance de l'état du conteneur. Pour de plus amples informations, veuillez consulter Surveillance de l'état.
Pour les services qui utilisent un équilibreur de charge, il convient de noter ce qui suit :
-
Si une tâche n'a pas de conteneurs essentiels avec une surveillance de l'état définie, le planificateur de services attend que la surveillance de l'état du groupe cible de l'équilibreur de charge retrouve un état intègre avant de compter la tâche dans le pourcentage minimal total d'intégrité.
-
Si une tâche possède un conteneur essentiel avec une surveillance de l'état définie, le planificateur de services attend que la tâche atteigne un état intègre et que la surveillance de l'état du groupe cible d'équilibrage de charge retrouve un état intègre avant de compter la tâche dans le pourcentage minimal total d'intégrité.
La valeur par défaut d'un service de réplica pour
minimumHealthyPercent
est 100 %. LaminimumHealthyPercent
valeur par défaut pour un service utilisant le calendrier deDAEMON
service est 0 % pour le AWS CLI AWS SDKs, le, APIs et 50 % pour le AWS Management Console.Le nombre minimum de tâches saines lors d'un déploiement correspond à
desiredCount
multiplié parminimumHealthyPercent
/100, arrondi au nombre entier supérieur le plus proche.Si un service utilise le type bleu/vert (
CODE_DEPLOY
) ou le type deEXTERNAL
déploiement et exécute des tâches utilisant le type de EC2 lancement, la valeur minimale du pourcentage sain est définie sur la valeur par défaut. La valeur est utilisée pour définir la limite inférieure du nombre de tâches du service qui restent dansRUNNING
l'état alors que les instances de conteneur sont dansDRAINING
cet état.Note
Vous ne pouvez pas spécifier de
maximumPercent
valeur personnalisée pour un service qui utilise le type bleu/vert (CODE_DEPLOY
) ou le type deEXTERNAL
déploiement et dont les tâches utilisent le type de EC2 lancement.Si un service utilise les types de déploiement bleu/vert (
CODE_DEPLOY
) ouEXTERNAL
et exécute des tâches employant le type de lancement Fargate, la valeur de pourcentage minimum d'instances saines n'est pas utilisée, même si elle est renvoyée pour décrire votre service. -
Contrôleur de déploiement
deploymentController
-
Type : objet
Obligatoire : non
Le contrôleur de déploiement à utiliser pour le service. Si aucun contrôleur de déploiement n'est spécifié, le contrôleur
ECS
est utilisé. Pour de plus amples informations, veuillez consulter ECSServices Amazon.type
-
Type : String
Valeurs valides :
ECS
|CODE_DEPLOY
|EXTERNAL
Obligatoire : oui
Type de contrôleur de déploiement à utiliser. Il existe trois types de contrôleurs de déploiement disponibles :
ECS
-
Le type de déploiement de mise à jour propagée (
ECS
) implique que le planificateur de service remplace la version de conteneur actuellement en cours d'exécution par la version la plus récente. Le nombre de conteneurs qu'Amazon ECS ajoute ou supprime du service lors d'une mise à jour continue est contrôlé en ajustant le nombre minimum et maximum de tâches saines autorisées lors du déploiement d'un service, comme indiqué dans ledeploymentConfiguration. CODE_DEPLOY
-
Le type de déploiement bleu/vert (
CODE_DEPLOY
) utilise le modèle de déploiement bleu/vert alimenté par CodeDeploy, qui vous permet de vérifier le nouveau déploiement d'un service avant de lui envoyer du trafic de production. EXTERNAL
-
Utilisez le type de déploiement externe lorsque vous souhaitez utiliser un contrôleur de déploiement tiers pour contrôler totalement le processus de déploiement d'un ECS service Amazon.
Placement des tâches
placementConstraints
-
Type : tableau d'objets
Obligatoire : non
Tableau d'objets de contraintes de placement à utiliser pour les tâches de votre service. Vous pouvez spécifier un maximum de 10 contraintes par tâche. Cette limite inclut les contraintes de la définition de tâche et celles spécifiées lors de l'exécution. Si vous utilisez le type de lancement Fargate, les contraintes de placement des tâches ne sont pas prises en charge.
type
-
Type : chaîne
Obligatoire : non
Type de contrainte. Utilisez
distinctInstance
pour vous assurer que chaque tâche d'un groupe particulier s'exécute sur une instance de conteneur différente. UtilisezmemberOf
pour limiter la sélection à un groupe de candidats valides. La valeurdistinctInstance
n'est pas prise en charge dans les définitions de tâche. expression
-
Type : chaîne
Obligatoire : non
Expression de langage de requête de cluster à appliquer à la contrainte. Vous ne pouvez pas spécifier d'expression si le type de contrainte est
distinctInstance
. Pour de plus amples informations, veuillez consulter Créez des expressions pour définir des instances de conteneur pour les ECS tâches Amazon.
placementStrategy
-
Type : tableau d'objets
Obligatoire : non
Objets de stratégie de placement à utiliser pour les tâches de votre service. Vous pouvez spécifier jusqu'à quatre règles de stratégie par service.
type
-
Type : String
Valeurs valides :
random
|spread
|binpack
Obligatoire : non
Type de stratégie de placement. La stratégie de placement
random
place les tâches de façon aléatoire sur les candidats disponibles. La stratégie de placementspread
répartit le placement sur les candidats disponibles de façon uniforme en fonction du paramètre dufield
. La stratégiebinpack
place les tâches sur les candidats disponibles qui ont la quantité disponible la moins élevée de la ressource spécifiée avec le paramètrefield
. Par exemple, si vous utilisez un BinPack sur la mémoire, une tâche est placée sur l'instance avec la quantité la moins élevée de mémoire restante, mais tout de même suffisante pour exécuter la tâche. field
-
Type : chaîne
Obligatoire : non
Champ sur lequel appliquer la stratégie de placement. Pour la stratégie de placement
spread
, les valeurs valides sontinstanceId
(ouhost
, qui produit le même effet), ou toute plateforme ou tout attribut personnalisé appliqué à une instance de conteneur, commeattribute:ecs.availability-zone
. Pour la stratégie de placementbinpack
, les valeurs valides sontcpu
etmemory
. Pour la stratégie de placementrandom
, ce champ n'est pas utilisé.
Étiquettes
-
Type : tableau d'objets
Obligatoire : non
Métadonnées que vous appliquez au service pour faciliter le classement et l'organisation. Chaque étiquette est constituée d'une clé et d'une valeur facultative que vous définissez. Lorsqu'un service est supprimé, les étiquettes sont également supprimées. Un maximum de 50 balises peut être appliqué au service. Pour de plus amples informations, veuillez consulter Marquer les ressources Amazon ECS.
key
-
Type : String
Contraintes de longueur : Longueur minimum de 1. Longueur maximale de 128.
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 : String
Contraintes de longueur : Longueur minimum de 0. Longueur maximale de 256.
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é).
-
Type : booléen
Valeurs valides :
true
|false
Obligatoire : non
Spécifie s'il faut utiliser les balises ECS gérées par Amazon pour les tâches du service. La valeur par défaut est
false
si aucune valeur n'est spécifiée. Pour de plus amples informations, veuillez consulter Utiliser des tags pour la facturation. propagateTags
-
Type : String
Valeurs valides :
TASK_DEFINITION
|SERVICE
Obligatoire : non
Indique s'il faut copier les étiquettes de la définition de tâche ou du service dans les tâches du service. Si aucune valeur n'est spécifiée, les étiquettes ne sont pas copiées. Les étiquettes ne peuvent être copiées dans les tâches du service que lors de la création du service. Pour ajouter des balises à une tâche après la création d'un service ou d'une tâche, utilisez l'
TagResource
APIaction.
Configuration réseau
networkConfiguration
-
Type : objet
Obligatoire : non
Configuration réseau du service. Ce paramètre est obligatoire pour les définitions de tâches qui utilisent le mode réseau
awsvpc
afin de recevoir leur propre interface réseau Elastic. Il n'est pas pris en charge avec les autres modes réseau. Si vous utilisez le type de lancement Fargate, le mode réseauawsvpc
est requis. Pour plus d'informations sur la mise en réseau pour le type de EC2 lancement Amazon, consultezOptions de mise en réseau des ECS tâches Amazon pour le type de EC2 lancement. Pour plus d'informations sur la mise en réseau pour le type de lancement Fargate, consultez la section Mise en réseau des tâches Fargate.awsvpcConfiguration
-
Type : objet
Obligatoire : non
Objet représentant les sous-réseaux et les groupes de sécurité pour une tâche ou un service.
subnets
-
Type : tableau de chaînes
Obligatoire : oui
Sous-réseaux associés à la tâche ou au service. Il existe une limite de 16 sous-réseaux pouvant être spécifiés selon
awsvpcConfiguration
. securityGroups
-
Type : tableau de chaînes
Obligatoire : non
Groupes de sécurité associés à la tâche ou au service. Si vous ne spécifiez aucun groupe de sécurité, le groupe de sécurité par défaut VPC est utilisé. Il existe une limite de cinq groupes de sécurité pouvant être spécifiés selon
awsvpcConfiguration
. assignPublicIP
-
Type : String
Valeurs valides :
ENABLED
|DISABLED
Obligatoire : non
Si l'interface réseau Elastic de la tâche reçoit une adresse IP publique ou non. Si aucune valeur n'est spécifiée, la valeur par défaut de
DISABLED
est utilisée.
healthCheckGracePeriodSeconds
-
Type : entier
Obligatoire : non
Durée, en secondes, pendant laquelle le planificateur de ECS services Amazon doit ignorer les tests de santé des cibles, des conteneurs et des tests de santé Route 53 défectueux d'Elastic Load Balancing après l'entrée d'une tâche dans un
RUNNING
état. Cela est valable uniquement si votre service est configuré pour utiliser un équilibreur de charge. Si votre service dispose d'un équilibreur de charge défini et que vous ne spécifiez pas de valeur de période de grâce de surveillance de l'état, c'est la valeur par défaut de0
qui est utilisée.Si les tâches de votre service mettent un certain temps à démarrer et à répondre aux tests de santé, vous pouvez spécifier une période de grâce maximale de 2 147 483 647 secondes pendant laquelle le planificateur de ECS services ignore l'état du bilan de santé. Ce délai de grâce peut empêcher le planificateur de ECS services de signaler les tâches comme étant incorrectes et de les arrêter avant qu'elles n'aient le temps de démarrer.
Si vous n'utilisez pas un Elastic Load Balancing, nous vous recommandons d'utiliser
startPeriod
dans les paramètres du contrôle de surveillance de l'état de la définition de la tâche. Pour plus d'informations, consultez Déterminer l'état des ECS tâches Amazon à l'aide de vérifications de l'état du conteneur. loadBalancers
-
Type : tableau d'objets
Obligatoire : non
Un objet d'équilibreur de charge qui représente l'équilibreur de charge à utiliser avec votre service. Pour les services qui utilisent un équilibreur de charge Application Load Balancer ou un Network Load Balancer, il existe une limite de cinq groupes cibles que vous pouvez attacher à un service.
Une fois que vous avez créé un service, la configuration de l'équilibreur de charge ne peut pas être modifiée à partir de la AWS Management Console. Vous pouvez utiliser le AWS copilote AWS CLI ou pour modifier la configuration de l'équilibreur de charge SDK pour le contrôleur de déploiement
ECS
évolutif uniquement, et non pour le AWS CodeDeploy bleu/vert ou externe. AWS CloudFormation Lorsque vous ajoutez, mettez à jour ou supprimez une configuration d'équilibreur de charge, Amazon ECS lance un nouveau déploiement avec la configuration Elastic Load Balancing mise à jour. Cela entraîne l'enregistrement et le désenregistrement des tâches auprès des équilibreurs de charge. Nous vous recommandons de vérifier cela dans un environnement de test avant de mettre à jour la configuration d'Elastic Load Balancing. Pour plus d'informations sur la modification de la configuration, consultez UpdateServicele Amazon Elastic Container Service API Reference.Pour les équilibreurs de charge d'application et les équilibreurs de charge réseau, cet objet doit contenir le groupe cible de l'équilibreur de chargeARN, le nom du conteneur (tel qu'il apparaît dans la définition d'un conteneur) et le port du conteneur auquel accéder depuis l'équilibreur de charge. Lorsqu'une tâche de ce service est placée sur une instance de conteneur, la combinaison d'instance et de port de conteneur est enregistrée comme cible dans le groupe cible spécifié.
targetGroupArn
-
Type : chaîne
Obligatoire : non
Nom complet de la ressource Amazon (ARN) du groupe cible Elastic Load Balancing associé à un service.
Un groupe cible n'ARNest spécifié que lors de l'utilisation d'un Application Load Balancer ou d'un Network Load Balancer.
loadBalancerName
-
Type : chaîne
Obligatoire : non
Nom de l'équilibreur de charge à associer au service.
Si vous utilisez un Application Load Balancer ou un Network Load Balancer, omettez le paramètre de nom de l'équilibreur de charge.
containerName
-
Type : chaîne
Obligatoire : non
Nom du conteneur (tel qu'il apparaît dans une définition de conteneur) à associer à l'équilibreur de charge.
containerPort
-
Type : entier
Obligatoire : non
Port du conteneur à associer à l'équilibreur de charge. Ce port doit correspondre à un élément
containerPort
dans la définition de tâche utilisée par les tâches du service. Pour les tâches qui utilisent le type de EC2 lancement, l'instance de conteneur doit autoriser le trafic entrant sur le mappagehostPort
des ports.
role
-
Type : chaîne
Obligatoire : non
Nom abrégé ou complet ARN du IAM rôle qui permet ECS à Amazon de passer des appels à votre équilibreur de charge en votre nom. Ce paramètre est uniquement autorisé si vous utilisez un équilibreur de charge avec un seul groupe cible pour votre service, et si votre définition de tâche n'utilise pas le mode réseau
awsvpc
. Si vous spécifiez le paramètrerole
, vous devez également spécifier un objet d'équilibreur de charge avec le paramètreloadBalancers
.Si le rôle que vous avez spécifié possède un chemin autre que
/
, vous devez soit spécifier le rôle complet ARN (cela est recommandé), soit préfixer le nom du rôle avec le chemin. Par exemple, si un rôle nommébar
a le chemin d'accès/foo/
, vous devez spécifier/foo/bar
comme nom du rôle. Pour plus d'informations, consultez la section Noms et chemins conviviaux dans le guide de IAM l'utilisateur.Important
Si votre compte a déjà créé le rôle ECS lié au service Amazon, ce rôle est utilisé par défaut pour votre service, sauf si vous spécifiez un rôle ici. Le rôle lié à un service est obligatoire si votre définition de tâche utilise le mode réseau awsvpc, auquel cas vous ne devez pas spécifier de rôle ici. Pour de plus amples informations, veuillez consulter Utilisation de rôles liés à un service pour Amazon ECS.
serviceConnectConfiguration
-
Type : objet
Obligatoire : non
Cette configuration permet à ce service de découvrir des services et de s'y connecter, et, inversement, elle permet à d'autres services au sein d'un espace de noms de découvrir ce service et de s'y connecter.
Pour de plus amples informations, veuillez consulter Utilisez Service Connect pour connecter les ECS services Amazon à l'aide de noms abrégés.
enabled
-
Type : booléen
Obligatoire : oui
Spécifie s'il faut utiliser Service Connect avec ce service.
namespace
-
Type : chaîne
Obligatoire : non
Nom abrégé ou Amazon Resource Name complet (ARN) de l'espace de AWS Cloud Map noms à utiliser avec Service Connect. L'espace de noms doit être Région AWS identique à celui du ECS service et du cluster Amazon. Le type d'espace de noms n'a aucune incidence sur Service Connect. Pour plus d'informations AWS Cloud Map, consultez la section Travailler avec les services dans le guide du AWS Cloud Map développeur.
services
-
Type : tableau d'objets
Obligatoire : non
Tableau d'objets de service Service Connect. Il s'agit de noms et d'alias (également appelés points de terminaison) utilisés par d'autres ECS services Amazon pour se connecter à ce service.
Ce champ n'est pas obligatoire pour un ECS service Amazon « client » membre d'un espace de noms uniquement pour se connecter à d'autres services au sein de cet espace de noms. Par exemple, une application frontale qui accepte les demandes entrantes provenant d'un équilibreur de charge attaché au service ou par d'autres moyens.
Un objet sélectionne un port dans la définition de la tâche, attribue un nom au AWS Cloud Map service et un ensemble d'alias (également appelés points de terminaison) et de ports permettant aux applications clientes de faire référence à ce service.
portName
-
Type : String
Obligatoire : oui
Le
portName
doit correspondre àname
l'unportMappings
des conteneurs figurant dans la définition de tâche de ce ECS service Amazon. discoveryName
-
Type : chaîne
Obligatoire : non
discoveryName
Il s'agit du nom du nouveau AWS Cloud Map service ECS créé par Amazon pour ce ECS service Amazon. Ce nom doit être unique dans l'espace de noms AWS Cloud Map .Si ce champ n'est pas spécifié,
portName
est utilisé. clientAliases
-
Type : tableau d'objets
Obligatoire : non
Liste des alias clients pour ce service Service Connect. Vous les utilisez pour attribuer des noms qui peuvent être utilisés par les applications clientes. Le nombre maximum d'alias clients dont vous pouvez disposer dans cette est de 1.
Chaque alias (« point de terminaison ») est un DNS nom et un numéro de port que les autres ECS services Amazon (« clients ») peuvent utiliser pour se connecter à ce service.
Chaque nom et chaque combinaison de port doivent être uniques dans l'espace de noms.
Ces noms sont configurés dans chaque tâche du service client, et non dans AWS Cloud Map. DNSles demandes de résolution de ces noms ne quittent pas la tâche et ne sont pas prises en compte dans le quota de DNS demandes par seconde et par interface elastic network.
port
-
Type : entier
Obligatoire : oui
Numéro de port d'écoute du proxy Service Connect. Ce port est disponible dans toutes les tâches du même espace de noms.
Pour éviter de modifier vos applications dans les ECS services Amazon clients, définissez ce port sur le même port que celui utilisé par défaut par l'application cliente.
dnsName
-
Type : chaîne
Obligatoire : non
Le
dnsName
est le nom que vous utilisez dans les applications des tâches client pour vous connecter à ce service. Le nom doit être une DNS étiquette valide.Si ce champ n'est pas spécifié, la valeur par défaut est
discoveryName.namespace
. Si lediscoveryName
n'est pas spécifié, leportName
issu de la définition de la tâche est utilisé.Pour éviter de modifier vos applications dans les ECS services Amazon clients, attribuez-leur le même nom que celui utilisé par défaut par l'application client. Par exemple, quelques noms courants sont
database
,db
ou le nom en minuscules d'une base de données, commemysql
ouredis
.
ingressPortOverride
-
Type : entier
Obligatoire : non
(Facultatif) Numéro de port que le proxy Service Connect utilise pour écouter.
Utilisez la valeur de ce champ pour contourner le proxy pour le trafic sur le numéro de port spécifié dans le nom indiqué
portMapping
dans la définition de tâche de cette application, puis utilisez-le dans vos groupes de VPC sécurité Amazon pour autoriser le trafic à entrer dans le proxy pour ce ECS service Amazon.En mode
awsvpc
, la valeur par défaut est le numéro du port du conteneur spécifié dans leportMapping
nommé dans la définition de tâche de cette application. En modebridge
, la valeur par défaut correspond au port éphémère du proxy Service Connect. logConfiguration
-
Type : LogConfigurationObjet
Obligatoire : non
Cela définit l'endroit où les journaux du proxy Service Connect sont publiés. Utilisez les journaux pour le débogage lors d'événements inattendus. Cette configuration définit le
logConfiguration
paramètre dans le conteneur proxy Service Connect pour chaque tâche de ce ECS service Amazon. Le conteneur de proxy n'est pas spécifié dans la définition de tâche.Nous vous recommandons d'utiliser la même configuration de journal que celle des conteneurs d'applications pour la définition des tâches pour ce ECS service Amazon. Car FireLens il s'agit de la configuration du journal du conteneur d'applications. Ce n'est pas le conteneur FireLens log router qui utilise l'image du
fluentd
conteneurfluent-bit
or.
serviceRegistries
-
Type : tableau d'objets
Obligatoire : non
Détails de la configuration de la découverte de service pour votre service. Pour de plus amples informations, veuillez consulter Utilisez la découverte de services pour associer les ECS services Amazon à des DNS noms.
registryArn
-
Type : chaîne
Obligatoire : non
Le nom de ressource Amazon (ARN) du registre de services. Le registre des services actuellement pris en charge est AWS Cloud Map. Pour plus d'informations, consultez Utilisation des services dans le Guide du développeur AWS Cloud Map .
port
-
Type : entier
Obligatoire : non
La valeur du port utilisée si votre service de découverte de services a spécifié un SRV enregistrement. Ce champ est obligatoire si le mode
awsvpc
réseau et les SRV enregistrements sont utilisés. containerName
-
Type : chaîne
Obligatoire : non
La valeur du nom du conteneur, déjà spécifiée dans la définition de tâche, à utiliser pour votre service de découverte de service. Cette valeur est spécifiée dans la définition de tâche. Si la définition de tâche que votre tâche de service spécifie utilise le mode réseau
bridge
ouhost
, vous devez spécifier une combinaisoncontainerName
etcontainerPort
à partir de la définition de tâche. Si la définition de tâche spécifiée par votre tâche de service utilise le modeawsvpc
réseau et qu'un SRV DNS enregistrement de type est utilisé, vous devez spécifier unecontainerPort
combinaisoncontainerName
et ou uneport
valeur, mais pas les deux. containerPort
-
Type : entier
Obligatoire : non
La valeur du port à utiliser pour votre service de découverte de service. Cette valeur est spécifiée dans la définition de tâche. Si la définition de tâche spécifiée par votre tâche de service utilise le mode réseau
bridge
ouhost
, vous devez spécifier une combinaisoncontainerName
etcontainerPort
à partir de la définition de tâche. Si la définition de tâche spécifiée par votre tâche de service utilise le modeawsvpc
réseau et qu'un SRV DNS enregistrement de type est utilisé, vous devez spécifier unecontainerPort
combinaisoncontainerName
et ou uneport
valeur, mais pas les deux.
Jeton client
clientToken
-
Type : chaîne
Obligatoire : non
L'identifiant unique, sensible à la casse, que vous devez fournir afin de garantir l'idempotence de la demande. Il peut comporter jusqu'à 32 ASCII caractères.
Configurations de volume
volumeConfigurations
-
Type : objet
Obligatoire : non
Configuration qui sera utilisée pour créer des volumes pour les tâches gérées par le service. Un volume est créé pour chaque tâche du service. Seuls les volumes marqués comme tels
configuredAtLaunch
dans la définition de tâche peuvent être configurés à l'aide de cet objet. Cet objet est nécessaire pour associer EBS des volumes de données Amazon à des tâches gérées par un service. Pour plus d'informations, consultez Amazon EBS Volumes.name
-
Type : String
Obligatoire : oui
Nom d'un volume configuré lors de la création ou de la mise à jour d'un service. Jusqu'à 255 lettres (majuscules et minuscules), chiffres, traits de soulignement () et
_
tirets () sont autorisés.-
Cette valeur doit correspondre au nom du volume spécifié dans la définition de la tâche. managedEBSVolume
-
Type : objet
Obligatoire : non
Configuration des EBS volumes Amazon associés à des tâches gérées par un service lors de la création ou de la mise à jour d'un service.
encrypted
-
Type : booléen
Obligatoire : non
Valeurs valides :
true
|false
Spécifie si le EBS volume Amazon associé aux tâches gérées par un service sera chiffré. Si vous avez activé le EBS chiffrement Amazon par défaut pour votre compte, ce paramètre sera remplacé et le volume sera chiffré. Pour plus d'informations sur EBS le chiffrement par défaut, consultez la section Chiffrement par défaut dans le guide de EC2 l'utilisateur Amazon.
kmsKeyId
-
Type : chaîne
Obligatoire : non
L'identifiant de la clé AWS Key Management Service (AWS KMS) à utiliser pour le EBS chiffrement Amazon. Si ce paramètre n'est pas spécifié, c'est votre AWS KMS key pour Amazon EBS qui est utilisé. Si
KmsKeyId
est spécifié, l'état chiffré doit êtretrue
.Vous pouvez spécifier la KMS clé en utilisant l'une des méthodes suivantes :
-
ID de clé — Par exemple,
1234abcd-12ab-34cd-56ef-1234567890ab
. -
Alias clé — Par exemple,
alias/ExampleAlias
. -
Clé ARN — Par exemple,
arn:aws:kms:us-east-1:012345678910:key/1234abcd-12ab-34cd-56ef-1234567890ab
. -
Alias ARN — Par exemple,
arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias
.
Important
AWS authentifie la KMS clé de manière asynchrone. Par conséquent, si vous spécifiez un identifiant, un alias ou si ARN celui-ci n'est pas valide, l'action peut sembler réussie, mais elle finit par échouer. Pour plus d'informations, consultez Résolution des problèmes d'attachement de EBS volume Amazon.
-
volumeType
-
Type : chaîne
Obligatoire : non
Valeurs valides :
gp2
|gp3
|io1
|io2
|sc1
|st1
|standard
Type EBS de volume. Pour plus d'informations sur les types de volumes, consultez les types de EBS volumes Amazon dans le guide de EC2 l'utilisateur Amazon. Le type de volume par défaut est
gp3
.Note
Le type de
standard
volume n'est pas pris en charge pour les EBS volumes Amazon configurés pour être joints à des tâches Fargate. sizeInGiB
-
Type : entier
Obligatoire : non
Plage valide : nombres entiers compris entre 1 et 16 384
Taille du EBS volume en gibioctets (GiB). Si vous ne fournissez pas d'ID de capture pour configurer un volume en vue de le joindre, vous devez fournir une valeur de taille. Si vous configurez un volume pour la pièce jointe à l'aide d'un instantané, la valeur par défaut est la taille de l'instantané. Vous pouvez ensuite spécifier une taille supérieure ou égale à la taille de l'instantané.
Pour les types de
gp3
volumegp2
et, la plage valide est comprise entre 1 et 16 384.Pour les types de
io2
volumeio1
et, la plage valide est comprise entre 4 et 16 384.Pour les types de
sc1
volumest1
et, la plage valide est comprise entre 125 et 16 384.Pour le type de
standard
volume, la plage valide est comprise entre 1 et 1 024. snapshotId
-
Type : chaîne
Obligatoire : non
ID de l'instantané d'un EBS volume existant utilisé pour créer un nouveau volume attaché à la ECS tâche.
iops
-
Type : entier
Obligatoire : non
Nombre d'opérations d'E/S par seconde (IOPS). Pour les
io2
volumesgp3
io1
, et, cela représente le nombre de IOPS volumes provisionnés pour le volume. Pour lesgp2
volumes, cette valeur représente les performances de base du volume et le taux auquel le volume accumule des crédits d'E/S en cas d'éclatement. Ce paramètre est requis pour les volumesio1
etio2
. Ce paramètre n'est pas pris en charge pour lesstandard
volumesgp2
st1
sc1
,, ou.Pour les
gp3
volumes, la plage de valeurs valide est comprise entre 3 000 et 16 000.Pour les
io1
volumes, la plage de valeurs valide est comprise entre 100 et 64 000.Pour les
io2
volumes, la plage de valeurs valide est comprise entre 100 et 64 000. throughput
-
Type : entier
Obligatoire : non
Débit à provisionner pour les volumes attachés à des tâches gérées par un service.
Important
Ce paramètre n'est pris en charge que pour les
gp3
volumes. roleArn
-
Type : String
Obligatoire : oui
Le rôle Amazon Resource ARN (ARN) ou infrastructure AWS Identity and Access Management (IAM) qui fournit ECS les autorisations Amazon pour gérer les EBS ressources Amazon pour vos tâches. Pour de plus amples informations, veuillez consulter IAMRôle d'Amazon ECS dans l'infrastructure.
tagSpecifications
-
Type : objet
Obligatoire : non
Spécification des balises à appliquer aux volumes Amazon EBS gérés par le service.
resourceType
-
Type : String
Obligatoire : oui
Valeurs valides :
volume
Le type de ressource à baliser à la création.
-
Type : tableau d'objets
Obligatoire : non
Les métadonnées que vous appliquez aux volumes pour vous aider à les classer et à les organiser. Chaque balise est composée d'une clé et d'une valeur facultative, que vous définissez toutes deux.
AmazonECSCreated
etAmazonECSManaged
sont des tags réservés ajoutés par Amazon ECS en votre nom. Vous pouvez donc spécifier vous-même un maximum de 48 tags. Lorsqu'un volume est supprimé, les balises sont également supprimées. Pour de plus amples informations, veuillez consulter Marquer les ressources Amazon ECS.key
-
Type : String
Contraintes de longueur : Longueur minimum de 1. Longueur maximale de 128.
Obligatoire : non
Partie d'une paire clé-valeur constituant une balise. Une clé est une étiquette générale qui fait office de catégorie pour les valeurs d'étiquette plus spécifiques.
value
-
Type : String
Contraintes de longueur : Longueur minimum de 0. Longueur maximale de 256.
Obligatoire : non
Partie facultative d'une paire clé-valeur qui constitue une balise. Une valeur agit comme un descripteur au sein d'une catégorie d'étiquette (clé).
propagateTags
-
Type : String
Valeurs valides :
TASK_DEFINITION
|SERVICE
|NONE
Obligatoire : non
Spécifie s'il faut copier les balises de la définition de tâche ou du service vers un volume. Si cette valeur
NONE
est spécifiée ou si aucune valeur n'est spécifiée, les balises ne sont pas copiées.
fileSystemType
-
Type : chaîne
Obligatoire : non
Valeurs valides :
xfs
|ext3
|ext4
Type de système de fichiers sur un volume. Le type de système de fichiers du volume détermine la manière dont les données sont stockées et récupérées dans le volume. Pour les volumes créés à partir d'un instantané, vous devez spécifier le même type de système de fichiers que celui utilisé par le volume lors de la création de l'instantané. Si le type de système de fichiers ne correspond pas, la tâche ne démarrera pas. La valeur par défaut pour les volumes attachés à des tâches Linux est
XFS
.
Modèle de définition de service
Ce qui suit montre la JSON représentation d'une définition de ECS service Amazon.
Type de EC2 lancement Amazon
{ "cluster": "", "serviceName": "", "taskDefinition": "", "loadBalancers": [ { "targetGroupArn": "", "loadBalancerName": "", "containerName": "", "containerPort": 0 } ], "serviceRegistries": [ { "registryArn": "", "port": 0, "containerName": "", "containerPort": 0 } ], "desiredCount": 0, "clientToken": "", "launchType": "EC2", "capacityProviderStrategy": [ { "capacityProvider": "", "weight": 0, "base": 0 } ], "platformVersion": "", "role": "", "deploymentConfiguration": { "deploymentCircuitBreaker": { "enable": true, "rollback": true }, "maximumPercent": 0, "minimumHealthyPercent": 0, "alarms": { "alarmNames": [ "" ], "enable": true, "rollback": true } }, "placementConstraints": [ { "type": "distinctInstance", "expression": "" } ], "placementStrategy": [ { "type": "binpack", "field": "" } ], "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "" ], "securityGroups": [ "" ], "assignPublicIp": "DISABLED" } }, "healthCheckGracePeriodSeconds": 0, "schedulingStrategy": "REPLICA", "deploymentController": { "type": "EXTERNAL" }, "tags": [ { "key": "", "value": "" } ], "enableECSManagedTags": true, "propagateTags": "TASK_DEFINITION", "enableExecuteCommand": true, "serviceConnectConfiguration": { "enabled": true, "namespace": "", "services": [ { "portName": "", "discoveryName": "", "clientAliases": [ { "port": 0, "dnsName": "" } ], "ingressPortOverride": 0 } ], "logConfiguration": { "logDriver": "journald", "options": { "KeyName": "" }, "secretOptions": [ { "name": "", "valueFrom": "" } ] } }, "volumeConfigurations": [ { "name": "", "managedEBSVolume": { "encrypted": true, "kmsKeyId": "", "volumeType": "", "sizeInGiB": 0, "snapshotId": "", "iops": 0, "throughput": 0, "tagSpecifications": [ { "resourceType": "volume", "tags": [ { "key": "", "value": "" } ], "propagateTags": "NONE" } ], "roleArn": "", "filesystemType": "" } } ] }
Type de lancement Fargate
{ "cluster": "", "serviceName": "", "taskDefinition": "", "loadBalancers": [ { "targetGroupArn": "", "loadBalancerName": "", "containerName": "", "containerPort": 0 } ], "serviceRegistries": [ { "registryArn": "", "port": 0, "containerName": "", "containerPort": 0 } ], "desiredCount": 0, "clientToken": "", "launchType": "FARGATE", "capacityProviderStrategy": [ { "capacityProvider": "", "weight": 0, "base": 0 } ], "platformVersion": "", "platformFamily": "", "role": "", "deploymentConfiguration": { "deploymentCircuitBreaker": { "enable": true, "rollback": true }, "maximumPercent": 0, "minimumHealthyPercent": 0, "alarms": { "alarmNames": [ "" ], "enable": true, "rollback": true } }, "placementStrategy": [ { "type": "binpack", "field": "" } ], "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "" ], "securityGroups": [ "" ], "assignPublicIp": "DISABLED" } }, "healthCheckGracePeriodSeconds": 0, "schedulingStrategy": "REPLICA", "deploymentController": { "type": "EXTERNAL" }, "tags": [ { "key": "", "value": "" } ], "enableECSManagedTags": true, "propagateTags": "TASK_DEFINITION", "enableExecuteCommand": true, "serviceConnectConfiguration": { "enabled": true, "namespace": "", "services": [ { "portName": "", "discoveryName": "", "clientAliases": [ { "port": 0, "dnsName": "" } ], "ingressPortOverride": 0 } ], "logConfiguration": { "logDriver": "journald", "options": { "KeyName": "" }, "secretOptions": [ { "name": "", "valueFrom": "" } ] } }, "volumeConfigurations": [ { "name": "", "managedEBSVolume": { "encrypted": true, "kmsKeyId": "", "volumeType": "", "sizeInGiB": 0, "snapshotId": "", "iops": 0, "throughput": 0, "tagSpecifications": [ { "resourceType": "volume", "tags": [ { "key": "", "value": "" } ], "propagateTags": "NONE" } ], "roleArn": "", "filesystemType": "" } } ] }
Vous pouvez créer ce modèle de définition de service à l'aide de la commande AWS CLI suivante.
aws ecs create-service --generate-cli-skeleton