linux - 获取 EC2 实例的 "platform"属性时出错

标签 linux python-2.7 amazon-ec2 boto3

我试图使用 Python 和 Boto3 获取 EC2 实例的平台名称。但是当我运行脚本时,它只将 Windows 实例的平台名称显示为“Windows”,而在 Linux 平台(Amazon Linux、Ubuntu、CentOS 等)上运行的每个实例都显示为“无”。 这是我的脚本:

import boto3
ec2 = boto3.resource('ec2')
filters = [{'Name':'instance-state-name','Values':['running']}]
instances = ec2.instances.filter(Filters=filters).all()
for inst in instances:
    print inst.id + "-" + str(inst.platform)

输出:

i-00dddfd5011ab2993-None
i-0ff7a32debff120de-None
i-018cd715318fc5b2d-None
i-06a84fa0421b7918c-windows

有什么方法可以获得Linux实例的Platform属性吗?

最佳答案

使用 AWS SDK 或 CLI 无法为基于 Linux 内核的操作系统列出 Linux 的确切版本或除 null 以外的任何版本。 有一种方法可以解决这个问题:

您可以为所有 linux 实例添加标签,然后您可以使用这些标签名称进行过滤。

实际上,AWS SDK 和 CLI 为您提供了在虚拟机管理程序级别可用的信息。但是这些关于正在使用哪些 linux 镜像的详细信息是在 VM 级别而不是在虚拟机管理程序级别。

希望对您有所帮助!

关于linux - 获取 EC2 实例的 "platform"属性时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45629947/

相关文章:

r - 如何确保 RStudio 包含在 .bashrc 中所做的更改

python - 生成 CSV 和空行

python - 具有多行和 HTML 标签的正则表达式

amazon-web-services - 如何连接亚马逊EC2实例?

linux - Julia Gtk Windows 不显示在 REPL 之外

linux - 如何在 Arm 架构硬件上进行内存测试? (类似于 Memtest86)

amazon-web-services - 在K8s中为节点选择哪种AWS实例类型

amazon-web-services - Nginx 将所有请求传递给特定的 S3 文件

Python(如何更新xml文件而不创建新文件)

python - Python中 "else"循环后 "for"有什么用?