

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Resolución problemas de implementación de Amazon ECS
<a name="troubleshooting-ecs"></a>

**Topics**
+ [Se agota el tiempo de espera mientras se espera a que se establezca la tarea de reemplazo](#troubleshooting-ecs-timeout)
+ [Se agota el tiempo de espera mientras se espera a que continúe una notificación](#troubleshooting-ecs-timeout-notif)
+ [El rol de IAM no tiene permisos suficientes](#troubleshooting-ecs-iam)
+ [Se agotó el tiempo de espera de la implementación mientras se esperaba una llamada de estado](#troubleshooting-ecs-timeout-callback)
+ [La implementación falló porque una o más de las funciones de validación de eventos del ciclo de vida fallaron](#troubleshooting-ecs-lifecycle)
+ [No se pudo actualizar el ELB debido al siguiente error: el grupo objetivo del conjunto de tareas principal debe estar detrás del oyente](#troubleshooting-ecs-elb)
+ [Mi implementación a veces falla cuando uso el escalado automático](#troubleshooting-ecs-auto-scaling)
+ [Solo ALB admite el enrutamiento de tráfico gradual; utilice el enrutamiento de AllAtOnce tráfico en su lugar cuando create/update despliegue un grupo](#troubleshooting-ecs-lb)
+ [A pesar de que mi implementación se realizó correctamente, el conjunto de tareas de reemplazo no pasa las comprobaciones de estado de Elastic Load Balancing y mi aplicación no funciona](#troubleshooting-ecs-task-set-stability)
+ [¿Puedo asociar varios equilibradores de carga a un grupo de implementación?](#troubleshooting-ecs-lb-multi)
+ [¿Puedo realizar despliegues CodeDeploy azules o verdes sin un balanceador de carga?](#troubleshooting-ecs-lb-bg)
+ [¿Cómo puedo actualizar mi servicio de Amazon ECS con nueva información durante una implementación?](#troubleshooting-ecs-exec)

## Se agota el tiempo de espera mientras se espera a que se establezca la tarea de reemplazo
<a name="troubleshooting-ecs-timeout"></a>

**Problema**: aparece el siguiente mensaje de error al implementar la aplicación Amazon ECS mediante CodeDeploy:

`The deployment timed out while waiting for the replacement task set to become healthy. This time out period is 60 minutes.`

**Causa posible**: este error puede producirse si hay un error en el archivo de definición de tareas o en otros archivos relacionados con la implementación. Por ejemplo, si hay un error tipográfico en el campo `image` del archivo de definición de tareas, Amazon ECS intentará obtener la imagen del contenedor incorrecta y fallará continuamente, lo que provocará este error.

**Posibles soluciones y próximos pasos**:
+ Corrija los errores tipográficos y los problemas de configuración en el archivo de definición de tareas y en otros archivos.
+ Consulte el evento relacionado con el servicio de Amazon ECS y descubra por qué las tareas de reemplazo no funcionan correctamente. Para obtener más información sobre los eventos de Amazon ECS, consulte [Eventos de Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_cwe_events.html) en la *Guía para desarrolladores de Amazon Elastic Container Service*.
+ Consulte la sección de [solución de problemas de Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/troubleshooting.html) de la *Guía para desarrolladores de Amazon Elastic Container Service* para ver los errores relacionados con los mensajes del evento.

## Se agota el tiempo de espera mientras se espera a que continúe una notificación
<a name="troubleshooting-ecs-timeout-notif"></a>

**Problema**: aparece el siguiente mensaje de error al implementar la aplicación Amazon ECS mediante CodeDeploy:

 `The deployment timed out while waiting for a notification to continue. This time out period is n minutes.` 

**Causa posible**: este error puede producirse si especificó un tiempo de espera en el campo **Especifique cuándo redirigir el tráfico** al crear el grupo de implementación, pero la implementación no pudo finalizar antes de que expirara el tiempo de espera.

**Posibles soluciones y próximos pasos**:
+ En su grupo de implementación, establezca la opción **Especificar cuándo redirigir el tráfico** en un período de tiempo mayor y vuelva a realizar la implementación. Para obtener más información, consulte [Creación de un grupo de implementación para una implementación de Amazon ECS (consola)](deployment-groups-create-ecs.md).
+ En su grupo de implementación, cambie **Especificar cuándo redirigir el tráfico** a **Reenrutar el tráfico inmediatamente** y vuelva a implementar. Para obtener más información, consulte [Creación de un grupo de implementación para una implementación de Amazon ECS (consola)](deployment-groups-create-ecs.md).
+ Vuelva a implementar y, a continuación, ejecute el [https://docs.aws.amazon.com/cli/latest/reference/deploy/continue-deployment.html](https://docs.aws.amazon.com/cli/latest/reference/deploy/continue-deployment.html) AWS CLI comando con la `--deployment-wait-type` opción establecida en. `READY_WAIT` Asegúrese de ejecutar este comando *antes* de que venza el tiempo especificado en **Especificar cuándo redirigir el tráfico**.

## El rol de IAM no tiene permisos suficientes
<a name="troubleshooting-ecs-iam"></a>

**Problema**: aparece el siguiente mensaje de error al implementar la aplicación Amazon ECS mediante CodeDeploy:

 `The IAM role role-arn does not give you permission to perform operations in the following AWS service: AWSLambda.` 

**Causa posible**: este error puede producirse si especificó una función Lambda en la [`Hooks`sección del AppSpec archivo](reference-appspec-file-structure-hooks.md#appspec-hooks-ecs), pero no otorgó CodeDeploy permiso al servicio Lambda.

**Solución posible**: añadir el `lambda:InvokeFunction` permiso a la función de CodeDeploy servicio. Para añadir este permiso, añada al rol una de las siguientes políticas administradas por AWS: **AWSCodeDeployRoleForECS** o **AWSCodeDeployRoleForECSLimited**. Para obtener información sobre estas políticas y cómo añadirlas al rol CodeDeploy de servicio, consulte[Paso 2: Crear un rol de servicio para CodeDeploy](getting-started-create-service-role.md).

## Se agotó el tiempo de espera de la implementación mientras se esperaba una llamada de estado
<a name="troubleshooting-ecs-timeout-callback"></a>

**Problema**: aparece el siguiente mensaje de error al implementar la aplicación Amazon ECS mediante CodeDeploy:

 `The deployment timed out while waiting for a status callback. CodeDeploy expects a status callback within one hour after a deployment hook is invoked.` 

**Causa posible**: este error puede producirse si especificó una función Lambda en la [`Hooks`sección del AppSpec archivo, pero](reference-appspec-file-structure-hooks.md#appspec-hooks-ecs) la función Lambda no pudo llamar a la `PutLifecycleEventHookExecutionStatus` API necesaria para devolver un `Succeeded` estado o. `Failed` CodeDeploy

**Posibles soluciones y próximos pasos**:
+ Agregue el `codedeploy:putlifecycleEventHookExecutionStatus` permiso a la función de ejecución de Lambda utilizada por la función de Lambda que especificó en el archivo. AppSpec Este permiso otorga a la función Lambda la capacidad de devolver un estado igual `Succeeded` o `Failed` igual a. CodeDeploy Para obtener más información sobre el rol de ejecución de Lambda, consulte [Rol de ejecución de Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html) en la *Guía para desarrolladores de AWS Lambda *. 
+ Compruebe el código de la función Lambda y los registros de ejecución para asegurarse de que su función Lambda está llamando a la `PutLifecycleEventHookExecutionStatus` API para informar si la prueba de validación CodeDeploy del ciclo CodeDeploy de vida o. `Succeeded` `Failed` Para obtener información sobre la `putlifecycleEventHookExecutionStatus` API, consulte la referencia [PutLifecycleEventHookExecutionStatus](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_PutLifecycleEventHookExecutionStatus.html)de la *AWS CodeDeploy API*. Para obtener información sobre los registros de ejecución de Lambda, consulte Acceder a los [ CloudWatch registros de Amazon](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-cloudwatchlogs.html) para. AWS Lambda

## La implementación falló porque una o más de las funciones de validación de eventos del ciclo de vida fallaron
<a name="troubleshooting-ecs-lifecycle"></a>

**Problema**: aparece el siguiente mensaje de error al implementar la aplicación Amazon ECS mediante CodeDeploy:

`The deployment failed because one or more of the lifecycle event validation functions failed.`

**Causa posible**: este error puede producirse si especificó una función Lambda en la [`Hooks`sección del AppSpec archivo](reference-appspec-file-structure-hooks.md#appspec-hooks-ecs), pero la función Lambda regresó `Failed` a CodeDeploy ella cuando se llamó. `PutLifecycleEventHookExecutionStatus` Este error indica CodeDeploy que la prueba de validación del ciclo de vida ha fallado.

**Posible paso siguiente**: compruebe los registros de ejecución de Lambda para ver por qué falla el código de la prueba de validación. Para obtener información sobre los registros de ejecución de Lambda, consulte Acceder a los [ CloudWatch registros de Amazon](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-cloudwatchlogs.html) para. AWS Lambda

## No se pudo actualizar el ELB debido al siguiente error: el grupo objetivo del conjunto de tareas principal debe estar detrás del oyente
<a name="troubleshooting-ecs-elb"></a>

**Problema**: aparece el siguiente mensaje de error al implementar la aplicación Amazon ECS mediante CodeDeploy:

`The ELB could not be updated due to the following error: Primary taskset target group must be behind listener`

**Causa posible**: este error puede producirse si ha configurado un oyente de prueba opcional y está configurado con un grupo de destino incorrecto. Para obtener más información sobre el detector de pruebas en CodeDeploy, consulte [Antes de empezar una implementación de Amazon ECS](deployment-steps-ecs.md#deployment-steps-prerequisites-ecs) y[¿Qué sucede durante una implementación de Amazon ECS?](deployment-steps-ecs.md#deployment-steps-what-happens). Para obtener más información sobre los conjuntos de tareas, consulte [TaskSet](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_TaskSet.html)la *referencia de la API de Amazon Elastic Container Service* y [describe-task-set](https://docs.aws.amazon.com/cli/latest/reference/ecs/describe-task-set.html)la sección Amazon ECS de la *referencia de AWS CLI comandos*.

**Posible solución**: asegúrese de que tanto el oyente de producción como el oyente de prueba de Elastic Load Balancing apunten al grupo de destino que actualmente atiende sus cargas de trabajo. Hay tres lugares para comprobarlo:
+ En Amazon EC2, en la configuración de **Oyentes y reglas** del equilibrador de carga. Para obtener más información, consulte [Oyentes para equilibradores de carga de aplicación](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html)en la *Guía de equilibradores de carga de aplicación* y [Oyentes para equilibradores de carga de red](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-listeners.html) en la *Guía de equilibradores de carga de red*.
+ En Amazon ECS, en su clúster, en la configuración de **Red** de su servicio. Para obtener más información, consulte [Consideraciones sobre el Equilibrador de carga de aplicación y el Equilibrador de carga de red](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/load-balancer-types.html#alb-considerations) en la *Guía del usuario de Amazon Elastic Container Service*
+ En CodeDeploy, en la configuración de su grupo de despliegues. Para obtener más información, consulte [Creación de un grupo de implementación para una implementación de Amazon ECS (consola)](deployment-groups-create-ecs.md).

## Mi implementación a veces falla cuando uso el escalado automático
<a name="troubleshooting-ecs-auto-scaling"></a>

**Problema**: Está utilizando Auto Scaling con CodeDeploy y observa que sus despliegues a veces fallan. Para obtener más información sobre los síntomas de este problema, consulte el tema que dice En el caso de [los servicios configurados para usar el autoescalado del servicio y el tipo de blue/green implementación, el autoescalado no se bloquea durante una implementación, pero la implementación puede fallar en algunas circunstancias](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-bluegreen.html#deployment-type-bluegreen-considerations) en la *Guía para desarrolladores de Amazon Elastic Container Service*.

**Causa posible**: este problema puede producirse si CodeDeploy los procesos de Auto Scaling entran en conflicto.

**Solución posible**: Suspenda y reanude los procesos de Auto Scaling durante el CodeDeploy despliegue mediante la `RegisterScalableTarget` API (o el `register-scalable-target` AWS CLI comando correspondiente). Para obtener más información, consulte [Suspender y reanudar el escalado para el escalado automático de aplicaciones](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-suspend-resume-scaling.html) en la *Guía del usuario de escalado automático de aplicaciones*.

**nota**  
CodeDeploy no puedo llamar `RegisterScaleableTarget` directamente. Para utilizar esta API, debe configurarla CodeDeploy para enviar una notificación o un evento a Amazon Simple Notification Service (o Amazon CloudWatch). A continuación, debe configurar Amazon SNS (o CloudWatch) para que llame a una función de Lambda y configurar la función de Lambda para que llame a la API. `RegisterScalableTarget` Se debe llamar a la API de `RegisterScalableTarget` con el parámetro `SuspendedState` establecido en `true` para suspender las operaciones de escalado automático, y en `false` para reanudarlas.  
La notificación o el evento que se CodeDeploy envía debe producirse cuando se inicia un despliegue (para activar la suspensión de las operaciones de Auto Scaling) o cuando un despliegue tiene éxito, falla o se detiene (para activar la reanudación de las operaciones de Auto Scaling).   
Para obtener información sobre cómo CodeDeploy configurar la generación de notificaciones o CloudWatch eventos de Amazon SNS, consulte[Supervisión de despliegues con Amazon Events CloudWatch](monitoring-cloudwatch-events.md). y. [Monitorización de implementaciones con notificaciones de eventos de Amazon SNS](monitoring-sns-event-notifications.md)

## Solo ALB admite el enrutamiento de tráfico gradual; utilice el enrutamiento de AllAtOnce tráfico en su lugar cuando create/update despliegue un grupo
<a name="troubleshooting-ecs-lb"></a>

**Problema**: aparece el siguiente mensaje de error al crear o actualizar un grupo de implementación en: CodeDeploy

 `Only ALB supports gradual traffic routing, use AllAtOnce Traffic routing instead when you create/update Deployment group.` 

**Causa posible**: este error puede producirse si utiliza un equilibrador de carga de red e intenta utilizar una configuración de implementación predefinida distinta de `CodeDeployDefault.ECSAllAtOnce`.

**Soluciones posibles**:
+ Cambie la configuración de implementación predefinida a `CodeDeployDefault.ECSAllAtOnce`. Esta es la única configuración de implementación admitida por los equilibradores de carga de red.

  Para obtener más información acerca de las configuraciones de implementación predefinidas, consulte [Configuraciones de implementación predefinidas para una plataforma de informática de Amazon ECS](deployment-configurations.md#deployment-configurations-predefined-ecs).
+ Cambie el equilibrador de carga a un equilibrador de carga de red. Los equilibradores de carga de aplicación admiten todas las configuraciones de implementación predefinidas. Para obtener más información acerca de cómo crear un equilibrador de carga de aplicación, consulte [Configure un balanceador de carga, grupos objetivo y agentes de escucha para las implementaciones de CodeDeploy Amazon ECS](deployment-groups-create-load-balancer-for-ecs.md).

## A pesar de que mi implementación se realizó correctamente, el conjunto de tareas de reemplazo no pasa las comprobaciones de estado de Elastic Load Balancing y mi aplicación no funciona
<a name="troubleshooting-ecs-task-set-stability"></a>

**Problema**: aunque CodeDeploy indica que mi implementación se ha realizado correctamente, el conjunto de tareas de reemplazo no supera las comprobaciones de estado de Elastic Load Balancing y mi aplicación no funciona.

**Causa posible**: este problema puede producirse si ha realizado una CodeDeploy all-at-once implementación y el conjunto de tareas de reemplazo (verde) contiene un código incorrecto que provoca que las comprobaciones de estado de Elastic Load Balancing no se realicen correctamente. Con la configuración de all-at-once despliegue, las comprobaciones de estado del balanceador de cargas comienzan a ejecutarse en el conjunto de tareas de reemplazo una *vez* que el tráfico se ha transferido a él (es decir, *después* de que se produzca el evento CodeDeploy del `AllowTraffic` ciclo de vida). Por este motivo, observará que las comprobaciones de estado no se superarán en el conjunto de tareas de reemplazo después de desviar el tráfico, pero no antes. Para obtener información sobre los eventos del ciclo de vida que se CodeDeploy generan, consulte[¿Qué sucede durante una implementación de Amazon ECS?](deployment-steps-ecs.md#deployment-steps-what-happens).

**Posibles soluciones**:
+ Cambie la configuración de despliegue all-at-once a canaria o lineal. En una configuración lineal o lineal, las comprobaciones de estado del balanceador de cargas comienzan a ejecutarse en el conjunto de tareas de reemplazo mientras se CodeDeploy instala la aplicación en el entorno de reemplazo y *antes* de que se desplace el tráfico (es decir, durante el evento `Install` del ciclo de vida y *antes* del `AllowTraffic` evento). Al permitir que las comprobaciones se ejecuten durante la instalación de la aplicación, pero antes de que se desvíe el tráfico, se detectará un código incorrecto de la aplicación y se producirán errores de implementación antes de que la aplicación esté disponible públicamente.

  Para obtener más información acerca de cómo configurar implementaciones de valor controlado o lineales, consulte [Cambie la configuración del grupo de implementación con CodeDeploy](deployment-groups-edit.md). 

  Para obtener información sobre los eventos CodeDeploy del ciclo de vida que se ejecutan durante una implementación de Amazon ECS, consulte[¿Qué sucede durante una implementación de Amazon ECS?](deployment-steps-ecs.md#deployment-steps-what-happens).
**nota**  
Las configuraciones de implementación lineal y de valor controlado solo son compatibles con los equilibradores de carga de aplicación.
+ Si desea conservar la configuración de all-at-once implementación, configure un detector de pruebas y compruebe el estado de la tarea de reemplazo establecida con el enlace de `BeforeAllowTraffic` ciclo de vida. Para obtener más información, consulte [Lista de enlaces de eventos de ciclo de vida para una implementación de Amazon ECS](reference-appspec-file-structure-hooks.md#reference-appspec-file-structure-hooks-list-ecs).

## ¿Puedo asociar varios equilibradores de carga a un grupo de implementación?
<a name="troubleshooting-ecs-lb-multi"></a>

No. Si desea utilizar varios balanceadores de carga de aplicaciones o balanceadores de carga de red, utilice las actualizaciones sucesivas de Amazon ECS en lugar de las implementaciones CodeDeploy azul/verde. Para obtener más información acerca de las actualizaciones continuas, consulte [Actualización continua](https://docs.aws.amazon.com/AmazonECS/latest/userguide/deployment-type-ecs.html) en la *Guía para desarrolladores de Amazon Elastic Container Service*. Para obtener más información acerca del uso de varios equilibradores de carga con Amazon ECS, consulte [Registro de varios grupos de destino con un servicio](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/register-multiple-targetgroups.html) en la *Guía para desarrolladores de Amazon Elastic Container Service*.

## ¿Puedo realizar despliegues CodeDeploy azules o verdes sin un balanceador de carga?
<a name="troubleshooting-ecs-lb-bg"></a>

No, no puedes realizar despliegues CodeDeploy azules o verdes sin un balanceador de carga. Si no puede utilizar un equilibrador de carga, utilice en su lugar la característica de actualizaciones continuas de Amazon ECS. Para obtener más información acerca de las actualizaciones continuas de Amazon ECS, consulte [Actualización continua](https://docs.aws.amazon.com/AmazonECS/latest/userguide/deployment-type-ecs.html) en la *Guía para desarrolladores de Amazon Elastic Container Service*.

## ¿Cómo puedo actualizar mi servicio de Amazon ECS con nueva información durante una implementación?
<a name="troubleshooting-ecs-exec"></a>

Para CodeDeploy actualizar su servicio Amazon ECS con un parámetro nuevo mientras lleva a cabo una implementación, especifique el parámetro en la `resources` sección del AppSpec archivo. Solo se admiten algunos parámetros de Amazon ECS CodeDeploy, como el archivo de definición de tareas y los parámetros del nombre del contenedor. Para obtener una lista completa de los parámetros de Amazon ECS que CodeDeploy se pueden actualizar, consulte[AppSpec sección de «recursos» para las implementaciones de Amazon ECS](reference-appspec-file-structure-resources.md#reference-appspec-file-structure-resources-ecs).

**nota**  
Si necesita actualizar su servicio Amazon ECS con un parámetro que no es compatible con CodeDeploy, complete estas tareas:  
Llame a la API `UpdateService` de Amazon ECS con el parámetro que desee actualizar. Para obtener una lista completa de los parámetros que se pueden actualizar, consulte la *referencia [UpdateService](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_UpdateService.html)de la API de Amazon Elastic Container Service*. 
Para aplicar el cambio a las tareas, cree una nueva blue/green implementación de Amazon ECS. Para obtener más información, consulte [Creación de una implementación en una plataforma de informática de Amazon ECS (consola)](deployments-create-console-ecs.md).