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.
Déploiement de services Amazon ECS à l’aide d’un contrôleur tiers
Le type de déploiement externe vous permet d'utiliser n'importe quel contrôleur de déploiement tiers pour un contrôle complet du processus de déploiement pour un service Amazon ECS service. Les détails pour votre service sont gérés par les actions d'API de gestion de service (CreateService, UpdateService et DeleteService) ou par les actions d'API de gestion des tâches définies (CreateTaskSet, UpdateTaskSet, UpdateServicePrimaryTaskSet et DeleteTaskSet). Chaque action d'API gère un sous-ensemble de paramètres de définition de service.
L'action d'API UpdateService met à jour le nombre souhaité et les paramètres de période de délai supplémentaire des surveillances de l'état pour un service. Si l’option de calcul, la version de plateforme, les détails de l’équilibreur de charge, la configuration réseau ou la définition de tâche doivent être mis à jour, vous devez créer un jeu de tâches.
L'action d'API UpdateTaskSet met à jour uniquement le paramètre d'échelle pour un ensemble de tâches.
L'action d'API UpdateServicePrimaryTaskSet modifie l'ensemble de tâches dans un service qui est l'ensemble de tâches principal. Lorsque vous appelez l'action d'API DescribeServices, elle renvoie tous les champs spécifiés pour un ensemble de tâches principal. Si l'ensemble de tâches principal d'un service est mis à jour, toutes les valeurs de paramètres de l'ensemble de tâches qui existe sur l'ensemble de tâches principal différent de l'ancienne tâche principale dans un service sont mises à jour vers la nouvelle valeur lorsqu'un ensemble de tâches principal est défini. Si aucun ensemble de tâches principale n'est défini pour un service, les champs de l'ensemble de tâches sont vides pour la description de service.
Considérations relatives au déploiement externe
Tenez compte des éléments suivants lorsque vous utilisez le type de déploiement externe :
-
Les types d'équilibreur de charge pris en charge sont un Application Load Balancer ou un Network Load Balancer.
-
Les types de contrôleurs de déploiement Fargate ou
EXTERNALne prennent pas en charge la stratégie de planificationDAEMON. -
L' AutoScaling intégration des applications avec Amazon ECS prend uniquement en charge le service Amazon ECS en tant que cible. La dimension de capacité de mise à l’échelle prise en charge pour Amazon ECS est
ecs:service:DesiredCount, soit le nombre de tâches d’un service Amazon ECS. Il n'existe aucune intégration directe entre l'application AutoScaling et les ensembles de tâches Amazon ECS. Les jeux de tâches Amazon ECS calculent leComputedDesiredCounten fonction duDesiredCountdu service Amazon ECS.
Workflow de déploiement externe
Voici le flux de travail de base pour la gestion d’un déploiement externe sur Amazon ECS.
Pour gérer un service Amazon ECS service à l'aide d'un contrôleur de déploiement externe
-
Créez un service Amazon ECS service. Le seul paramètre requis est le nom de service. Vous pouvez spécifier les paramètres suivants lors de la création d'un service à l'aide d'un contrôleur de déploiement externe. Tous les autres paramètres de service sont spécifiés lors de la création d'un ensemble de tâches dans le service.
serviceName-
Type : String
Obligatoire : oui
Nom de votre service. Jusqu'à 255 lettres (majuscules et minuscules), chiffres, traits d'union et traits de soulignement sont autorisés. 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.
desiredCount-
Le nombre d'instances sur la définition de tâche d'ensemble de tâches spécifié à placer et à continuer d'exécuter au sein du service.
deploymentConfiguration-
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.
-
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 Balisage des ressources Amazon ECS.
Lorsque vous mettez à jour un service, ce paramètre ne déclenche pas le déploiement d’un nouveau service.
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-
Spécifie si utiliser les identifications gérées par Amazon ECS pour les tâches dans le service. Pour de plus amples informations, veuillez consulter Mise à jour des balises pour la facturation.
propagateTags-
Type : String
Valeurs valides :
TASK_DEFINITION|SERVICEObligatoire : 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 du service ou de la tâche, utilisez l'action d'API
TagResource.Lorsque vous mettez à jour un service, ce paramètre ne déclenche pas le déploiement d’un nouveau service.
schedulingStrategy-
Stratégie de planification à utiliser. Les services utilisant un contrôleur de déploiement externe prennent uniquement en charge la stratégie de planification
REPLICA. placementConstraints-
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 comprend les contraintes de la définition de tâche et celles spécifiées lors de l'exécution). Si vous utilisez Fargate, les contraintes de placement des tâches ne sont pas prises en charge.
placementStrategy-
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.
Voici un exemple de définition de service pour la création d'un service qui utilise un contrôleur de déploiement externe.
{ "cluster": "", "serviceName": "", "desiredCount": 0, "role": "", "deploymentConfiguration": { "maximumPercent": 0, "minimumHealthyPercent": 0 }, "placementConstraints": [ { "type": "distinctInstance", "expression": "" } ], "placementStrategy": [ { "type": "binpack", "field": "" } ], "schedulingStrategy": "REPLICA", "deploymentController": { "type": "EXTERNAL" }, "tags": [ { "key": "", "value": "" } ], "enableECSManagedTags": true, "propagateTags": "TASK_DEFINITION" } -
Créez un ensemble de tâches initial. L'ensemble de tâches contient les détails suivants pour votre service :
taskDefinition-
La définition de tâche pour les tâches dans l'ensemble de tâches à utiliser.
launchType-
Type : String
Valeurs valides :
EC2|FARGATE|EXTERNALObligatoire : non
Type de lancement sur lequel vous pouvez exécuter votre service. Si aucun type de lancement n'est spécifié, the
capacityProviderStrategypar défaut est utilisé par défaut.Lorsque vous mettez à jour un service, ce paramètre déclenche un nouveau déploiement de service.
Si un
launchTypeest spécifié, le paramètrecapacityProviderStrategydoit être omis. 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.Lorsque vous mettez à jour un service, ce paramètre déclenche un nouveau déploiement de service.
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
LATESTcomme 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 plateforme ne sont pas spécifiées pour les tâches utilisant le type de lancement EC2.
loadBalancers-
Un objet d'équilibreur de charge qui représente l'équilibreur de charge à utiliser avec votre service. Lorsque vous utilisez un contrôleur de déploiement externe, seuls les équilibreurs de charge Application Load Balancer et les Network Load Balancer sont pris en charge. Si vous utilisez un équilibreur de charge Application Load Balancer, seul un groupe cible d'équilibreur de charge Application Load Balancer est autorisé par tâche.
L'extrait de code suivant montre un exemple d'objet
loadBalancerà utiliser."loadBalancers": [ { "targetGroupArn": "", "containerName": "", "containerPort": 0 } ]Note
Lorsque vous spécifiez un objet
loadBalancer, vous devez spécifiertargetGroupArnet omettre les paramètresloadBalancerName. networkConfiguration-
Configuration réseau du service. Ce paramètre est obligatoire pour les définitions de tâches qui utilisent le mode réseau
awsvpcafin de recevoir leur propre interface réseau Elastic. Il n'est pas pris en charge avec les autres modes réseau. Pour plus d’informations sur la mise en réseau pour Fargate, consultez la section Options de mise en réseau des tâches Amazon ECS pour Fargate. serviceRegistries-
Les détails des enregistrements de découverte de service à attribuer à ce service. Pour de plus amples informations, veuillez consulter Utilisation de la découverte de service pour connecter les services Amazon ECS avec des noms DNS.
scale-
Pourcentage à virgule flottante du nombre souhaité de tâches à placer et à continuer d'exécuter dans l'ensemble de tâches. La valeur est spécifiée en tant que pourcentage total de
desiredCountd'un service. Les valeurs acceptées sont des nombres compris entre 0 et 100.
Voici un exemple JSON pour créer un ensemble de tâches pour un contrôleur de déploiement externe.
{ "service": "", "cluster": "", "externalId": "", "taskDefinition": "", "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "" ], "securityGroups": [ "" ], "assignPublicIp": "DISABLED" } }, "loadBalancers": [ { "targetGroupArn": "", "containerName": "", "containerPort": 0 } ], "serviceRegistries": [ { "registryArn": "", "port": 0, "containerName": "", "containerPort": 0 } ], "launchType": "EC2", "capacityProviderStrategy": [ { "capacityProvider": "", "weight": 0, "base": 0 } ], "platformVersion": "", "scale": { "value": null, "unit": "PERCENT" }, "clientToken": "" } -
Lorsque des modifications de service sont nécessaires, utilisez l'action d'API
CreateTaskSet,UpdateServiceouUpdateTaskSet, en fonction des paramètres que vous mettez à jour. Si vous avez créé un ensemble de tâches, utilisez le paramètrescalepour chaque ensemble de tâches dans un service afin de déterminer le nombre de tâches à continuer d'exécuter dans le service. Par exemple, si vous disposez d'un service qui contienttasksetAet que vous créez untasksetB, vous pouvez tester la validité detasksetBavant de vouloir lui transférer du trafic de production. Vous pouvez régler l'scalepour les deux ensembles de tâches sur100, et une fois prêt à transférer tout le trafic de production surtasksetB, vous pouvez mettre à jour l'scaledetasksetAsur0pour le diminuer.