AWS does not properly explain how to manage different deployment environments on the beanstalk with relation to different environments and how to save those settings in your source control repo.
They clearly explain how to setup your python.config in .ebextensions like so:
"aws:elasticbeanstalk:container:python:environment":
DJANGO_SETTINGS_MODULE: "settings"
SERVER_ROOT: "/opt/python/current/app/"
However, if you want to have multiple environments like staging and prod you currently have to swap out your configuration files. Whats worse, how do you plan to retain this in your source control tree for shared environments like staging? It appears that every time you push you will need these configuration environment settings.
I've also found that AWS doesnt let me deploy unstaged changes which means writing a script to handle my deployments isnt an option either. What am I missing here?