Is it possible to get metadata about the Elastic Beanstalk environment from the EC2 instance
Solution 1:
I've figured something out. For those of you that are curious:
I can grab EC instance information via http://169.254.169.254/latest/meta-data/
. In particular I want my EC2 instance id
I can determine a list of all my beanstalk environments via describe-environments
For each environment I can run describe-environment-resources
. This call returns a list of instances, which I can match the current instance's instance id against. Thus I can figure out my environment name.
Finally, I can refer to the result of describe-environments
to also determine a version label for the currently deployed code.
Before I can do any of this, I need to configure my ec2 instances to have access to the elastic beanstalk information. I can do this by assigning the right access policy to the role associated with my ec2 instances, and grabbing the authentication information, again via the instance metadata at http://169.254.169.254/latest/meta-data/
Since I'm using the python boto
library, all of the operations i've described above already have pre-baked library functions to perform them for me.
guh
I haven't coded it yet, but if I can get it to work I'll post a snipped here
Edit working code
Solution 2:
After a bit of digging around on the internet I found. I know the question is an old one, but I thought that I'd give this answer.
$ /opt/elasticbeanstalk/bin/get-config container -k environment_name