我需要创建一个实例列表,用于创建实例的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行,in g = i.image.creation_date.strftime(“%Y-%m-%d%H:%M:%S”) 在property_loader中的文件“C:\ Python27 \ lib \ site-packages \ boto3 \ resources \ factory.py”,第345行 return self.meta.data.get(name) AttributeError:'NoneType'对象没有属性'get'
如何获取正在使用的AMI的创建日期?
答案 0 :(得分:0)
以下是根据@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', '')
]))