Paramètres ECS de définition du service Amazon - Amazon Elastic Container Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Paramètres 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ètre capacityProviderStrategy 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 et weight à 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 statut ACTIVE ou UPDATING peuvent être utilisés.

Si un capacityProviderStrategy est spécifié, le paramètre launchType doit être omis. Lorsque ni capacityProviderStrategy ni launchType ne sont spécifiés, le defaultCapacityProviderStrategy 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 de FARGATE_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 et revision (family:revision) ou le nom complet de la ressource Amazon (ARN) de la définition de tâche à exécuter dans votre service. Si un revision n'est pas spécifié, la dernière révision ACTIVE 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 et WINDOWS_SERVER_2022_CORE.

La valeur platformFamily pour chaque tâche que vous spécifiez pour le service doit correspondre à la valeur platformFamily du service. Par exemple, si vous définissez platformFamily sur WINDOWS_SERVER_2019_FULL, la valeur platformFamily de toutes les tâches doit être WINDOWS_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 planification DAEMON, 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ètre maximumPercent représente une limite supérieure du nombre de tâches de votre service autorisées à avoir l'état RUNNING, STOPPING ou PENDING pendant un déploiement. Il est exprimé en tant que pourcentage de desiredCount 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 service REPLICA et dispose d'un desiredCount de quatre tâches, ainsi que d'une valeur maximumPercent 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 valeur maximumPercent par défaut pour un service à l'aide du planificateur de service REPLICA est de 200 %.

Si votre service utilise le type de planificateur de service DAEMON, le maximumPercent 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 le maximumPercent/100, arrondi au nombre entier inférieur le plus proche.

Si un service utilise le type bleu/vert (CODE_DEPLOY) ou le type de EXTERNAL 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 dans RUNNING l'état alors que les instances de conteneur sont dans DRAINING 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 de EXTERNAL 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'état RUNNING pendant un déploiement. Cela est exprimé en tant que pourcentage de desiredCount 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 un desiredCount de quatre tâches et un minimumHealthyPercent 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 %. La minimumHealthyPercent valeur par défaut pour un service utilisant le calendrier de DAEMON 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é par minimumHealthyPercent/100, arrondi au nombre entier supérieur le plus proche.

Si un service utilise le type bleu/vert (CODE_DEPLOY) ou le type de EXTERNAL 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 dans RUNNING l'état alors que les instances de conteneur sont dans DRAINING 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 de EXTERNAL 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) ou EXTERNAL 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. Utilisez memberOf pour limiter la sélection à un groupe de candidats valides. La valeur distinctInstance 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 placement spread répartit le placement sur les candidats disponibles de façon uniforme en fonction du paramètre du field. La stratégie binpack 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ètre field. 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 sont instanceId (ou host, qui produit le même effet), ou toute plateforme ou tout attribut personnalisé appliqué à une instance de conteneur, comme attribute:ecs.availability-zone. Pour la stratégie de placement binpack, les valeurs valides sont cpu et memory. Pour la stratégie de placement random, ce champ n'est pas utilisé.

Étiquettes

tags

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

enableECSManagedTags

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'TagResourceAPIaction.

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éseau awsvpc 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 de 0 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 mappage hostPort 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ètre role, vous devez également spécifier un objet d'équilibreur de charge avec le paramètre loadBalancers.

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'un portMappings des conteneurs figurant dans la définition de tâche de ce ECS service Amazon.

discoveryName

Type : chaîne

Obligatoire : non

discoveryNameIl 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 le discoveryName n'est pas spécifié, le portName 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, comme mysql ou redis.

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 le portMapping nommé dans la définition de tâche de cette application. En mode bridge, 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 conteneur fluent-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 ou host, vous devez spécifier une combinaison containerName et containerPort à 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 mode awsvpc réseau et qu'un SRV DNS enregistrement de type est utilisé, vous devez spécifier une containerPort combinaison containerName et ou une port 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 ou host, vous devez spécifier une combinaison containerName et containerPort à 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 mode awsvpc réseau et qu'un SRV DNS enregistrement de type est utilisé, vous devez spécifier une containerPort combinaison containerName et ou une port 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 être true.

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 volume gp2 et, la plage valide est comprise entre 1 et 16 384.

Pour les types de io2 volume io1 et, la plage valide est comprise entre 4 et 16 384.

Pour les types de sc1 volume st1 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 volumes gp3io1, et, cela représente le nombre de IOPS volumes provisionnés pour le volume. Pour les gp2 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 volumes io1 et io2. Ce paramètre n'est pas pris en charge pour les standard volumes gp2 st1sc1,, 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.

tags

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. AmazonECSCreatedet AmazonECSManaged 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 estXFS.

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