我已经编写了python boto3代码来获取AWS中的ec2库存,在同一代码中,我正在修改以将多个AWS帐户的ec2库存列表转换为csv,但在该代码中,我只获取最后一个值的ec2输出详细信息。有人帮助我使用以下脚本将多个AWS ec2库存生成为csv。
import boto3
import csv
profiles = ['dev','stag']
for name in profiles:
aws_mag_con=boto3.session.Session(profile_name=name)
ec2_con_re=aws_mag_con.resource(service_name="ec2",region_name="ap-southeast-1")
cnt=1
csv_ob=open("inventory_info.csv","w",newline='')
csv_w=csv.writer(csv_ob)
csv_w.writerow(["S_NO","Instance_Id",'Instance_Type','Architecture','LaunchTime','Privat_Ip'])
for each in ec2_con_re.instances.all():
print(cnt,each,each.instance_id,each.instance_type,each.architecture,each.launch_time.strftime("%Y-%m-%d"),each.private_ip_address)
csv_w.writerow([cnt,each.instance_id,each.instance_type,each.architecture,each.launch_time.strftime("%Y-%m-%d"),each.private_ip_address])
cnt+=1
csv_ob.close()
上面的脚本我得到的stagaws帐户的输出只。
1条答案
按热度按时间dxxyhpgq1#
这是因为您的缩进不正确。循环只考虑第一行,其他所有内容将针对
profiles
的最后一个元素执行(当for循环完成时)。它应该是: