AWS:用于检索资源列表的Python脚本当前正在使用中

时间:2018-11-07 07:30:17

标签: python amazon-web-services boto3

我想通过使用python脚本和boto3库检索当前在使用区域中的资源列表。

例如脚本必须给我以下结果

地区:us-west-2

服务:EC2

//资源列表//实例ID //名称

服务:VPC

//资源列表// VPC ID //名称

3 个答案:

答案 0 :(得分:1)

无法获取所有已使用资源的列表。您需要自己编写。

或者,有第三方公司为您提供服务(例如Hava

答案 1 :(得分:0)

没有简单的方法,但是您可以通过一些描述调用来实现。

首先枚举您使用的区域:

for regionname in ["us-east-1", "eu-west-1"]

或者如果您要检查所有内容:

ec2client = boto3.client('ec2')
regionresponse = ec2client.describe_regions()
for region in regionresponse["Regions"] 
    regionname = region["RegionName"] 

然后,对于每个区域迭代,您需要为每个区域的端点创建一个新客户端,并创建describe_instances:

    ec2client = boto3.client('ec2', region_name=regionname)
    instanceresponse = ec2client.describe_instances()
    for reservation in instanceresponse["Reservations"]:
        for instance in reservation["Instances"]:
            print(instance["InstanceId"])

对所需的覆盖面资源类型执行相同的描述通话。

答案 2 :(得分:0)

aws_list_all程序available on GitHub用python编写,能够找到您在帐户中创建的所有资源。

当前,它将所有资源及其元数据列出到JSON文件中。您可以从aws_list_all中的scripts used for the main function开始构建自己的输出。

有一个原型in one issue there,该原型演示了如何提取所需的信息。该原型在JSON文件上运行以下内容

cat *.json | tr '"' '\n' | grep '^arn:aws' | sort |  sed 's/:\*$//'  | uniq 

当您查看aws_list_all后面的python代码时,您会发现这不是一个简单的问题,因为您需要动态发现所有可用的AWS终端节点。根据该脚本进行工作将使事情变得容易得多。