我是 AWS 新手,我想将所有 ec2 实例信息导出到 csv 文件。
我想导出名称、实例 ID、实例类型、可用区、操作系统、VPC、子网、状态、私有 IP、公有 IP、安全组、密钥对和 AMI ID。
以下语法对我有用吗?我想添加操作系统、专有网络、子网、安全组、密钥对、AMI ID
aws ec2 describe-instances --output text --query
"Reservations[*].Instances[*].[
InstanceId,
InstanceType,
ImageId,
State.Name,
LaunchTime,
Placement.AvailabilityZone,
Placement.Tenancy,
PrivateIpAddress,
PrivateDnsName,
PublicDnsName,
[Tags[?Key==`Name`].Value] [0][0],
[Tags[?Key==`Role`].Value] [0][0],
[Tags[?Key==`SysHostName`].Value] [0][0],
[Tags[?Key==`Product`].Value] [0][0],
[Tags[?Key==`Project`].Value] [0][0]
]" > C:instances.csv
import boto3
import csv
session = boto3.session.Session()
ec2_re = session.resource(service_name="ec2", region_name="us-east-1")
cnt=1
csv_ob=open("inventory_info_v1.csv","w",newline='')
csv_w=csv.writer(csv_ob)
csv_w.writerow(["S_NO", 'AWS Instance ID', 'AWS Account', 'IP Address',
'VPC', 'OS', 'AMI', 'AWS Instance Type', 'Security Group'])
sts = session.client(service_name="sts",region_name="us-east-1")
response = sts.get_caller_identity()
account = response.get('Account')
for each_item in ec2_re.instances.all():
id = each_item.instance_id
ip = each_item.private_ip_address
vpc = each_item.vpc_id
os = each_item.platform_details
ami = each_item.image_id
type = each_item.instance_type
sglist = each_item.security_groups
for item in sglist:
sgid = item['GroupId']
print(cnt, id, account, ip, vpc, os, ami, type, sgid)
csv_w.writerow([cnt, id, account, ip, vpc, os, ami, type, sgid])
cnt+=1
csv_ob.close()
这将起作用。您将以.csv格式获得所有详细信息。