2016-02-04 1 views
0

J'utilise Boto3 pour un projet, dont une partie consiste à rechercher des adresses IP élastiques non allouées. L'API de filtrage est généralement très expressive, mais je n'arrive pas à comprendre comment l'utiliser pour ce cas d'utilisation, ce qui ne semble pas inhabituel.Filtrer AWS api résultats par l'absence d'un champ

Comment puis-je demander un EIP sans aucune association?

Par exemple, ce qui suit ne fonctionne pas:

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

Vérifier ma solution. – helloV

Répondre

0
[addr['PublicIp'] for addr in boto3.client("ec2").describe_addresses()['Addresses'] if 'AssociationId' not in addr] 
  1. Obtenir toutes les adresses
  2. Trouvez les adresses sans association
  3. Imprimer la PublicIp
+0

Je suppose que j'aurais pu être plus explicite - il est facile de le faire en mémoire, comme vous l'avez souligné. J'étais plus curieux de savoir si le filtre api supporte ce genre d'opérations. – jwilner

+0

Eh bien. vous avez besoin de résultats pour le filtrer. – helloV

+0

Merci, mais vous cherchez probablement une ancienne version. https://boto3.readthedocs.org/en/latest/reference/services/ec2.html#EC2.ServiceResource.vpc_addresses – jwilner