获得"平台时出了点问题。 EC2实例的属性

时间:2017-08-11 08:01:01

标签: linux python-2.7 amazon-ec2 boto3

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

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属性吗?

1 个答案:

答案 0 :(得分:1)

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

您可以使用所有Linux实例添加标记,然后使用这些标记名称过滤掉。

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

希望它会有所帮助!