Фильтрация результатов API AWS по отсутствию поля

Я использую Boto3 для проекта, одна часть которого включает поиск нераспределенных эластичных IP-адресов. API-интерфейс фильтра обычно очень выразителен, но я не могу понять, как его использовать для этого варианта использования, который не кажется таким уж необычным.

Как я могу запросить EIP без каких-либо ассоциаций?

Например, следующее не работает:

boto3.resource("ec2").vpc_addresses.filter(Filters=[{"Name": "association-id", "Values": []}])

person jwilner    schedule 04.02.2016    source источник


Ответы (1)


[addr['PublicIp'] for addr in boto3.client("ec2").describe_addresses()['Addresses'] if 'AssociationId' not in addr]
  1. Получить все адреса
  2. Найти адреса без ассоциации
  3. Распечатать PublicIP
person helloV    schedule 04.02.2016
comment
Я думаю, я мог бы быть более явным - это просто сделать в памяти, как вы указали. Меня больше интересовало, поддерживает ли фильтр API такие операции. - person jwilner; 05.02.2016
comment
Что ж. вам нужны некоторые результаты, чтобы отфильтровать его. В ресурсе ec2 нет такой вещи, как vpc_addresses - person helloV; 05.02.2016
comment
Спасибо, но вы, вероятно, смотрите на старую версию. boto3.readthedocs.org/en/latest/ ссылка/услуги/ - person jwilner; 06.02.2016