有没有办法在 ec2 实例中获取实例 ID [重复]
Posted
技术标签:
【中文标题】有没有办法在 ec2 实例中获取实例 ID [重复]【英文标题】:Is there a way to obtain the instance id within an ec2 instance [duplicate] 【发布时间】:2017-10-04 14:07:18 【问题描述】:我尝试在 ec2 实例上启动服务。该服务应该发送实例的ID。我知道这可以使用curl http://0.0.0.0/latest/meta-data
之类的东西来获得。有没有其他方法可以直接从实例 shell 或 python 中的某些 API 获取元数据?
【问题讨论】:
【参考方案1】:Amazon EC2 instance metadata 可以通过以下方式访问:
http://169.254.169.254/latest/meta-data/
检索发出请求的实例的 ID:
http://169.254.169.254/latest/meta-data/instance-id/
这可以通过 curl、wget、网络浏览器或任何调用检索 HTTP 页面的工具来检索。
如果您希望以编程方式进行,这里有一些来自boto3 equivalent to boto.utils.get_instance_metadata()? 的代码:
# Python2
import urllib2
instanceid = urllib2.urlopen('http://169.254.169.254/latest/meta-data/instance-id').read()
# Python3
import urllib.request
instanceid = urllib.request.urlopen('http://169.254.169.254/latest/meta-data/instance-id').read().decode()
还有一个 boto.utils.get_instance_metadata()
call in boto(但不是 boto3)将实例元数据作为嵌套 Python 字典返回。
【讨论】:
这真的很有用!!非常感谢 嗨@WangNick,如果这个或任何答案解决了您的问题,请点击复选标记考虑accepting it。这向更广泛的社区表明您已经找到了解决方案,并为回答者和您自己提供了一些声誉。没有义务这样做。以上是关于有没有办法在 ec2 实例中获取实例 ID [重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何在Python AWS boto API中获取EC2实例ID的容器实例列表