查询 Amazon EC2 实例 AMI 创建日期/时间



我需要创建一个实例列表、用于创建它的 AMI 以及 AMI 的创建日期。

这是我正在使用的Python(boto3(代码:

import boto3
import datetime
import sys
profile = (sys.argv[1])
boto3.setup_default_session(profile_name=profile)
ec2 = boto3.resource('ec2')
instances = ec2.instances.all()
images = ec2.images.filter(Owners=['self'])
for i in instances:
a = i.id
b = i.state['Name']
c = i.instance_type
if i.platform == 'windows':
d = i.platform
else:
d = 'linux'
e = i.private_ip_address
f = i.image_id
g = i.image.creation_date.strftime("%Y-%m-%d %H:%M:%S")
print('{}   {}  {}  {}  {}  {}'.format(a, b, c, d, e, f, g))

但这是我得到的错误;与creation_date调用有关:

回溯(最近一次调用(: 文件 "C:\bin\TestAMI.py",第 23 行,在 g = i.image.creation_date.strftime("%Y-%m-%d %H:%M:%S"( 文件 "C:\Python27\lib\site-packages\boto3\resources\factory.py",第 345 行,property_loader 返回 self.meta.data.get(name( 属性错误:"NoneType"对象没有属性"get">

如何获取正在使用的可用 AMI 的创建日期?

以下是根据@sqlbot处理已删除的 AMI 的示例:

import boto3
for i in boto3.resource('ec2').instances.all():
print(' '.join([
i.id,
i.state['Name'],
i.instance_type,
i.platform or 'Linux',
i.private_ip_address,
getattr(i.image, 'creation_date', '')
]))

最新更新