2017-09-29 6 views
0

私はAWS Elastic BeanstalkにデプロイしたFlaskアプリケーションを持っており、すべて正常に動作します。しかし、私は現在SQLAlchemy接続文字列をライブAWS文字列としてハードコードしています。 AWSサーバーが自動的に正しい文字列を取得し、ローカル環境がdev(ローカル文字列)を使用するように設定する必要があります。私はこれを実現する方法について、以下の記事を読んでされています:Flask Elastic BeanstalkでのDev Liveデータベースの管理

Flask: How to manage different environment databases?

これは理論的には理にかなっているが、私は実際にAWS Elastic Beanstalkででこれをどのように達成するかのいずれかの実用的な例を見つけることができません。

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は次のようになります:

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

そしてConfig_production_dev.pyは次のようになります。

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

だから、すべてがある私ののinitの.pyのコードは次のようになりますAWSインスタンスのためにこの部分をどのように起動するかわかりません:

app.config.from_envvar('XXXXXPRODUCTION_CONFIG',silent=True) 

上記の記事によると、私はこのような何かが必要です。

環境= XXXXXPRODUCTION_CONFIG =「/ホーム/ティグラ/ mycoolapp/settings_production.pyを」

しかし、パスは私の上のパスを示していますローカルマシン?または私のElastic Beanstalkアプリへの道?そしてもしそうなら、私はこの経路の詳細をどのように見つけるのでしょうか?また、このコマンドをEB環境にロードして実行するにはどうすればよいですか?私はこの情報をどこにも見つけることができません。どんな助けでも大歓迎です。

私はeb deployを使用してアプリケーションをeb-cliにデプロイしています。

答えて

1

私は最後のステップを練ったので、同じことにこだわっている場合は下記をご覧ください。 Elastic Beanstalk環境変数が答えです。私の場合は、EBのCLIで次のコマンドを実行するために必要な:

EBのsetenv XXXXXPRODUCTION_CONFIG =は/ opt /パイソン/現在/アプリ/ config_production_dev.py

パスは私のアプリでconfig_production_dev.pyファイルにありますフォルダをElastic Beanstalkサーバー上に置いてください.SSHを使ってナビゲートして見つけました。

ここは、ブラウザを経由して環境変数を設定することも可能です:AWSへ

ログイン後

サービス> Elastic Beanstalkで> "あなたの-ENV">設定>ソフトウェア構成

次にスクロールダウン「環境プロパティ」に移動します。私の場合:

物件名:XXXXXPRODUCTION_CONFIG

プロパティ値:/opt/python/current/app/config_production_dev.py

関連する問題