web-dev-qa-db-ja.com

boto3を使用して状態でインスタンスをフィルタリングする

Boto3を使用してすべてのインスタンスを記述し、現在実行されていないすべてのインスタンスをフィルタリングしようとしています。この投稿をフィルター作成のリファレンスとして使用する- http://rob.salmond.ca/filtering-instances-by-name-with-boto3/ .

このフィルターを使用して状態でインスタンスをフィルター処理しようとすると-

filters = [{
'Name': 'tag:State',
'Values': ['running']
}]

クエリは空に戻ります(状態値はそれ自体のディクショナリ内にネストされているため、これは理にかなっています。

私の質問は、filtersパラメーターを使用してネストされたタグにアクセスするにはどうすればよいですか?

5
Yaron Idan
session = boto3.Session(region_name="us-east-1")

ec2 = session.resource('ec2', region)

instances = ec2.instances.filter(
        Filters=[{'Name': 'instance-state-name', 'Values': ['stopped', 'terminated']}])

for instance in instances:
    print(instance.id, instance.instance_type)

お役に立てば幸いです!!

20
Roshan