Por que o AWS CodeDeploy expira antes do tempo limite especificado?

1

Estou implantando meu site usando o codedeploy da AWS. A etapa de parada do meu aplicativo é assim:

ApplicationStop:
  - location: deploymet/codedeploy/commands/application-stop/remove-self-from-loadbalancer.sh
    timeout: 600
    runas: root

E este script é assim:

source ~/.bashrc
cd /var/www/html/laravel

if [ "$LARAVEL_ENV" = "production" ]
    then
        php artisan deployment:remove-self-from-loadbalancer --env=$LARAVEL_ENV
fi

A execução manual do script demora cerca de um segundo, mas quando uma implantação é executada, ele trava e falha após 30 segundos, jogando Script at specified location: deploymet/codedeploy/commands/application-stop/remove-self-from-loadbalancer.sh failed to complete in 30 seconds .

A origem usada define o env para produção e posso ver o efeito esperado: um servidor está sendo removido do balanceador de carga quase imediatamente após o início da implantação.

Tanto quanto eu entendo, este tempo limite não deve ocorrer até depois de 10 minutos. Por que isso está acontecendo tão rápido?

    
por Jasper Kennis 11.11.2015 / 14:50

1 resposta

1

Conseguimos resolver isso. Ao ler a documentação com mais cuidado, meu colega apresentou uma sugestão. O agente CodeDeploy armazena a última instalação de implantação bem-sucedida em /opt/codedeploy-agent/deployment-root/some-dir/some-other-dir . Durante a próxima implantação, os appspec e os scripts armazenados lá estão sendo usados nas primeiras etapas da implantação. Então tivemos que fazer login em cada servidor, ir para esse diretório e alterar o tempo limite no appspec manualmente.

    
por 12.11.2015 / 12:06