2017-09-29 2 views
0

Ich habe eine Flask-App, die ich in AWS Elastic Beanstalk bereitgestellt habe und alles funktioniert gut. Allerdings habe ich derzeit die SQLAlchemy-Verbindungszeichenfolge fest als die Live-AWS-Zeichenfolge codiert. Ich muss jetzt etwas einrichten, so dass der AWS-Server automatisch die richtige Zeichenfolge aufruft und meine lokale Umgebung den Dev (lokale Zeichenfolge) verwendet. Ich habe das Lesen der folgenden Beitrag auf, wie dies zu erreichen:Flask Manage Dev Live-Datenbanken auf Elastic Beanstalk

Flask: How to manage different environment databases?

Dies macht in der Theorie Sinn, aber ich kann keine praktische Beispiele finden, wie man tatsächlich erreichen dies auf AWS Elastic Beanstalk. Mein init Py-Code sieht wie folgt aus:

SQLALCHEMY_DATABASE_URI = 'mysql://root:[email protected]/xxxxx' 
SQLALCHEMY_TRACK_MODIFICATIONS = False 
DEBUG = True 

Und Config_production_dev.py sieht wie folgt aus:

from flask import Flask 
from flask_debugtoolbar import DebugToolbarExtension 
from flask_cors import CORS, cross_origin 
from flask_sqlalchemy import SQLAlchemy 

application = app = Flask(__name__) 

app.config.from_object('config') 
app.config.from_envvar('XXXXXPRODUCTION_CONFIG',silent=True) 
db = SQLAlchemy(app) 
CORS(app) 

Config.py sieht wie folgt aus

SQLALCHEMY_DATABASE_URI = 'mysql://xxxxxx:[email protected]#########.cuhrbowyd8hk.eu-west-2.rds.amazonaws.com/ebdb' 
SQLALCHEMY_TRACK_MODIFICATIONS = False 
DEBUG = False 

So ist alles eingerichtet, aber ich habe jetzt keine Ahnung, wie dieses Teil für die AWS-Instanz zu initiieren:

Nach dem Beitrag oben erwähnte ich brauche etwas wie folgt aus:

Umwelt = XXXXXPRODUCTION_CONFIG = "/ home/Tigra/mycoolapp/settings_production.py"

aber ist der Weg einen Weg gezeigt, auf meinem lokale Maschine? Oder ein Pfad zu meiner Elastic Beanstalk App? Und wenn ja, wie finde ich die Details dieses Weges? Wie lade ich diesen Befehl in die EB-Umgebung, damit er ausgeführt wird? Ich kann diese Informationen nirgendwo finden. Jede Hilfe würde sehr geschätzt werden.

Ich bin die Bereitstellung der App mit eb Bereitstellung in eb cli.

Antwort

1

Ich arbeitete den letzten Schritt aus, also sehen Sie bitte unten, wenn Sie mit demselben fest sind. Elastic Beanstalk Environment-Variablen sind die Antwort. In meinem Fall musste ich den folgenden Befehl in eb cli auszuführen:

eb setenv XXXXXPRODUCTION_CONFIG =/opt/Python/Strom/app/config_production_dev.py

Der Weg ist auf die config_production_dev.py Datei in meinem app Ordner auf dem Elastic Beanstalk Server und ich habe es gefunden, indem ich mit SSH navigiert habe.

Es ist auch möglich, Umgebungsvariablen über Ihren Browser hier einzustellen:

Login AWS Dann

Dienste> elastische Bohnenstengel> "your-env"> Konfiguration> Software-Konfiguration

dann nach unten scrollen zu "Umgebungseigenschaften". In meinem Fall:

Name: XXXXXPRODUCTION_CONFIG

Eigenschaft Wert: /opt/python/current/app/config_production_dev.py

Verwandte Themen