最近,我一直在尝试将django webapp部署到AWS Elastic Beanstalk,一切都很顺利。但是,我的应用程序的一部分使用Twitter API,因此我需要导入我的API密钥。我的理解是我应该使用Configuration>软件配置>环境属性。我把它设置为输入我的密钥但是当我检查网站时它仍然失败。
我一直在用这个来尝试导入变量是否正确?
import os
os.enviorn.get('TWITTER_ACCESS_TOKEN')
我检查了变量是否进入服务器,当我运行eb printenv
时,我看到了这个:
Environment Variables:
TWITTER_ACCESS_TOKEN = XXXXX
TWITTER_ACCESS_SECRET = XXXX
TWITTER_CONSUMER_SECRET = XXXX
TWITTER_CONSUMER_KEY = XXXXX
非常感谢任何帮助。
答案 0 :(得分:6)
为了从AWS Elastic Beanstalk属性(不是OS环境变量)获取系统环境,您需要将其“源”到您的环境中。对于Python,EB Properties存储在/ opt / python / current / env文件中。所以只需运行此命令:
source /opt/python/current/env
现在你已经更新了你的env变量。
答案 1 :(得分:0)
您尝试获取的密钥在您的环境变量中不存在。将代码更改为 -
os.environ.get('TWITTER_ACCESS_TOKEN')
或你的env vars中的任何其他密钥应该可以解决问题。