所以我有一个在弹性beanstalk上运行的python应用程序。
我正在使用ebextensions来处理许多环境配置以及资源配置,例如数据库。
在ebextensions中我有:
+-- .ebextensions
+-- db.config (The database resource file)
+-- packages.config (Tells the instances to install postgres via yum)
+-- python.config (Tells the instances what the WSGI path is.)
db.config看起来像:
Resources:
AWSEBRDSDatabase:
Type: AWS::RDS::DBInstance
Properties:
AllocatedStorage: 5
DBInstanceClass: db.t2.micro
DBName: development
Engine: postgres
EngineVersion: 9.5
MasterUsername: testuser
MasterUserPassword: pa$$word
packages.config:
packages:
yum:
postgresql95-devel: []
python.config:
option_settings:
- namespace: aws:elasticbeanstalk:container:python
option_name: WSGIPath
value: application/application.py
我遇到的问题是这个。
在https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/java-rds.html,
它声明当通过Elastic Beanstalk配置RDS实例时,将在实例中设置数据库的环境变量。
RDS_HOST
RDS_DB_NAME
RDS_USERNAME
RDS_PASSWORD
RDS_PORT
但我的python代码调用:
os.environ["RDS_HOST"]
没有得到任何东西。永远。对于任何变量。
我以两种方式做到了这一点。第一个是在创建后添加到配置中。我尝试从零开始创建一个全新的环境。
两次都没有创建环境变量。
我知道我可以手动通过AWS gui执行此操作,但我想避免这种情况,因为我们的生产实例必须以自动方式创建,而无需gui交互。