前提・実現したいこと
Docker コンテナからの Elastic Beanstalk アプリケーションのデプロイを勉強しています。
単一コンテナのDocker、アプリはDjangoで作成予定です。
データベースには、RDSを利用したいと考えております。
発生している問題・エラーメッセージ
djangoのsettings.pyのDATABASESの設定に、RDSの環境変数が取得できずに、エラーが出てしまいます。
該当のソースコード
settings.pyのDATABASESを以下のように設定しています。
python
1DATABASES = { 2 'default': { 3 'ENGINE': 'django.db.backends.postgresql_psycopg2', 4 'NAME': os.environ['RDS_DB_NAME'], 5 'USER': os.environ['RDS_USERNAME'], 6 'PASSWORD': os.environ['RDS_PASSWORD'], 7 'HOST': os.environ['RDS_HOSTNAME'], 8 'PORT': os.environ['RDS_PORT'], 9 } 10}
試したこと
以下のように、連動させたいRDSの情報を直接入力すると、問題なくデプロイできます。
python
1DATABASES = { 2 'default': { 3 'ENGINE': 'django.db.backends.postgresql_psycopg2', 4 'NAME': 'postgres', 5 'USER': 'ユーザー名', 6 'PASSWORD': 'パスワード', 7 'HOST': 'ホスト名.ap-northeast-1.rds.amazonaws.com', 8 'PORT': '5432', 9 } 10}
ただ、いろいろ調べているとそれだとセキュリティ的にイマイチなようなので、他の例にならって、環境変数を取得して設定したいと考えております。
ContainerからのRDSの変数の取得方法、その他のセキュアな方法などありましたら、教えていただけると助かります!
何卒よろしくお願いいたします!
あなたの回答
tips
プレビュー