2014-08-28 15 views
17

elastico dispiegamento Beanstalk di un nuovo ambiente per un'applicazione che utilizza il sito AWS avverteelastico distribuzione beanstalk più tempo del periodo di timeout, come faccio ad aumentare il periodo di timeout

Create environment operation is complete, but with command timeouts. Try increasing the timeout period 

e anche se alla fine mostra ambiente verde cercando di collegarsi all'URL dà solo

Service Temporarily Unavailable 

The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later. 

una versione precedente dell'applicazione funziona bene, ma nelle ebextensions ha per copiare un file di grandi dimensioni da S3 e poi decomprimerlo, questo richiede un po 'di tempo. La versione precedente dell'applicazione deve copiare solo un file da 3 GB, ma la nuova versione deve copiare un file da 6 GB e, come posso vedere, non ci sono altri errori. Suppongo che questo abbia causato il timeout e l'avvio di tomcat impedito.

Ma come faccio ad aumentare il timeout, non riesco a vedere dove sono destinato a farlo?

risposta

39

È possibile farlo utilizzando le impostazioni delle opzioni. Le impostazioni delle opzioni possono essere specificate usando ebextensions.

Creare un file nella sorgente dell'app in una directory denominata .ebextensions. Diciamo che il file è .ebextensions/01-increase-timeout.config.

Il contenuto del file dovrebbe essere:

option_settings: 
    - namespace: aws:elasticbeanstalk:command 
     option_name: Timeout 
     value: 1000 

Nota questo file è in formato YAML. Dopo questo è possibile aggiornare il proprio ambiente con questa versione del codice sorgente.

Da documentazione per questa impostazione opzione:

Timeout: Number of seconds to wait for an instance to complete executing commands.

For example, if source code deployment tasks are still running when you reach the configured timeout period, AWS Elastic Beanstalk displays the following error: "Some instances have not responded to commands. Responses were not received from ." You can increase the amount of time that the AWS Elastic Beanstalk service waits for your source code to successfully deploy to the instance.

Si può leggere di più su ebextensions here. La documentazione sulle impostazioni delle opzioni è disponibile here.

+1

Grande che lo corregge, FWIW ho impostato inizialmente il valore su 2000 ma il valore massimo consentito è 1800 (1/2 ora), questo va bene perché ci vogliono solo 11 minuti per l'implementazione sull'istanza che ho usato ma ho sorpreso il valore massimo era così basso –

+0

Ho ricevuto l'errore di sintassi yaml da aws, quindi rimuovo gli spazi (yaml validator mi istruisce): option_name: Timeout e valore: 1000 (senza spazi dopo ":"). ora funziona alla grande. Grazie! – dang

+2

NON seguire i consigli di @dang! hai bisogno di uno spazio tra valore: e numero. Corretto è: 'valore: 1000'. not 'value: 1000' – Roman

0

In base allo official documentation è possibile passare l'opzione --timeout alla chiamata eb create.

--timeout minutes 
Set number of minutes before the command times out. 
2

Usa: --timeout

Per esempio: eb create -db --timeout 20

Questo vi darà 20 minuti di limite di timeout.

0

L'ho appena fatto al momento della distribuzione per il mio ambiente e funziona anche in questo modo.

eb deploy production-env --timeout 30 

.. e che mi dà 30 minuti.

Problemi correlati