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.
Résolution des problèmes liés aux mises à jour de la stratégie de déploiement Amazon ECS
Cette section fournit des solutions aux problèmes courants que vous pouvez rencontrer lors de la migration de stratégies de déploiement.
Révisions de services ou jeux de tâches multiples
Les problèmes suivants concernent le fait d’avoir plusieurs révisions de service pour un déploiement.
- Jeux de tâches multiples lors de la mise à jour du contrôleur de déploiement ECS
-
Message d’erreur :
Updating the deployment controller is not supported when there are multiple tasksets in the service. Please ensure your service has only one taskset and try again.Solution : cette erreur se produit lorsque vous tentez de modifier le type de contrôleur de déploiement d’un service comportant plusieurs jeux de tâches actifs. Pour résoudre ce problème pour le contrôleur de déploiement
CODE_DEPLOYouEXTERNAL:-
Vérifiez les jeux de tâches actuels :
aws ecs describe-services --clusteryour-cluster-name--servicesyour-service-name--query "services[0].taskSets" -
Attendez que tous les déploiements en cours soient terminés.
-
Forcez un nouveau déploiement pour nettoyer les jeux de tâches :
aws ecs update-service --clusteryour-cluster-name--serviceyour-service-name--force-new-deployment -
Si nécessaire, supprimez manuellement des jeux de tâches supplémentaires :
aws ecs delete-task-set --clusteryour-cluster-name--serviceyour-service-name--task-settask-set-id -
Lorsqu’il ne reste qu’un seul jeu de tâches, réessayez de mettre à jour le contrôleur de déploiement.
Pour de plus amples informations, veuillez consulter Contrôleurs et stratégies de déploiement de service Amazon ECS.
-
- Jeu de tâches principal manquant lors de la mise à jour du contrôleur de déploiement
ECS -
Message d’erreur :
Updating the deployment controller requires a primary taskset in the service. Please ensure your service has a primary taskset and try again.Solution : cette erreur se produit lorsque vous tentez de modifier le type de contrôleur de déploiement d’un service qui ne dispose pas d’un jeu de tâches principal. Pour résoudre ce problème :
-
Vérifiez l’état du service et les jeux de tâches. ). Si un jeu de tâches existe dans le service, il doit être marqué comme
ACTIVE.aws ecs describe-services --clusteryour-cluster-name--servicesyour-service-name--query "services[0].taskSets[*].[status,id]S’il n’y a aucun jeu de tâches dans l’état
ACTIVE, procédez à la migration du déploiement. Pour plus d’informations, consultez la section Approches de migration. -
Si aucune tâche n’est en cours d’exécution, déployez au moins une tâche en mettant à jour le service :
aws ecs update-service-primary-task-set --clusteryour-cluster-name--serviceyour-service-name--primary-task-set your-taskset-idCela marquera la tâche (auparavant
ACTIVE) définie dans le service comme ayant le statutPRIMARY. -
Attendez que la tâche atteigne un état d’exécution stable. Vous pouvez vérifier l’état en utilisant :
aws ecs describe-services --clusteryour-cluster-name--servicesyour-service-name--query "services[0].deployments" -
Une fois que le service dispose d’un jeu de tâches principales avec des tâches en cours d’exécution, réessayez de mettre à jour le contrôleur de déploiement.
Pour de plus amples informations, veuillez consulter Contrôleurs et stratégies de déploiement de service Amazon ECS.
-
Incompatibilité entre le type de détection des échecs de déploiement et le contrôleur de déploiement
Les problèmes suivants sont liés à une incompatibilité entre le type de détection des échecs de déploiement et le contrôleur de déploiement.
- Disjoncteur de déploiement avec contrôleur non-ECS
-
Message d’erreur :
Deployment circuit breaker feature is only supported with ECS deployment controller. Update to ECS deployment controller and try again.Solution : cette erreur se produit lorsque vous tentez d’activer la fonctionnalité de disjoncteur de déploiement sur un service qui n’utilise pas le contrôleur de déploiement
ECS. Le disjoncteur de déploiement n’est compatible qu’avec le contrôleur de déploiementECS.-
Vérifiez le contrôleur de déploiement actuel de votre service :
aws ecs describe-services --clusteryour-cluster-name--servicesyour-service-name--query "services[0].deploymentController" -
Mettez à jour votre service pour utiliser le contrôleur de déploiement
ECS:aws ecs update-service --clusteryour-cluster-name--serviceyour-service-name--deployment-controller type=ECS -
Une fois que le service utilise le contrôleur de déploiement
ECS, activez le disjoncteur de déploiement :aws ecs update-service --clusteryour-cluster-name--serviceyour-service-name--deployment-configuration "deploymentCircuitBreaker={enable=true,rollback=true}"
Pour de plus amples informations, veuillez consulter Détection des pannes par le disjoncteur de déploiement Amazon ECS.
-
- Restauration basée sur une alarme avec un contrôleur non-ECS
-
Message d’erreur :
Alarm based rollback feature is only supported with ECS deployment controller. Update to ECS deployment controller and try again.Solution : cette erreur se produit lors de la tentative de configuration de la restauration basée sur les alarmes sur un service qui n’utilise pas le contrôleur de déploiement
ECS. La fonctionnalité de restauration basée sur les alarmes n’est compatible qu’avec le contrôleur de déploiementECS.-
Vérifiez le contrôleur de déploiement actuel de votre service :
aws ecs describe-services --clusteryour-cluster-name--servicesyour-service-name--query "services[0].deploymentController" -
Mettez à jour votre service pour utiliser le contrôleur de déploiement
ECS:aws ecs update-service --clusteryour-cluster-name--serviceyour-service-name--deployment-controller type=ECS -
Une fois que le service utilise le contrôleur de déploiement
ECS, configurez la restauration basée sur les alarmes :aws ecs update-service --clusteryour-cluster-name--servicesyour-service-name--deployment-configuration "alarms={alarmNames=[your-alarm-name],enable=true,rollback=true}"
Pour de plus amples informations, veuillez consulter Comment les CloudWatch alarmes détectent les échecs de déploiement d'Amazon ECS.
-
Inadéquation entre Service Connect et le contrôleur de déploiement
Les problèmes suivants sont liés à une inadéquation entre Service Connect et le contrôleur de déploiement.
- Contrôleur
EXTERNALavec Service Connect -
Message d’erreur :
The EXTERNAL deployment controller type is not supported for services using Service Connect.Solution : cette erreur se produit lorsque vous tentez d’utiliser le contrôleur de déploiement
EXTERNALavec un service sur lequel Service Connect est activé. Le contrôleurEXTERNALn’est pas compatible avec Service Connect.-
Vérifiez si Service Connect est activé sur votre service :
aws ecs describe-services --clusteryour-cluster-name--services your-service-name --query "services[0].serviceConnectConfiguration" -
Si vous devez utiliser le contrôleur de déploiement
EXTERNAL, désactivez Service Connect en mettant à jour votre service :aws ecs update-service --cluster your-cluster-name --service your-service-name --service-connect-configuration "{}" -
Sinon, si vous devez utiliser Service Connect, utilisez plutôt le contrôleur de déploiement
ECS:aws ecs update-service --cluster your-cluster-name --service your-service-name --deployment-controller type=ECS
Pour de plus amples informations, veuillez consulter Contrôleurs et stratégies de déploiement de service Amazon ECS.
-
- Service Connect avec un contrôleur non-ECS
-
Message d’erreur :
Service Connect feature is only supported with ECS (rolling update) deployment controller. Update to ECS deployment controller and try again.Solution : cette erreur se produit lorsque vous tentez d’activer Service Connect sur un ordinateur qui n’utilise pas le contrôleur de déploiement
ECS. La fonctionnalité Service Connect n’est compatible qu’avec le contrôleur de déploiementECS.-
Vérifiez le contrôleur de déploiement actuel de votre service :
aws ecs describe-services --clusteryour-cluster-name--servicesyour-service-name--query "services[0].deploymentController" -
Mettez à jour votre service pour utiliser le contrôleur de déploiement ECS :
aws ecs update-service --clusteryour-cluster-name--serviceyour-service-name--deployment-controller type=ECS -
Une fois que le service utilise le contrôleur de déploiement ECS, activez Service Connect :
aws ecs update-service --clusteryour-cluster-name--serviceyour-service-name--service-connect-configuration "enabled=true,namespace=your-namespace"
Pour de plus amples informations, veuillez consulter Contrôleurs et stratégies de déploiement de service Amazon ECS.
-
Inadéquation entre le type de contrôleur et la stratégie de planification
Les problèmes suivants concernent une inadéquation entre le type de contrôleur et la stratégie de planification.
- Contrôleur
CODE_DEPLOYavec stratégie de planificationDAEMON -
Message d’erreur :
The CODE_DEPLOY deployment controller type is not supported for services using the DAEMON scheduling strategy.Solution : cette erreur se produit lorsque vous tentez d’utiliser le contrôleur de déploiement CODE_DEPLOY avec un service utilisant la stratégie de planification
DAEMON. Le contrôleurCODE_DEPLOYn’est compatible qu’avec la stratégie de planificationREPLICA.-
Vérifiez la stratégie de planification actuelle de votre service :
aws ecs describe-services --clusteryour-cluster-name--servicesyour-service-name--query "services[0].schedulingStrategy" -
Si vous avez besoin de blue/green déploiements, modifiez votre service pour utiliser la stratégie de
REPLICAplanification :aws ecs update-service --clusteryour-cluster-name--serviceyour-service-name--scheduling-strategy REPLICA -
Sinon, si vous devez utiliser la stratégie de planification
DAEMON, utilisez plutôt le contrôleur de déploiementECS:aws ecs update-service --clusteryour-cluster-name--serviceyour-service-name--deployment-controller type=ECS
Pour de plus amples informations, veuillez consulter Contrôleurs et stratégies de déploiement de service Amazon ECS.
-
- Contrôleur EXTERNE avec stratégie de planification DÉMON
-
Message d’erreur :
The EXTERNAL deployment controller type is not supported for services using the DAEMON scheduling strategy.Solution : cette erreur se produit lorsque vous tentez d’utiliser le contrôleur de déploiement EXTERNE avec un service ECS utilisant la stratégie de planification DÉMON. Le contrôleur EXTERNAL n’est compatible qu’avec la stratégie de planification REPLICA.
-
Vérifiez la stratégie de planification actuelle de votre service :
aws ecs describe-services --clusteryour-cluster-name--servicesyour-service-name--query "services[0].schedulingStrategy" -
Si vous devez utiliser le contrôleur de déploiement
EXTERNAL, modifiez votre service pour utiliser la stratégie de planificationREPLICA:aws ecs update-service --clusteryour-cluster-name--serviceyour-service-name--scheduling-strategy REPLICA -
Sinon, si vous devez utiliser la stratégie de planification
DAEMON, utilisez plutôt le contrôleur de déploiementECS:aws ecs update-service --clusteryour-cluster-name--serviceyour-service-name--deployment-controller type=ECS
Pour de plus amples informations, veuillez consulter Contrôleurs et stratégies de déploiement de service Amazon ECS.
-
- Enregistrements de services avec type de lancement externe
-
Message d’erreur :
Service registries are not supported for external launch type.Solution : cette erreur se produit lors de la tentative de configuration de la découverte de service (registres de services) pour un service utilisant le type de lancement
EXTERNAL. La découverte de service n’est pas compatible avec le type de lancementEXTERNAL.-
Vérifiez le type de lancement actuel de votre service :
aws ecs describe-services --clusteryour-cluster-name--servicesyour-service-name--query "services[0].launchType" -
Si vous avez besoin de la découverte de service, modifiez votre service pour utiliser le type de lancement
EC2ouFARGATE:aws ecs update-service --clusteryour-cluster-name--serviceyour-service-name--launch-type FARGATE -
Sinon, si vous devez utiliser le type de lancement
EXTERNAL, supprimez la configuration du registre du service :aws ecs update-service --clusteryour-cluster-name--serviceyour-service-name--service-registries "[]"
Pour de plus amples informations, veuillez consulter Contrôleurs et stratégies de déploiement de service Amazon ECS.
-
Rétablissement d’une mise à jour du contrôleur de déploiement
Si vous décidez de revenir au contrôleur de déploiement précédent, vous pouvez effectuer l’une des opérations suivantes :
-
Si vous l'avez utilisé CloudFormation, vous pouvez utiliser le modèle précédent pour créer une nouvelle pile. Pour plus d’informations, consultez la section Créer une pile sous dans le Guide de l’utilisateur CloudFormation .
-
Si vous avez utilisé la console Amazon ECS, ou la AWS CLI, vous pouvez mettre à jour le service. Pour de plus amples informations, veuillez consulter Mettre à jour un service Amazon ECS.
Si vous utilisez la commande update-service, utilisez l’option
--deployment-controlleret définissez-la sur le contrôleur de déploiement précédent.