2015-11-16 2 views
2

В boto3 есть функция:Где я могу найти обзор того, как ec2.instancesCollection построен

ec2.instances.filter() 

Документация: http://boto3.readthedocs.org/en/latest/reference/services/ec2.html#instance

Say возвращает список (ec2.Instance) I желаю ...

когда я пытаюсь напечатать возвращения я получаю это:

ec2.instancesCollection(ec2.ServiceResource(), ec2.Instance) 

Я попытался найти любое упоминание об ec2.instanceCollection, но единственное, что я нашел, было похоже на ruby.

Я хотел бы пройти через этот экземпляр коллекции, чтобы я мог видеть, насколько он большой, какие машины присутствуют и что-то в этом роде. Проблема в том, что я не знаю, как это работает, и когда она пуста, итерация вообще не работает (она выдает ошибку)

ответ

2

Метод filter не возвращает список, он возвращает итерабельность. Это в основном генератор Python, который будет эффективно создавать желаемые результаты по запросу.

Вы можете использовать этот итератор в цикле, как это:

for instance in ec2.instances.filter(): 
    # do something with instance 

или, если вы действительно хотите список можно включить итератор в список с:

instances = list(ec2.instances.filter()) 
+0

Вы не читали мой вопрос. в соответствии с компилятором или каким бы то ни было экземпляром ec2.instancesCollection (ec2.ServiceResource(), ec2.Instance) Причина: Я упоминал, что это список, потому что в документации для boto3 указано, что он возвращает список. – Oliver

+0

Кроме того, приведение его в список дает мне ту же проблему, когда возврат пуст. Итерация, когда она заселена, отлично работает. – Oliver

Смежные вопросы