2015-09-08 3 views
0

Я использую теги в своих экземплярах EC2, оговорках и т. Д., Чтобы отслеживать различные проекты/компоненты, к которым они относятся. Я хотел бы программно (то есть использовать Boto (python), а не веб-интерфейс AWS), чтобы иметь возможность фильтровать мои экземпляры или резервирование или AMI с помощью подстроки тегов, а не с точным тегом.Amazon EC2 Boto: фильтр по тегу подстрока

Например:

conn = boto.ec2.connect_to_region('us-east-1') 
all_reservations = conn.get_all_instances(filters={'tag:name':['penguin']}) 

возвращает список экземпляров с точным названием "Пингвин". Можно ли сделать что-то вроде:

conn = boto.ec2.connect_to_region('us-east-1') 
all_reservations = conn.get_all_instances(filters={'tag:name_contains':['penguin']}) 

поэтому возвращает список экземпляров с именами, как ['emperor_penguin', 'penguin_colony'] и т.д.?

ответ

-1

Вы должны быть в состоянии сделать это просто:

all_reservations = conn.get_all_instances(filters={'tag:name_contains':['penguin*']}) 

ли эту работу для вас?

+0

Нет, возвращает пустой список. То же самое, если использовать «пингвин. *» В качестве ключа поиска. То же самое при использовании двух символов «_» (например, Django). – mprat

+0

Странно, похоже, работает с AWSCLI. Мне придется исследовать немного больше. – garnaat

+1

try '(filters = {'tag: name_contains': ['* penguin *']})' или '(filters = {'tag: name_contains': '* penguin *'})' – BMW

0

Этот бит работал для меня:

conn = boto.ec2.connect_to_region('ap-southeast-2') 
filtered_instances_list = conn.get_only_instances(filters={'tag:Name':'penguin*'}) 

имена тегов чувствительны к регистру ... что у меня в течение нескольких минут.^

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