¿Cómo soluciono los errores que aparecen al configurar mi despliegue azul-verde de Amazon ECS en CloudFormation?
Cuando configuro un despliegue azul-verde de Amazon Elastic Container Service (Amazon ECS) en AWS CloudFormation, aparecen errores.
Resolución
Al usar el enlace AWS::CodeDeploy::BlueGreen en CloudFormation, es posible que recibas un mensaje de error. Para solucionar el error, sigue las secciones de resolución aplicables.
Error al analizar
Si no concedes los permisos ni incluyes la propiedad Weight en la plantilla, AWS CodeDeploy no podrá analizar la sección Enlaces de la plantilla proporcionada. Es posible que aparezca el siguiente mensaje de error:
«'CodeDeployBlueGreenHook' of type AWS::CodeDeploy::BlueGreen failed with message: Internal Failure»
Al crear un conjunto de cambios que active un despliegue azul-verde, debes adjuntar el rol de AWS Identity and Access Management (IAM) del servicio CloudFormation a tu pila de CloudFormation. Para resolver este error, concede al rol de servicio los permisos para ejecutar las operaciones de pila.
Nota: Una vez que CodeDeploy crea la pila, no puedes eliminar el rol de servicio de la pila.
Si defines DefaultAction para que incluya la propiedad ForwardConfig, pero no incluyes la propiedad Weight en tu tipo de recurso AWS::ElasticLoadBalancingV2::Listener, se produce un error en el enlace de CodeDeploy. Para resolver este error, asegúrate de incluir la propiedad Weight en el tipo de recurso.
Error de recurso adicional
El siguiente error se produce cuando se incluyen actualizaciones de recursos que inician despliegues verdes y actualizaciones de otros recursos en la misma actualización de la pila:
«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: []»
Para resolver este error, sigue estos pasos:
- Realiza dos operaciones de actualización de la pila independientes.
Nota: Una actualización de la pila debe incluir solo los recursos actualizados que inician los despliegues verdes (AWS::ECS::TaskDefinition y AWS::ECS::TaskSet). La segunda actualización de la pila debe incluir cambios en otros recursos. - Elimina las secciones Transformación y Enlaces de tu plantilla de CloudFormation y, a continuación, realiza la actualización de la pila. Nota: En este caso, CloudFormation no realizará un despliegue verde.
Error No compatible
No se admiten las configuraciones de importación o exportación en la plantilla de CloudFormation. Si declaras salidas o usas Fn::ImportValue para importar valores de otras pilas para plantillas que definen los despliegues azul-verde de Amazon ECS, aparecerá el siguiente error:
«Imports and exports are currently not supported on templates using hooks»
Para resolver este error, no utilices importaciones ni exportaciones en la plantilla.
CodeDeploy no puede actualizar los parámetros que utilizan referencias dinámicas para recuperar sus valores de terceros o que no tienen una definición de atributo NoEcho durante un despliegue verde. Al usar referencias dinámicas, es posible que aparezca el siguiente error:
«'CodeDeployBlueGreenHook' of type AWS::CodeDeploy::BlueGreen failed with message: NoEcho parameter Dynamic references is not supported in template when using AWS::CodeDeploy::BlueGreen Hook»
Para resolver este error, no utilices referencias dinámicas en la plantilla.
Error del agente de escucha de prueba
Si especificas un agente de escucha de prueba que ya apunta al grupo objetivo verde, se produce un error en el enlace de CodeDeploy y aparece el siguiente error:
«'CodeDeployBlueGreenHook' of type AWS::CodeDeploy::BlueGreen failed with message: Replacement target group [ALBTargetGroupGreen] is already serving traffic behind listener [ALBListenerTestTraffic]»
Para resolver este error, asegúrate de que los campos Producción y Agentes de escucha de prueba tengan el mismo valor al cargar la plantilla de CloudFormation.
Error de transformación que falta
Si no incluyes la sección Transformación en la plantilla de CloudFormation actualizada, no se invoca la transformación. Si los identificadores lógicos de los recursos azules-verdes no se transforman, recibirás el siguiente error:
«'CodeDeployBlueGreenHook' of type AWS::CodeDeploy::BlueGreen failed with message: The submitted template's primary task definition 'BlueTaskDefinition' was never updated. The template's 'AWS::CodeDeployBlueGreen' Transform might be missing or removed»
Para resolver este error, asegúrate de incluir la sección Transformación en la plantilla de CloudFormation antes de actualizar la pila de CloudFormation.
Error en el equilibrador de carga
El tipo TrafficRoutingconfig debe establecerse en AllAtOnce. Si incluyes un equilibrador de carga de red en la plantilla y tienes el enlace AWS::CodeDeploy::BlueGreen y el tipo TrafficRoutingConfig establecidos como TimeBasedCanary o TimeBasedLinear, recibirás el siguiente error:
«'CodeDeployBlueGreenHook' of type AWS::CodeDeploy::BlueGreen failed with message: Only AllAtOnce traffic routing config type is supported for network load balancers».
Para resolver este error, asegúrate de establecer el tipo TrafficRoutingConfig en AllAtOnce.
Si configuras el nombre de recurso de Amazon (ARN) de tu equilibrador de carga como parámetro y usas !Ref para hacer referencia a la propiedad LoadBalancerArn en AWS::ElasticLoadBalancingV2::Listener, es posible que aparezca el siguiente error:
«Transform AWS::CodeDeployBlueGreen failed with: Failed to transform template. Could not find AWS::ElasticLoadBalancingV2::LoadBalancer LoadBalancerArn»
Para resolver este error, crea el recurso del equilibrador de carga en tu plantilla y haz referencia al ARN en tu propiedad LoadBalancerArn. O bien, puedes codificar el ARN del equilibrador de carga en tu propiedad LoadBalancerArn.
Error del servicio de Amazon ECS
Si agregas dos objetivos de servicio de Amazon ECS diferentes que comparten un único equilibrador de carga de aplicación en la propiedad aplicaciones de enlaces, es posible que recibas el siguiente error:
«'CodeDeployBlueGreenHook' of type AWS::CodeDeploy::BlueGreen failed with message: Handler failed: Applications must have at most one application in AWS::CodeDeploy::BlueGreen Hook»
Para resolver este error, asegúrate de adjuntar solo un servicio de Amazon ECS al equilibrador de carga de aplicación.
- Etiquetas
- AWS CloudFormation
- Idioma
- Español

Contenido relevante
- preguntada hace 7 meses
- preguntada hace 11 días
- Como solucionar el error: Supplied Policy document is breaching Cloudwatch Logs policy length limit.Respuesta aceptadapreguntada hace 10 meses
OFICIAL DE AWSActualizada hace un año
OFICIAL DE AWSActualizada hace 8 meses
OFICIAL DE AWSActualizada hace 7 meses