如何从 CLI 找到给定 EC2 实例正在运行的 Elastic Beanstalk 环境?

问题描述 投票:0回答:3

我有一个使用多容器 Docker 配置部署到 Elastic Beanstalk 的应用程序,该应用程序由 ECS 支持,并由 EC2 进一步支持。当我通过 SSH 连接到 EC2 实例时,是否可以运行一些命令来识别其运行所在的 EB 应用程序/环境的名称?有没有像

aws elasticbeanstalk get-current-environment
这样的东西?

amazon-web-services amazon-ec2 amazon-elastic-beanstalk
3个回答
4
投票

EB 环境名称和 ID 存在于您的实例标签中。您可以运行 AWS CLI:

aws ec2 describe-tags
来获取环境名称。标签键为:

  • elasticbeanstalk:环境 ID
  • elasticbeanstalk:环境名称

请注意:您需要将 IAM 角色附加到具有

ec2:DescribeTags
权限的实例才能使此命令发挥作用。


0
投票

您可以使用实例元数据服务(IMDS)

[ec2-user@ip-10-231-25-159 current]$ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` && curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data

这将返回您可以请求的各种资源:

ami-id
ami-launch-index
ami-manifest-path
autoscaling/
block-device-mapping/
events/
hostname
iam/
identity-credentials/
instance-action
instance-id
instance-life-cycle
instance-type
local-hostname
local-ipv4
mac
metrics/
network/
placement/
profile
public-hostname
public-ipv4
public-keys/
reservation-id
security-groups
services/
system

如果您的实例有公共 SSH 密钥,您可以使用

http://169.254.169.254/latest/meta-data/public-keys
端点:

[ec2-user@ip-10-231-25-159 current]$ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" aws-ec2-metadata-token-ttl-seconds: 21600"` && curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/public-keys

在我的例子中,这将返回公钥名称:

0=my-key-name

当然,这不会返回实际的 EB 环境名称。但是,如果您的环境有单独的 SSH 密钥,则可以从 SSH 密钥名称推断当前环境名称。


-1
投票

我也是AWS的初学者,但我相信你能够进入:

eb状态

这将显示:

环境详情:xxxx

应用名称:xxxx

区域:us-east-1

部署版本:app-xxxxx

环境ID:xxxxx

平台:在 64 位 Amazon Linux/2.6.5 上运行的 xxxx/Python 2.7

层:WebServer-Standard-1.0

CNAME:xxxxxxxx.us-east-1.elasticbeanstalk.com

更新时间:2018-04-13 19:10:45.354000+00:00

状态:准备就绪

健康:绿色

© www.soinside.com 2019 - 2024. All rights reserved.