我需要使用boto3从AWS控制台获取总数 我试图显示实例和卷列表,但不显示计数。
我想知道如何列出所有与计数有关的资源。
有人可以指导我吗?
for region in ec2_regions:
conn = boto3.resource('ec2', aws_access_key_id=access_key, aws_secret_access_key=secret_key,
region_name=region)
instances = conn.instances.filter(Filters=[{'Name': 'instance-state-name', 'Values': ['running','stopped']}])
for instance in instances:
#if instance.state["Name"] == "running":
print (instance.id, instance.instance_type, region)
volumes = conn.volumes.filter()
for vol in volumes:
print(vol.id,vol.volume_type,region,vol.size)
我想获取每种资源的总数。 我尝试使用len,size和其他可用键来获取计数,但徒劳无功。
答案 0 :(得分:1)
filter()
返回的对象的类型为boto3.resources.collection.ec2.instancesCollection
,并且没有__len__
函数所需的len()
方法。我想到了几种不同的解决方案:
my_list = [instance for instance in instances]; len(my_list)
。这是我通常要做的。enumerate
函数,起始值为1。例如for i, instance in enumerate(instances, start=1): pass
。在最后一次迭代之后,i
实际上就是计数。