Comment résoudre les erreurs qui s’affichent lorsque je configure mon déploiement bleu/vert Amazon ECS dans CloudFormation ?
Lorsque je configure un déploiement bleu/vert d'Amazon Elastic Container Service (Amazon ECS) dans AWS CloudFormation, des erreurs s'affichent.
Résolution
Lorsque vous utilisez le hook AWS::CodeDeploy::BlueGreen dans CloudFormation, un message d'erreur peut s’afficher. Pour résoudre votre erreur, suivez les sections de résolution applicables.
Erreur d’échec de l’analyse
Si vous n'accordez pas les autorisations ou si vous n'incluez pas la propriété Poids dans le modèle, AWS CodeDeploy ne parvient pas à analyser la section Hooks du modèle fournie. Le message d'erreur suivant peut s’afficher :
« 'CodeDeployBlueGreenHook' of type AWS::CodeDeploy::BlueGreen failed with message: Internal Failure »
Lorsque vous créez un jeu de modifications qui active un déploiement bleu/vert, vous devez associer le rôle Gestion des identités et des accès AWS (AWS IAM) du service CloudFormation à votre pile CloudFormation. Pour résoudre cette erreur, accordez au rôle de service les autorisations nécessaires pour exécuter les opérations de pile.
Remarque : Une fois que CodeDeploy a créé la pile, vous ne pouvez pas supprimer le rôle de service de la pile.
Si vous définissez DefaultAction pour inclure la propriété ForwardConfig, mais que vous n'avez pas inclus la propriété Poids dans votre type de ressource AWS::ElasticLoadBalancingV2::Listener, le hook CodeDeploy échoue. Pour résoudre cette erreur, assurez-vous d'inclure la propriété Poids dans votre type de ressource.
Erreur liée à une ressource supplémentaire
L'erreur suivante se produit lorsque vous incluez des mises à jour de ressources qui lancent des déploiements verts et des mises à jour d'autres ressources dans la même mise à jour de pile :
« Additional resource diff other than Amazon ECS application related resource update is detected,CodeDeploy can't perform BlueGreen style update properly. Diff resource logical Ids: [] »
Pour résoudre cette erreur, procédez comme suit :
- Effectuez deux opérations de mise à jour de pile distinctes.
Remarque : Une mise à jour de la pile doit inclure uniquement les ressources mises à jour qui lancent des déploiements verts (AWS::ECS::TaskDefinition et AWS::ECS::TaskSet). La deuxième mise à jour de la pile doit inclure les modifications apportées aux autres ressources. - Supprimez les sections Transformation et Hooks de votre modèle CloudFormation, puis effectuez la mise à jour de la pile. Remarque : Dans ce cas, CloudFormation n'effectuera pas de déploiement vert.
Erreur liée à une absence de prise en charge
Les configurations d'importation ou d'exportation dans le modèle CloudFormation ne sont pas prises en charge. Si vous déclarez des sorties ou si vous utilisez Fn::ImportValue pour importer des valeurs depuis d'autres piles pour les modèles qui définissent les déploiements bleu/vert d'Amazon ECS, l'erreur suivante s'affiche :
« Imports and exports are currently not supported on templates using hooks »
Pour résoudre cette erreur, n'utilisez pas les importations ni les exportations dans votre modèle.
CodeDeploy ne peut pas mettre à jour les paramètres qui utilisent des références dynamiques pour récupérer leurs valeurs auprès de tiers, ou qui ne présentent pas de définition d'attribut NoEcho lors d'un déploiement vert. Lorsque vous utilisez des références dynamiques, l'erreur suivante peut s'afficher :
« 'CodeDeployBlueGreenHook' of type AWS::CodeDeploy::BlueGreen failed with message: NoEcho parameter Dynamic references is not supported in template when using AWS::CodeDeploy::BlueGreen Hook »
Pour résoudre cette erreur, n'utilisez pas de références dynamiques dans votre modèle.
Erreur liée à l'écouteur de test
Si vous spécifiez un écouteur de test qui pointe déjà vers le groupe cible vert, le hook CodeDeploy échoue et l'erreur suivante s’affiche :
« 'CodeDeployBlueGreenHook' of type AWS::CodeDeploy::BlueGreen failed with message: Replacement target group [ALBTargetGroupGreen] is already serving traffic behind listener [ALBListenerTestTraffic] »
Pour résoudre cette erreur, assurez-vous que les champs Production et Écouteurs de test ont la même valeur lorsque vous chargez le modèle CloudFormation.
Erreur liée à une transformation manquante
Si vous n'incluez pas la section Transformation dans le modèle CloudFormation mis à jour, la transformation n'est pas invoquée. Si les ID logiques de ressources de déploiement bleu/vert ne sont pas transformés, le message d'erreur suivant s'affiche :
« 'CodeDeployBlueGreenHook' of type AWS::CodeDeploy::BlueGreen failed with message: La définition de tâche principale « BlueTaskDefinition » du modèle soumis n'a jamais été mise à jour. The template's 'AWS::CodeDeployBlueGreen' Transform might be missing or removed »
Pour résoudre cette erreur, assurez-vous d'inclure la section Transformation dans votre modèle CloudFormation avant de mettre à jour votre pile CloudFormation.
Erreur liée à l’équilibreur de charge
Le type TrafficRoutingconfig doit être défini sur AllAtOnce. Si vous incluez un Network Load Balancer dans votre modèle et que le hook AWS::CodeDeploy::BlueGreen et le type TrafficRoutingConfig sont définis comme TimeBasedCanary ou TimeBasedLinear, le message d'erreur suivant s'affiche :
« 'CodeDeployBlueGreenHook' of type AWS::CodeDeploy::BlueGreen failed with message: Seul le type de configuration de routage du trafic AllAtOnce est pris en charge pour les Network Load Balancers. »
Pour résoudre cette erreur, assurez-vous de définir le type TrafficRoutingConfig sur AllAtOnce.
Si vous configurez l’Amazon Resource Name (ARN) de votre équilibreur de charge en tant que paramètre et que vous utilisez !Ref pour faire référence à la propriété LoadBalancerArn dans AWS::ElasticLoadBalancingV2::Listener, le message d'erreur suivant peut s'afficher :
« Transform AWS::CodeDeployBlueGreen failed with: Failed to transform template. Could not find AWS::ElasticLoadBalancingV2::LoadBalancer LoadBalancerArn »
Pour résoudre cette erreur, créez la ressource de l’équilibreur de charge dans votre modèle et référencez l'ARN dans votre propriété LoadBalancerArn. Vous pouvez également coder en dur l'ARN de l'équilibreur de charge dans votre propriété LoadBalancerArn.
Erreur liée au service Amazon ECS
Si vous ajoutez deux cibles de service Amazon ECS différentes qui partagent un seul Application Load Balancer sous la propriété Hooks Applications, le message d'erreur suivant peut s'afficher :
« 'CodeDeployBlueGreenHook' of type AWS::CodeDeploy::BlueGreen failed with message: Handler failed: Applications must have at most one application in AWS::CodeDeploy::BlueGreen Hook »
Pour résoudre cette erreur, assurez-vous de n'associer qu'un seul service Amazon ECS à l'Application Load Balancer.
- Sujets
- Management & Governance
- Balises
- AWS CloudFormation
- Langue
- Français

Contenus pertinents
- demandé il y a 6 mois
- demandé il y a 3 mois
- demandé il y a 4 mois
- demandé il y a 2 mois
AWS OFFICIELA mis à jour il y a 2 ans