Как отфильтровать экземпляры, проверив наличие строки в имени экземпляра - PullRequest
0 голосов
/ 06 июля 2018

Я пишу скрипт на Python для получения списка экземпляров, которые были неправильно помечены. Мне нужно отфильтровать, проверив, существует ли конкретная строка в имени.

Каков наилучший способ сделать это?

Я собирался использовать description_instances и использовать фильтр тегов (где ключ - «Имя»), но этот фильтр требует, чтобы я предоставил полное значение тега (то есть имя экземпляра), но мне нужно иметь возможность искать используя подмножество имени.

Можно ли это сделать с помощью клиента?

Ответы [ 2 ]

0 голосов
/ 06 июля 2018

Для тех, кто читает это, вы можете сделать то, что Джон Ротенштейн предложил в своем ответе, или вы можете использовать подстановочный знак '*' в имени тега, так что ваш фильтр будет выглядеть примерно так:

filters = [{'Name':'tag:Name', 'Values':['string*']}]
0 голосов
/ 06 июля 2018

Самый простой метод - вызвать describe_instances() без фильтра, а затем просто просмотреть результаты и выполнить собственную логику фильтрации и исправления в Python.

Общая логика будет:

Create EC2 client
Call describe_instances
Loop through results['Reservations']['Instances']:
  Loop through instance['Tags']:
    if Key == 'Name' and "bad-string" in Value:
      Fix tag

Если у вас более 1000 экземпляров, вам придется повторно позвонить describe-instances() с NextToken.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...