Мне нужно получить общее количество баллов из aws-консоли с помощью boto3. Я попытался отобразить список экземпляров и томов, но не считал.
Я хочу знать, как перечислять все ресурсы, присутствующие в подсчетах.
Может ли кто-нибудь, пожалуйста, направить меня на это.
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, размер и другие доступные ключи для получения счета, но напрасно.
Объекты, возвращаемые filter()
имеют тип boto3.resources.collection.ec2.instancesCollection
и не имеют метода __len__
который требуется функции len()
. На ум приходит пара различных решений:
my_list = [instance for instance in instances]; len(my_list)
my_list = [instance for instance in instances]; len(my_list)
. Это то, что я обычно делаю.enumerate
с начальным значением 1. Например, for i, instance in enumerate(instances, start=1): pass
. После последней итерации i
существу буду считать.