Recently I have been trying to deploy a django webapp to AWS Elastic Beanstalk and everything has been going fine. However part of my app uses that Twitter API so I need to import my API keys. My understanding is that I should use Configuration > Software Configurations > Environment Properties. I set this up inputting my keys but when I checked the site it still failed.
I have been using this to try and import the variables is that correct?
import os
os.enviorn.get('TWITTER_ACCESS_TOKEN')
I checked to see if the variables were making it to the server and when I ran eb printenv
I was shown this:
Environment Variables:
TWITTER_ACCESS_TOKEN = XXXXX
TWITTER_ACCESS_SECRET = XXXX
TWITTER_CONSUMER_SECRET = XXXX
TWITTER_CONSUMER_KEY = XXXXX
Any help would be greatly appreciated.
Use the Elastic Beanstalk console to configure Python process settings, enable AWS X-Ray, enable log rotation to Amazon S3, and configure variables that your application can read from the environment. Open the Elastic Beanstalk console , and in the Regions list, select your AWS Region.
In AWS Elastic Beanstalk, you can create a load-balanced, scalable environment or a single-instance environment. The type of environment that you require depends on the application that you deploy.
In order to get system environment from AWS Elastic Beanstalk Properties (which is not OS environment variables) you need to "source" it to your environment. In case of Python, EB Properties are stored at /opt/python/current/env file. So simply run this command:
source /opt/python/current/env
Now you got your env variables updated.
The key you are trying to get doesn't exist among your environment variables. Changing the code to -
os.environ.get('TWITTER_ACCESS_TOKEN')
or any other key among your env vars should do the trick.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With