【问题标题】:Something wrong when getting the "platform" attribute of EC2 Instances获取 EC2 实例的“平台”属性时出现问题
【发布时间】:2018-01-19 15:52:18
【问题描述】:

我试图使用 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 Instances 的 Platform 属性吗?

【问题讨论】:

标签: linux python-2.7 amazon-ec2 boto3


【解决方案1】:

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

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

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

希望对您有所帮助!

【讨论】:

  • 您从另一个答案中逐字获取此信息。
  • 我想我同意这一点。我可能已经阅读了您的答案,并且在回答这个问题时它就在我的脑海中。我绝对不应该把它归功于它。我要删除答案。很抱歉无意中把你的工作归功于自己。 @helloV
  • 没问题。不要删除你的答案。我只是提到它。我有时会无意中这样做。
猜你喜欢
  • 1970-01-01
  • 2020-04-29
  • 1970-01-01
  • 1970-01-01
  • 2022-06-15
  • 1970-01-01
  • 2020-02-08
  • 1970-01-01
  • 2014-06-07
相关资源
最近更新 更多