如何通过CLI及EC2实例命令查询所属Elastic Beanstalk环境
问题2:SSH登录到Multi-Container Docker配置的EB EC2实例后,如何识别所属EB应用/环境?
完全可以,而且有几种不需要额外AWS权限的本地方法:
- 查看EB生成的元数据文件
Elastic Beanstalk会在实例本地存储环境配置信息,直接查看这些文件即可:
# 获取环境名称 cat /opt/elasticbeanstalk/bin/healthd/config/settings.yml | grep environment_name # 获取应用名称 cat /opt/elasticbeanstalk/bin/healthd/config/settings.yml | grep application_name
或者另一个常用的配置文件路径:
cat /etc/elasticbeanstalk/.aws_beanstalk/application_config | grep -E 'application_name|environment_name'
- 读取本地保存的EC2标签
AWS会把实例标签存在本地文件里,直接读取更快捷:
cat /etc/aws/ec2-metadata/tags/instance/elasticbeanstalk:environment-name cat /etc/aws/ec2-metadata/tags/instance/elasticbeanstalk:application-name
- 关于类似
aws elasticbeanstalk get-current-environment的命令
目前AWS CLI并没有提供这个直接的命令,但你可以在实例上结合元数据和CLI模拟这个功能。只要实例有基础的IAM权限(比如ec2:DescribeInstances),执行以下命令就能拿到当前实例所属的EB环境:
# 获取当前实例ID(利用EC2元数据服务) INSTANCE_ID=$(curl -s http://169.254.169.254/latest/meta-data/instance-id) # 查询所属EB环境名称 aws ec2 describe-instances --instance-ids $INSTANCE_ID --query 'Reservations[*].Instances[*].Tags[?Key==`elasticbeanstalk:environment-name`].Value' --output text
内容的提问来源于stack exchange,提问作者soapergem
相关产品推荐
相关产品推荐

