python - 有没有办法在 ec2 实例中获取实例 ID

标签 python amazon-web-services amazon-ec2 backend

<分区>

我尝试在 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'

amazon-web-services - 如何修复在 aws 中列出来自 s3 存储桶的内容的关键错误?

SSH 访问 AWS EC2 - 权限被拒绝

python - Django 应用程序可以有多复杂?

amazon-web-services - 是否可以选择要在 DynamoDB 中返回的字段?