我在连接到 PostgreSQL RDS 的 Elastic Beanstalk EC2 实例上有一个 python 应用程序。
我的应用程序运行良好,并使用 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 定义这些变量?
最佳答案
我今天早上想通了:
环境变量不是在 virtualenv 中设置的,而是由另一个脚本设置的。首先,您必须激活 virualenv,然后您需要通过激活“当前”目录中的 env 脚本来加载变量。像这样:
source /opt/python/run/venv/bin/activate
source /opt/python/current/env
Beanstalk RDS 变量现在已设置并可供您在 SSH 中执行的任何脚本使用。
关于python - Elastic Beanstalk 从 shell SSH 连接到 RDS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21255525/