<分区>
我尝试在 ec2 实例上启动服务。该服务应该发送实例的 ID。我知道这可以使用 curl http://0.0.0.0/latest/meta-data
之类的东西获得。有没有其他方法可以直接从实例 shell 或 python 中的某些 API 获取元数据?
<分区>
我尝试在 ec2 实例上启动服务。该服务应该发送实例的 ID。我知道这可以使用 curl http://0.0.0.0/latest/meta-data
之类的东西获得。有没有其他方法可以直接从实例 shell 或 python 中的某些 API 获取元数据?
最佳答案
亚马逊 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 字典返回。
关于python - 有没有办法在 ec2 实例中获取实例 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43816006/
相关文章:
python - 什么时候需要从 `super(PostUpdateView, self).form_valid(form)` 中删除 `form-valid` ?
javascript - 当错误消息显示用户名和密码不匹配时,您如何通过 Cognito 对用户池中的用户进行身份验证?
python - Nohup 在 Ubuntu ec2 中运行 selenium web scraper
ssh - .ppk 和 .pem 之间有什么区别? .pem 存储在亚马逊 ec2 集群中的哪里?
python - 如何在输入中搜索并打印项目,python?
python - 安装 functools 给我 AttributeError 'module' object has no attribute 'compose'