AWS EC2 SSH会话运行Django命令时缺失RDS环境变量如何解决
解决方案
临时生效(单次SSH会话可用)
Elastic Beanstalk将所有配置的环境变量统一存储在/opt/elasticbeanstalk/deployment/env文件中,只需在SSH会话中手动加载该文件即可获取到RDS相关等所有应用环境变量。
完整操作步骤:
- 登录EC2实例后,首先执行环境变量加载命令:
export $(sudo cat /opt/elasticbeanstalk/deployment/env | xargs) - 激活Django对应的虚拟环境:
source /var/app/venv/*/bin/activate - 此时即可正常运行所有Django管理命令,比如
python manage.py migrate、python manage.py createsuperuser等,环境变量均可正常识别。
永久生效(每次SSH登录自动加载)
如果不想每次登录都手动执行加载命令,可以将加载逻辑写入当前用户的bash配置文件:
- 编辑
~/.bashrc文件:vi ~/.bashrc - 在文件末尾添加以下内容:
# 自动加载Elastic Beanstalk应用环境变量 export $(sudo cat /opt/elasticbeanstalk/deployment/env | xargs)
- 保存退出后执行
source ~/.bashrc即可立即生效,后续每次SSH登录都会自动加载所有环境变量。
验证方法
加载完成后可执行以下命令验证环境变量是否生效:echo $RDS_DB_NAME
如果正常输出数据库名称即代表配置成功。
内容的提问来源于stack exchange,提问作者Pierre Anken
相关产品推荐
相关产品推荐

