我试图使用 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/