我在Elastic Beanstalk EC2实例上有一个python应用程序,它连接到PostgreSQL RDS .
我的应用程序工作正常,并使用Elastic Beanstalk设置的环境变量来连接数据库:
os.environ['RDS_DB_NAME']
os.environ['RDS_USERNAME']
os.environ['RDS_PASSWORD']
os.environ['RDS_HOSTNAME']
os.environ['RDS_PORT']
但是,当我使用SSH登录EC2实例时,这不起作用 . 未设置RDS环境变量 . 由于我的应用程序在浏览器中工作,我认为它不能是安全组 . 我还尝试使用virtualenv激活访问变量 .
当我有SSH连接时,如何使弹性beanstalk定义这些变量?
3 回答
我想通了这个morgning:
环境变量不是在virtualenv中设置的,而是由另一个脚本设置的 . 首先,你必须激活virualenv,然后你需要通过激活'current'目录中的env脚本来加载变量 . 像这样:
Beanstalk RDS变量现在已设置并可供您在SSH中执行的任何脚本使用 .
我没有找到您提到的脚本,但找到了另一种获取相同信息的方法 .
获取配置脚本可以让您访问以下类别的大量信息:
希望能帮助到你 .
遗憾的是,环境变量在Elastic Beanstalk容器之外不可用 .
作为替代方案,您可以将
.profile
文件添加到ec2-user
home并在那里为SSH会话设置这些环境变量 . 请记住,该文件将在重建时消失 . 要使其永久化,请将profile
文件添加到项目中,并使用container命令复制到ec2-user
home .