从控制台的弹性豆茎实例之一中获取公共DN



我们喜欢直接连接到我们的弹性beanstalk实例之一,因此我们需要知道其public IP address

通常,我们从AWS.Console网站的EC2选项卡中获取实例的public IP。这很麻烦,因为我们需要网络浏览几页...

我们已经从我们的一台服务器配置了eb实用程序,因此我们可以使用eb list进行轮询环境,或使用eb status检查状态。

我们如何用eb实用程序获得环境实例的公共DNS?

或还有其他方法可以获取此信息?

谢谢!

我不是EB CLI的用户。但是,您可以使用awscli使用1命令来实现想要的目标。

首先安装和配置awscli

$ pip install awscli
$ aws configure

ElasticBeanstalk自动标记EC2 Instances ,它是具有elasticbeanstalk:environment-name标签的ElasticBeanStalk环境的一部分。使用此信息,您可以滤除具有一定elasticbeanstalk:environment-name标签值的所有运行实例。

$ aws ec2 describe-instances --filters "Name=tag:elasticbeanstalk:environment-name,Values=your-environment-name"

上面的命令将为您提供相当长的JSON输出。您只需在其中找到"PublicIpAddress",但是可以使用jq之类的工具过滤此信息。因此,最终命令看起来像:

$ aws ec2 describe-instances --filters "Name=tag:elasticbeanstalk:environment-name,Values=your-environment-name" | jq '.Reservations | .[] | .Instances | .[] | .PublicIpAddress'

尝试。

这是有关awscli命令的各种选项的更多信息:AWS EC2介绍文档

更新2017-03-12

jq是不必要的,Linux命令行工具也不需要。awscli支持--query选项,该选项可用于查询您对使用JMespath(JSON查询语言)感兴趣的某些值。在这种情况下,您会做:

$ aws ec2 describe-instances --filters "Name=tag:elasticbeanstalk:environment-name,Values=your-environment-name" --query 'Reservations[].Instances[].PublicIpAddress' --output text

上面将打印普通的IP地址,每行1个。

这是一种快速而肮脏的方式:

ec2 -deScribe -Instances $(EB状态-V | Grep Inservice | cut -d":" -f1 | awk'{print $ 1}')|GREP实例|awk'{print $ 4}'

最新更新