ebextensions RDS Provisioning不设置环境变量

时间:2016-12-21 19:37:54

标签: python amazon-web-services elastic-beanstalk amazon-rds ebextensions

所以我有一个在弹性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交互。

0 个答案:

没有答案