Come aumentare il timeout delle distribuzioni Elastic Beanstalk?


13

Come parte della mia distribuzione dell'applicazione, ne ho alcuni commandsnei miei .ebextensionsfile di configurazione. Il completamento di tutti i comandi potrebbe richiedere 20 minuti o più, alla prima esecuzione dei comandi (clonazione di grandi repository).

Sfortunatamente, questo attiva un timeout durante la distribuzione:

INFO Deploying new version to instance(s).
WARN The following instances have not responded in the allowed command
     timeout time (they might still finish eventually on their own).
INFO Command execution completed. Summary: [Successful: 0, TimedOut: 1].

È possibile aumentare questo timeout? Non riesco a trovare l'opzione nelle impostazioni del mio ambiente.


1
GIYF, è possibile utilizzare ebextensions: stackoverflow.com/questions/25557874/...
Lucas Carvalho

Grazie per il puntatore, se aggiungi un riepilogo della risposta collegata di seguito, contrassegnerò la tua risposta come accettata!
Benjamin,

Risposte:


11

Puoi aggiungere i file di configurazione di AWS Elastic Beanstalk (.ebextensions) al codice sorgente dell'applicazione web per configurare il tuo ambiente e personalizzare le risorse AWS che contiene.

La option_settingssezione di un file di configurazione definisce i valori per le opzioni di configurazione . Le opzioni di configurazione ti consentono di configurare il tuo ambiente Elastic Beanstalk, le risorse AWS in esso contenute e il software che esegue l'applicazione.

Aggiungi i file di configurazione al codice sorgente in una cartella denominata .ebextensions e distribuiscilo nel pacchetto sorgente dell'applicazione.

Esempio:

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

* "valore" rappresenta il periodo di tempo prima del timeout in secondi.

Riferimenti: Configurazione ufficiale di AWS Elastic Beanstalk Environment e opzioni generali per tutti gli ambienti , questa risposta stackoverflow e questo post del forum degli sviluppatori AWS.


0

puoi inserire i repository in un AMI e far sì che il beanstalk elastico lo utilizzi. In questo modo il checkout non è così lungo.

In un'altra nota, cosa stai facendo clonando enormi repository come parte della distribuzione ?


Sono sempre stato riluttante a usare un AMI personalizzato, per mantenerlo semplice. La tua ultima nota è un buon punto, però. La mia app ha un generatore di logo integrato, che necessita di un ampio elenco di caratteri da offrire all'utente tra cui scegliere. Non voglio raggruppare questi caratteri con la mia app per mantenere le dimensioni entro limiti ragionevoli, quindi i miei script di distribuzione clonano un grande repository una volta che l'app viene trasferita ai server. Questo potrebbe non essere l'approccio migliore, ma questo è il migliore che ho trovato finora.
Benjamin,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.