EC2 实例详细信息



我是 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格式获得所有详细信息。

相关内容

最新更新