我想通过使用python脚本和boto3库检索当前在使用区域中的资源列表。
例如脚本必须给我以下结果
地区:us-west-2
服务:EC2
//资源列表//实例ID //名称
服务:VPC
//资源列表// VPC ID //名称
答案 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终端节点。根据该脚本进行工作将使事情变得容易得多。