

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Solucionar problemas de implantação do Amazon ECS
<a name="troubleshooting-ecs"></a>

**Topics**
+ [Ocorre um tempo limite enquanto se aguarda o conjunto de tarefas de substituição](#troubleshooting-ecs-timeout)
+ [Ocorre um limite de tempo enquanto se aguarda a continuação de uma notificação](#troubleshooting-ecs-timeout-notif)
+ [O perfil do IAM não tem permissões suficientes](#troubleshooting-ecs-iam)
+ [A implantação atingiu o tempo limite enquanto aguardava um retorno de chamada de status](#troubleshooting-ecs-timeout-callback)
+ [A implantação falhou porque uma ou mais funções de validação de evento do ciclo de vida falharam](#troubleshooting-ecs-lifecycle)
+ [Não foi possível atualizar o ELB devido ao seguinte erro: o grupo de destino do conjunto de tarefas primário deve estar atrás do receptor](#troubleshooting-ecs-elb)
+ [Às vezes, minha implantação falha ao usar o ajuste de escala automático](#troubleshooting-ecs-auto-scaling)
+ [Somente o ALB oferece suporte ao roteamento gradual de tráfego; em vez disso, use o roteamento de AllAtOnce tráfego quando você estiver no grupo de implantação create/update](#troubleshooting-ecs-lb)
+ [Embora minha implantação tenha sido bem-sucedida, o conjunto de tarefas de substituição falha nas verificações de integridade do Elastic Load Balancing, e meu aplicativo está inativo](#troubleshooting-ecs-task-set-stability)
+ [Posso conectar vários balanceadores de carga a um grupo de implantação?](#troubleshooting-ecs-lb-multi)
+ [Posso realizar implantações em CodeDeploy azul/verde sem um balanceador de carga?](#troubleshooting-ecs-lb-bg)
+ [Como posso atualizar meu serviço Amazon ECS com novas informações durante uma implantação?](#troubleshooting-ecs-exec)

## Ocorre um tempo limite enquanto se aguarda o conjunto de tarefas de substituição
<a name="troubleshooting-ecs-timeout"></a>

**Problema**: Você vê a seguinte mensagem de erro ao implantar seu aplicativo Amazon ECS usando: CodeDeploy

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

**Possível causa**: esse erro pode ocorrer se houver um erro no arquivo de definição de tarefas ou em outros arquivos relacionados à implantação. Por exemplo, se houver um erro de digitação no campo `image` do seu arquivo de definição de tarefa, o Amazon ECS tentará extrair a imagem errada do contêiner e falhará continuamente, causando esse erro.

**Possíveis correções e próximas etapas**:
+ Corrija erros tipográficos e problemas de configuração no arquivo de definição de tarefas e em outros arquivos.
+ Confira o evento relacionado ao serviço Amazon ECS e descubra por que as tarefas de substituição não estão ficando íntegras. Para mais informações sobre eventos do Amazon ECS, consulte [Eventos do Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_cwe_events.html) no *Guia do desenvolvedor do Amazon Elastic Container Service*.
+ Consulte a seção de [Solução de problemas do Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/troubleshooting.html) no *Guia do desenvolvedor do Amazon Elastic Container Service* para ver se há erros relacionados às mensagens do evento.

## Ocorre um limite de tempo enquanto se aguarda a continuação de uma notificação
<a name="troubleshooting-ecs-timeout-notif"></a>

**Problema**: Você vê a seguinte mensagem de erro ao implantar seu aplicativo Amazon ECS usando: CodeDeploy

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

**Possível causa**: esse erro pode ocorrer se você especificou um tempo de espera no campo **Especificar quando redirecionar o tráfego** ao criar seu grupo de implantação, mas a implantação não pôde ser concluída antes que o tempo de espera expirasse.

**Possíveis correções e próximas etapas**:
+ Em seu grupo de implantação, defina **Especificar quando redirecionar o tráfego** para um período maior e reimplante. Para obter mais informações, consulte [Criar um grupo de implantação para uma implantação do Amazon ECS (console)](deployment-groups-create-ecs.md).
+ Em seu grupo de implantação, altere **Especificar quando redirecionar o tráfego** para **Redirecionar o tráfego imediatamente** e reimplante. Para obter mais informações, consulte [Criar um grupo de implantação para uma implantação do Amazon ECS (console)](deployment-groups-create-ecs.md).
+ Reimplante e, em seguida, execute o [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 com a `--deployment-wait-type` opção definida como. `READY_WAIT` Certifique-se de executar esse comando *antes* que o horário especificado em **Especificar quando redirecionar o tráfego** expire.

## O perfil do IAM não tem permissões suficientes
<a name="troubleshooting-ecs-iam"></a>

**Problema**: Você vê a seguinte mensagem de erro ao implantar seu aplicativo Amazon ECS usando: CodeDeploy

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

**Possível causa**: Esse erro pode ocorrer se você especificou uma função Lambda na [`Hooks`seção do AppSpec arquivo](reference-appspec-file-structure-hooks.md#appspec-hooks-ecs), mas não deu CodeDeploy permissão ao serviço Lambda.

**Possível correção**: adicione a `lambda:InvokeFunction` permissão à função CodeDeploy de serviço. Para adicionar essa permissão, adicione uma das seguintes políticas gerenciadas pela AWS ao perfil: **AWSCodeDeployRoleForECS** ou **AWSCodeDeployRoleForECSLimited**. Para obter informações sobre essas políticas e como adicioná-las à função CodeDeploy de serviço, consulte[Etapa 2: criar uma função de serviço para CodeDeploy](getting-started-create-service-role.md).

## A implantação atingiu o tempo limite enquanto aguardava um retorno de chamada de status
<a name="troubleshooting-ecs-timeout-callback"></a>

**Problema**: Você vê a seguinte mensagem de erro ao implantar seu aplicativo Amazon ECS usando: 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.` 

**Possível causa**: esse erro pode ocorrer se você especificar uma função Lambda na [`Hooks`seção do AppSpec arquivo](reference-appspec-file-structure-hooks.md#appspec-hooks-ecs), mas a função Lambda não conseguiu chamar a `PutLifecycleEventHookExecutionStatus` API necessária para retornar um `Succeeded` status ou para. `Failed` CodeDeploy

**Possíveis correções e próximas etapas**:
+ Adicione a `codedeploy:putlifecycleEventHookExecutionStatus` permissão à função de execução do Lambda usada pela função Lambda que você especificou no arquivo. AppSpec Essa permissão concede à função Lambda a capacidade de retornar um status de `Succeeded` ou `Failed` para. CodeDeploy Para obter informações sobre funções de execução do Lambda, consulte [Função de execução do Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html) no *Guia do usuário do AWS Lambda *. 
+ Verifique o código da função Lambda e os registros de execução para garantir que sua função Lambda esteja chamando a `PutLifecycleEventHookExecutionStatus` API CodeDeploy do Lambda para informar se o teste de validação do ciclo CodeDeploy de vida é ou não. `Succeeded` `Failed` Para obter informações sobre a `putlifecycleEventHookExecutionStatus` API, consulte [PutLifecycleEventHookExecutionStatus](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_PutLifecycleEventHookExecutionStatus.html)a *Referência AWS CodeDeploy da API*. Para obter informações sobre os registros de execução do Lambda, consulte Acessando os [ CloudWatch registros da Amazon](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-cloudwatchlogs.html) para. AWS Lambda

## A implantação falhou porque uma ou mais funções de validação de evento do ciclo de vida falharam
<a name="troubleshooting-ecs-lifecycle"></a>

**Problema**: Você vê a seguinte mensagem de erro ao implantar seu aplicativo Amazon ECS usando: CodeDeploy

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

**Possível causa**: esse erro pode ocorrer se você especificou uma função Lambda na [`Hooks`seção do AppSpec arquivo](reference-appspec-file-structure-hooks.md#appspec-hooks-ecs), mas a função Lambda retornou `Failed` quando foi chamada. CodeDeploy `PutLifecycleEventHookExecutionStatus` Essa falha indica CodeDeploy que o teste de validação do ciclo de vida falhou.

**Próxima etapa possível**: verifique seus logs de execução do Lambda para ver por que o código do teste de validação está falhando. Para obter informações sobre os registros de execução do Lambda, consulte Acessando os [ CloudWatch registros da Amazon](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-cloudwatchlogs.html) para. AWS Lambda

## Não foi possível atualizar o ELB devido ao seguinte erro: o grupo de destino do conjunto de tarefas primário deve estar atrás do receptor
<a name="troubleshooting-ecs-elb"></a>

**Problema**: Você vê a seguinte mensagem de erro ao implantar seu aplicativo Amazon ECS usando: CodeDeploy

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

**Possível causa**: esse erro pode ocorrer se você tiver configurado um receptor de teste opcional, e ele estiver configurado com o grupo de destino errado. Para obter mais informações sobre o ouvinte de teste em CodeDeploy, consulte [Antes de começar uma implantação do](deployment-steps-ecs.md#deployment-steps-prerequisites-ecs) e. [O que acontece durante uma implantação do](deployment-steps-ecs.md#deployment-steps-what-happens) Para obter mais informações sobre conjuntos de tarefas, consulte [TaskSet](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_TaskSet.html)na *Referência de API do Amazon Elastic Container Service* e [describe-task-set](https://docs.aws.amazon.com/cli/latest/reference/ecs/describe-task-set.html)na seção Amazon ECS da *Referência de AWS CLI Comandos*.

**Possível correção**: certifique-se de que o receptor de produção e o receptor de teste do Elastic Load Balancing estejam apontando para o grupo de destino que atualmente atende aos seus workloads. Há três lugares para verificar:
+ No Amazon EC2, nas configurações de **Receptores e regras** do seu balanceador de carga. Para obter mais informações, consulte [Receptores para o seu Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html), no *Guia do usuário do Application Load Balancers*, e [Receptores para o seu Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-listeners.html) ,no *Guia do usuário do Network Load Balancer*.
+ No Amazon ECS, no seu cluster, na configuração de **Rede** do seu serviço. Para obter mais informações, consulte as considerações sobre o [Application Load Balancer e o Network Load Balancer](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/load-balancer-types.html#alb-considerations) no *Guia do Desenvolvedor do Amazon Elastic Container Service*.
+ Em CodeDeploy, nas configurações do seu grupo de implantação. Para obter mais informações, consulte [Criar um grupo de implantação para uma implantação do Amazon ECS (console)](deployment-groups-create-ecs.md).

## Às vezes, minha implantação falha ao usar o ajuste de escala automático
<a name="troubleshooting-ecs-auto-scaling"></a>

**Problema**: Você está usando o Auto Scaling com CodeDeploy e percebe que suas implantações ocasionalmente falham. Para obter mais informações sobre os sintomas desse problema, consulte o tópico que diz: [Para serviços configurados para usar escalabilidade automática de serviço e o tipo de blue/green implantação, a escalabilidade automática não é bloqueada durante uma implantação, mas a implantação pode falhar em algumas circunstâncias](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-bluegreen.html#deployment-type-bluegreen-considerations) no *Amazon Elastic Container Service Developer* Guide.

**Possível causa**: Esse problema pode ocorrer se CodeDeploy os processos do Auto Scaling entrarem em conflito.

**Possível correção**: suspender e retomar os processos do Auto Scaling durante CodeDeploy a implantação usando `RegisterScalableTarget` a API (ou o comando `register-scalable-target` AWS CLI correspondente). Para obter mais informações, consulte [Suspender e retomar o ajuste de escala do ajuste de escala automático do aplicativo](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-suspend-resume-scaling.html) no *Guia do usuário do ajuste de escala automático do aplicativo*.

**nota**  
CodeDeploy não consigo ligar `RegisterScaleableTarget` diretamente. Para usar essa API, você deve configurar CodeDeploy para enviar uma notificação ou evento para o Amazon Simple Notification Service (ou Amazon CloudWatch). Em seguida, você deve configurar o Amazon SNS (ou CloudWatch) para chamar uma função Lambda e configurar a função Lambda para chamar a API. `RegisterScalableTarget` A API `RegisterScalableTarget` deve ser chamada com o parâmetro `SuspendedState` definido como `true`, para suspender as operações de ajuste de escala automático, e como `false`, para retomá-las.  
A notificação ou evento CodeDeploy enviado deve ocorrer quando uma implantação é iniciada (para acionar as operações de suspensão do Auto Scaling) ou quando uma implantação é bem-sucedida, falha ou é interrompida (para acionar a retomada das operações do Auto Scaling).   
Para obter informações sobre como configurar CodeDeploy para gerar notificações ou CloudWatch eventos do Amazon SNS, consulte[Monitoramento de implantações com Amazon Events CloudWatch](monitoring-cloudwatch-events.md). e. [Monitoramento de implantações com notificações de eventos do Amazon SNS](monitoring-sns-event-notifications.md)

## Somente o ALB oferece suporte ao roteamento gradual de tráfego; em vez disso, use o roteamento de AllAtOnce tráfego quando você estiver no grupo de implantação create/update
<a name="troubleshooting-ecs-lb"></a>

**Problema**: Você vê a seguinte mensagem de erro ao criar ou atualizar um grupo de implantação em CodeDeploy:

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

**Possível causa**: esse erro pode ocorrer se você estiver usando um Network Load Balancer e tentar usar uma configuração de implantação predefinida diferente de `CodeDeployDefault.ECSAllAtOnce`.

**Correções possíveis:**
+ Altere sua configuração de implantação predefinida para `CodeDeployDefault.ECSAllAtOnce`. Essa é a única configuração de implantação predefinida permitida pelo Network Load Balancers.

  Para obter mais informações sobre configurações de implantação pré-definidas, consulte [Configurações de implantação predefinidas para uma plataforma de computação do Amazon ECS](deployment-configurations.md#deployment-configurations-predefined-ecs).
+ Mude seu balanceador de carga para um Application Load Balancer. O Application Load Balancer é compatível com todas as configurações de implantação predefinidas. Para obter mais informações sobre como criar um Application Load Balancer, consulte [Configure um balanceador de carga, grupos-alvo e ouvintes para implantações do CodeDeploy Amazon ECS](deployment-groups-create-load-balancer-for-ecs.md).

## Embora minha implantação tenha sido bem-sucedida, o conjunto de tarefas de substituição falha nas verificações de integridade do Elastic Load Balancing, e meu aplicativo está inativo
<a name="troubleshooting-ecs-task-set-stability"></a>

**Problema**: Embora CodeDeploy indique que minha implantação foi bem-sucedida, o conjunto de tarefas de substituição falha nas verificações de saúde do Elastic Load Balancing e meu aplicativo está inativo.

**Possível causa**: Esse problema pode ocorrer se você executou uma CodeDeploy all-at-once implantação e seu conjunto de tarefas de substituição (verde) contém um código incorreto que está causando a falha nas verificações de integridade do Elastic Load Balancing. Com a configuração de all-at-once implantação, as verificações de integridade do balanceador de carga começam a ser executadas no conjunto de tarefas de substituição *depois* que o tráfego é transferido para ele (ou seja, *após a ocorrência CodeDeploy do evento* do `AllowTraffic` ciclo de vida). É por isso que você verá as verificações de integridade falharem no conjunto de tarefas de substituição após a mudança de tráfego, mas não antes. Para obter informações sobre os eventos do ciclo de vida que são CodeDeploy gerados, consulte. [O que acontece durante uma implantação do](deployment-steps-ecs.md#deployment-steps-what-happens)

**Correções possíveis:**
+ Altere sua configuração de implantação all-at-once de canária ou linear. *Em uma configuração linear ou canária, as verificações de integridade do balanceador de carga começam a ser executadas no conjunto de tarefas de substituição durante a CodeDeploy instalação do aplicativo no ambiente de substituição e *antes* do deslocamento do tráfego (ou seja, durante o evento do `Install` ciclo de vida e antes do evento).* `AllowTraffic` Ao permitir que as verificações sejam executadas durante a instalação do aplicativo, mas antes que o tráfego seja transferido, um código incorreto do aplicativo será detectado e causará falhas na implantação antes que o aplicativo se torne disponível publicamente.

  Para obter informações sobre como configurar implantações canário ou lineares, consulte [Altere as configurações do grupo de implantação com CodeDeploy](deployment-groups-edit.md). 

  Para obter informações sobre eventos de CodeDeploy ciclo de vida que são executados durante uma implantação do Amazon ECS, consulte. [O que acontece durante uma implantação do](deployment-steps-ecs.md#deployment-steps-what-happens)
**nota**  
As configurações de implantação canário e linear são compatíveis somente com Application Load Balancers.
+ Se você quiser manter sua configuração de all-at-once implantação, configure um ouvinte de teste e verifique o status de integridade do conjunto de tarefas de substituição com o gancho de `BeforeAllowTraffic` ciclo de vida. Para obter mais informações, consulte [Lista de hooks do evento do ciclo de vida para uma implantação Amazon ECS](reference-appspec-file-structure-hooks.md#reference-appspec-file-structure-hooks-list-ecs).

## Posso conectar vários balanceadores de carga a um grupo de implantação?
<a name="troubleshooting-ecs-lb-multi"></a>

Não. Se você quiser usar vários Application Load Balancers ou Network Load Balancers, use as atualizações contínuas do Amazon ECS em vez de CodeDeploy implantações azul/verdes. Para obter mais informações sobre as atualizações contínuas, consulte [Atualização contínua](https://docs.aws.amazon.com/AmazonECS/latest/userguide/deployment-type-ecs.html) no *Guia do desenvolvedor do Amazon Elastic Container Service*. Para obter mais informações sobre o uso de vários balanceadores de carga com o Amazon ECS, consulte [Registrar vários grupos de destino com um serviço](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/register-multiple-targetgroups.html) no *Guia do desenvolvedor do Amazon Elastic Container Service*.

## Posso realizar implantações em CodeDeploy azul/verde sem um balanceador de carga?
<a name="troubleshooting-ecs-lb-bg"></a>

Não, você não pode realizar implantações em CodeDeploy azul/verde sem um balanceador de carga. Se você não conseguir usar um balanceador de carga, use o atributo de atualizações contínuas do Amazon ECS. Para obter mais informações sobre as atualizações contínuas do Amazon ECS, consulte [Atualização contínua](https://docs.aws.amazon.com/AmazonECS/latest/userguide/deployment-type-ecs.html) no *Guia do desenvolvedor do Amazon Elastic Container Service*.

## Como posso atualizar meu serviço Amazon ECS com novas informações durante uma implantação?
<a name="troubleshooting-ecs-exec"></a>

Para CodeDeploy atualizar seu serviço Amazon ECS com um novo parâmetro enquanto ele conduz uma implantação, especifique o parâmetro na `resources` seção do AppSpec arquivo. Somente alguns parâmetros do Amazon ECS são compatíveis CodeDeploy, como o arquivo de definição da tarefa e os parâmetros do nome do contêiner. Para obter uma lista completa dos parâmetros do Amazon ECS que CodeDeploy podem ser atualizados, consulte[AppSpec seção 'recursos' para implantações do Amazon ECS](reference-appspec-file-structure-resources.md#reference-appspec-file-structure-resources-ecs).

**nota**  
Se você precisar atualizar seu serviço Amazon ECS com um parâmetro que não é suportado pelo CodeDeploy, conclua estas tarefas:  
Chame a API `UpdateService` do Amazon ECS com o parâmetro que você deseja atualizar. Para obter uma lista completa dos parâmetros que podem ser atualizados, consulte [UpdateService](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_UpdateService.html)a *Amazon Elastic Container Service API Reference*. 
Para aplicar a alteração às tarefas, crie uma nova blue/green implantação do Amazon ECS. Para obter mais informações, consulte [Criar uma implantação da plataforma de computação do Amazon ECS (console)](deployments-create-console-ecs.md).