2012-09-11 12 views
9

AWS non spiega correttamente come gestire diversi ambienti di distribuzione sul beanstalk in relazione a diversi ambienti e come salvare tali impostazioni nel repository di controllo del codice sorgente.Distribuzione di Python su Elean Beanstalk con diverse configurazioni per diversi ambienti

Essi spiegano chiaramente come configurare il vostro python.config in .ebextensions in questo modo:

"aws:elasticbeanstalk:container:python:environment": 
    DJANGO_SETTINGS_MODULE: "settings" 
    SERVER_ROOT: "/opt/python/current/app/" 

Tuttavia, se si desidera avere più ambienti come messa in scena e prod attualmente si dispone di scambiare i file di configurazione. Cosa c'è di peggio, come pensi di mantenerlo nell'albero di controllo del codice sorgente per ambienti condivisi come la gestione temporanea? Sembra che ogni volta che si spinge avrete bisogno di queste impostazioni dell'ambiente di configurazione.

Ho anche scoperto che AWS non mi consente di implementare modifiche non modificate, il che significa che anche la scrittura di uno script per gestire le distribuzioni non è un'opzione. Cosa mi manca qui?

risposta

0

Non l'ho provato, ma sembra che tu possa passare DJANGO_SETTINGS_MODULE non attraverso il file di configurazione, ma attraverso i propri parametri del contenitore. È possibile aggiornarlo tramite Dettagli ambiente -> Modifica configurazione -> sezione Contenitore della console Beanstalk. Proprio come idea:

  • Creare più ambienti di "produzione", "messa in scena", ecc
  • Configurare ciascuna con relativo valore DJANGO_SETTINGS_MODULE
  • rimuovere il valore DJANGO_SETTINGS_MODULE da .ebextensions
  • ambiente
  • applicazione Distribuzione di pre-creato
0

Ho fatto qualche ricerca su questo in passato e sembra che a loro piaccia usare eb branch per configurare e i diversi ambienti e quindi configurare l'opzione in modo diverso all'interno delle opzioni in locale a livello di client eb (quando si inizializza il ramo e roba).

Quando ci si pensa, la configurazione dell'ambiente (ad esempio DJANGO_SETTINGS_MODULE) deve essere gestita separatamente dal codice dell'applicazione, quindi presumo semplicemente di tenerlo fuori da ebextensions e configurarlo quando si naviga in un nuovo ambiente. Se passo a uno esistente, è necessario verificare che il valore sia impostato correttamente per l'ambiente in cui voglio giocare.

Problemi correlati