Linux 获取“时出错”;平台“;EC2实例的属性

Linux 获取“时出错”;平台“;EC2实例的属性,linux,python-2.7,amazon-ec2,boto3,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 = ec

我试图使用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实例的平台属性吗?

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

您可以在所有linux实例中添加标记,然后使用这些标记名进行筛选

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


希望这会有帮助

可能是你的副本从另一个答案中逐字记录了这一信息。我想我同意这一点。。我可能读过你的答案,当我回答这个问题时,它就在我的脑海里。我绝对不应该因此而受到赞扬。我将删除答案。对不起,我无意中表扬了你的工作@没问题。不要删除你的答案。我只是说说而已。我有时是无意中做的。