Uso i tag per tenere traccia delle istanze EC2, ad esempio (Progetto, Ambiente). Ho un caso d'uso in cui ho bisogno di filtrare solo quelle istanze che appartengono a un progetto specifico e ad un ambiente specifico.Filtraggio di istanze ec2 con boto
Quando uso il filtro con boto e passo questi due valori ottengo un risultato che fa un OR piuttosto che un AND dei filtri e quindi ricevo un elenco di istanze che appartengono a progetti diversi ma allo stesso ambiente.
Ora posso utilizzare due elenchi e quindi confrontare le istanze in ciascuno e ottenere l'insieme desiderato di istanze, ma esiste un modo migliore per ottenere questo risultato?
Ecco quello che sto facendo:
conn = ec2.EC2Connection('us-east-1',aws_access_key_id='XXX',aws_secret_access_key='YYY')
reservations = conn.get_all_instances(filters={"tag-key":"project","tag-value":<project-name>,"tag-key":"env","tag-value":<env-name>})
instances = [i for r in reservations for i in r.instances]
Ora l'elenco di istanze che sto ottenendo dà tutte le istanze del progetto specificato indipendentemente l'ambiente e per tutte le istanze dall'ambiente specificato indipendentemente dal progetto .
questo spiega anche molto: http://stackoverflow.com/questions/19361615/filter-boto-instance-list-by-tag-component-foo-or-tagcomponent-bar –