2014-01-21 9 views
10

Ich habe eine Python-Anwendung auf einer Elastic Beanstalk EC2-Instanz, die mit einem PostgreSQL RDS verbunden ist.Elastic Beanstalk Verbindung zu RDS von Shell SSH

Meine Anwendung funktioniert gut und nutzt die Umgebungsvariablen, die von Elastic Beanstalk festgelegt werden mit der Datenbank zu verbinden:

os.environ['RDS_DB_NAME'] 
os.environ['RDS_USERNAME'] 
os.environ['RDS_PASSWORD'] 
os.environ['RDS_HOSTNAME'] 
os.environ['RDS_PORT'] 

Allerdings ist dies nicht funktioniert, wenn ich auf der EC2-Instanz mit SSH anmelden. Die RDS-Umgebungsvariablen sind nicht festgelegt. Da meine Anwendung im Browser funktioniert, denke ich, dass es nicht die Sicherheitsgruppen sein können. Ich habe auch versucht, mit aktiviertem virtualenv auf die Variablen zuzugreifen.

Wie kann ich elastische Beanstalk machen, um diese Variablen zu definieren, wenn ich eine SSH-Verbindung habe?

Antwort

14

Habe ich es dieses morgning aus:

Die Umgebungsvariablen werden nicht innerhalb der virtualenv gesetzt, sondern von einem anderen Skript. Zuerst müssen Sie den virualenv aktivieren, dann müssen Sie die Variablen laden, indem Sie das Skript env im Verzeichnis 'current' aktivieren. Wie folgt aus:

source /opt/python/run/venv/bin/activate 
source /opt/python/current/env 

Die RDS-Variablen werden Beanstalk nun eingestellt und bereit, von jedem Skript verwenden Sie in SSH auszuführen.

1

Leider sind Umgebungsvariablen außerhalb von Elastic Beanstalk Container nicht verfügbar.

Alternativ können Sie die .profile Datei zu ec2-user home hinzufügen und diese Umgebungsvariablen für SSH-Sitzungen festlegen. Denken Sie daran, dass die Datei beim Neuaufbau gelöscht wird. Fügen Sie die profile-Datei zu Ihrem Projekt hinzu, und kopieren Sie zu ec2-user nach Hause mit Container-Befehl, um es dauerhaft zu machen.

2

Ich habe die von Ihnen erwähnten Skripte nicht gefunden, finde aber einen anderen Weg, um dieselben Informationen zu erhalten.

cd /opt/elasticbeanstalk/bin 
sudo ./get-config environment 

Get Config-Skript können Sie den Zugriff auf eine Menge von indormaftion auf dieser Kategorien zu bekommen:

optionsettings     environment option settings that affect instance 
container      container specific configurations 
addons       addon configurations 
environment      environment variables 
meta        EB environment meta-data 

Hoffe, es hilft.

+0

Vielleicht ist meine Antwort veraltet, aber in der Lage, es zu testen, da ich keine elastischen Bohnenstangen mehr verwende. – jvannistelrooy

Verwandte Themen