Как получить общее количество Экземпляров, томов и балансировщиков нагрузки, присутствующих в aws, используя boto3?

1

Мне нужно получить общее количество баллов из 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, размер и другие доступные ключи для получения счета, но напрасно.

  • 0
    Работает ли приведенный выше код (печатает ли идентификатор экземпляра и идентификатор тома соответственно)? Что вы пробовали с Лен или размером? Можете ли вы поделиться этим кодом?
  • 0
    @krishna_mee2004 krishna_mee2004, да код работает и распечатывает доступные ресурсы из доступных регионов. Я только попытался напечатать len (instance), я попытался count = 1 и for loop, но получил ошибку.
Теги:
amazon-web-services
boto3
boto

1 ответ

0
Лучший ответ

Объекты, возвращаемые 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 существу буду считать.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню