这对我来说一直是一个长期存在的问题,我希望能够解决它 - 我也认为这将有助于很多其他人。我希望在通过SSH登录我的弹性Beanstalk EC2实例后运行Django命令。例如:
python manage.py dumpdata
这不可能的原因是缺少环境变量。它们在服务器启动时存在,但只要服务器运行起来,就会被取消设置(EB将在EC2中创建虚拟环境并从其中删除变量)。
我最近发现有一个预先构建的脚本可以在EC2实例上检索环境变量:
/opt/elasticbeanstalk/bin/get-config environment
这将返回一个字符串化的对象,如下所示:
{"AWS_STATIC_ASSETS_SECRET_ACCESS_KEY":"xxx-xxx-xxx","DJANGO_KEY":"xxx-xxx-xxx","DJANGO_SETTINGS_MODULE":"xx.xx.xx","PYTHONPATH":"/var/app/venv/staging-LQM1lest/bin","RDS_DB_NAME":"xxxxxxx":"xxxxxx","RDS_PASSWORD":"xxxxxx"}
这是我目前卡住的地方。我认为需要一个脚本,可以解析这个对象并将键/值设置为环境变量。我需要能够从ec2实例运行此脚本。
或者在.ebextensions中执行的命令,可以获取变量并设置它们。
我绝对不确定如何继续下一步?我是否忽略了一些明显的东西?有没有人已经为此编写了脚本?这是否是正确的方法?
我需要你的帮助!