私は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にデプロイしています。