我们希望直接连接到我们的 Elastic Beanstalk 实例之一,因此我们需要知道其公共(public) IP 地址
。
我们通常从 aws.console 网站的 EC2 选项卡获取实例的公共(public) IP
。这很麻烦,因为我们需要浏览几个页面......
我们已从其中一台服务器配置了 eb
实用程序,因此我们可以使用 eb list
轮询我们的环境,或使用 eb status< 检查状态
.
我们如何使用 eb
实用程序来获取环境实例的公共(public) DNS?
或者还有其他方式获取这些信息吗?
谢谢!
最佳答案
我不是 EB CLI 的用户。不过,您可以使用 awscli
通过 1 个命令来实现您想要的效果。
首先安装并配置awscli
:
$ pip install awscli
$ aws configure
ElasticBeanstalk 使用 elasticbeanstalk:environment-name
标签自动标记属于 ElasticBeanstalk 环境一部分的 EC2 实例。使用此信息,您可以过滤掉具有特定 elasticbeanstalk:environment-name
标记值的所有正在运行的实例。
$ aws ec2 描述实例 --filters "Name=tag:elasticbeanstalk:environment-name,Values=your-environment-name"
上面的命令将为您提供相当长的 JSON 输出。您可以简单地在其中找到 "PublicIpAddress"
,但是您可以使用 jq
等工具过滤此信息。所以最终的命令看起来像:
$ aws ec2 描述实例 --filters "Name=tag:elasticbeanstalk:environment-name,Values=your-environment-name"| jq '. 预订 | .[] | .实例| .[] | .PublicIpAddress'
尝试一下。
以下是有关所使用的 awscli
命令的各种选项的更多信息:
aws ec2 describe-instances docs
更新2017-03-12
jq
是不必要的,Linux 命令行工具也是不必要的。 awscli
支持 --query
选项,该选项可用于查询您感兴趣的某些值 JMESPath (JSON query language) 。在这种情况下你会这样做:
$ aws ec2 描述实例 --filters "Name=tag:elasticbeanstalk:environment-name,Values=your-environment-name"--query 'Reservations[].Instances[].PublicIpAddress' --输出文本
上面将打印纯 IP 地址,每行一个。
关于amazon-web-services - 从控制台从 Elastic Beanstalk 实例之一获取公共(public) DNS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40982686/