Is it possible to get metadata about the Elastic Beanstalk environment from the EC2 instance

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


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